diff --git a/artifacts/index.ts b/artifacts/index.ts index 8f13f1ae3..5e7989183 100644 --- a/artifacts/index.ts +++ b/artifacts/index.ts @@ -1,5 +1,5 @@ -import { AddressArrayUtils } from "./ts/AddressArrayUtils"; import { BasicToken } from "./ts/BasicToken"; +import { Core } from "./ts/Core"; import { DetailedERC20 } from "./ts/DetailedERC20"; import { DummyToken } from "./ts/DummyToken"; import { ERC20 } from "./ts/ERC20"; @@ -9,14 +9,13 @@ import { ISetFactory } from "./ts/ISetFactory"; import { MintableToken } from "./ts/MintableToken"; import { SetToken } from "./ts/SetToken"; import { SetTokenFactory } from "./ts/SetTokenFactory"; -import { SetTokenRegistry } from "./ts/SetTokenRegistry"; import { StandardToken } from "./ts/StandardToken"; import { StandardTokenMock } from "./ts/StandardTokenMock"; import { StandardTokenWithFeeMock } from "./ts/StandardTokenWithFeeMock"; export { - AddressArrayUtils, BasicToken, + Core, DetailedERC20, DummyToken, ERC20, @@ -26,7 +25,6 @@ export { MintableToken, SetToken, SetTokenFactory, - SetTokenRegistry, StandardToken, StandardTokenMock, StandardTokenWithFeeMock, diff --git a/artifacts/json/AddressArrayUtils.json b/artifacts/json/AddressArrayUtils.json deleted file mode 100644 index bb131ca7d..000000000 --- a/artifacts/json/AddressArrayUtils.json +++ /dev/null @@ -1,1625 +0,0 @@ -{ - "contractName": "AddressArrayUtils", - "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582021feab37a61ca5d622bb6fc0363da0f2b804f572fe508e5d1562de186a3a2e0a0029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582021feab37a61ca5d622bb6fc0363da0f2b804f572fe508e5d1562de186a3a2e0a0029", - "sourceMap": "60:400:6:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "60:400:6:-;;;;;;;;", - "source": "pragma solidity 0.4.23;\n\n/**\n * @title AddressArrayUtil\n */\nlibrary AddressArrayUtils {\n function hasValue(address[] addresses, address value) internal returns (bool) {\n for (uint i = 0; i < addresses.length; i++) {\n if (addresses[i] == value) {\n return true;\n }\n }\n\n return false;\n }\n\n function removeByIndex(address[] storage a, uint256 index) internal returns (uint256) {\n a[index] = a[a.length - 1];\n a.length -= 1;\n }\n}", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/lib/AddressArrayUtils.sol", - "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/lib/AddressArrayUtils.sol", - "exportedSymbols": { - "AddressArrayUtils": [ - 1687 - ] - }, - "id": 1688, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1623, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title AddressArrayUtil", - "fullyImplemented": true, - "id": 1687, - "linearizedBaseContracts": [ - 1687 - ], - "name": "AddressArrayUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1657, - "nodeType": "Block", - "src": "168:144:6", - "statements": [ - { - "body": { - "id": 1653, - "nodeType": "Block", - "src": "218:71:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1644, - "name": "addresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1626, - "src": "230:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1646, - "indexExpression": { - "argumentTypes": null, - "id": 1645, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "240:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "230:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1647, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "246:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "230:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1652, - "nodeType": "IfStatement", - "src": "226:57:6", - "trueBody": { - "id": 1651, - "nodeType": "Block", - "src": "253:30:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "270:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1632, - "id": 1650, - "nodeType": "Return", - "src": "263:11:6" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1637, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "191:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1638, - "name": "addresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1626, - "src": "195:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "195:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "191:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1654, - "initializationExpression": { - "assignments": [ - 1634 - ], - "declarations": [ - { - "constant": false, - "id": 1634, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "179:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1633, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "179:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1636, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "188:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "179:10:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "213:3:6", - "subExpression": { - "argumentTypes": null, - "id": 1641, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "213:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1643, - "nodeType": "ExpressionStatement", - "src": "213:3:6" - }, - "nodeType": "ForStatement", - "src": "174:115:6" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "302:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 1632, - "id": 1656, - "nodeType": "Return", - "src": "295:12:6" - } - ] - }, - "documentation": null, - "id": 1658, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "hasValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1626, - "name": "addresses", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "108:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1624, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "108:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1625, - "length": null, - "nodeType": "ArrayTypeName", - "src": "108:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1628, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "129:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1627, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "129:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "107:36:6" - }, - "payable": false, - "returnParameters": { - "id": 1632, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1631, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "162:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1630, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "162:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "161:6:6" - }, - "scope": 1687, - "src": "90:222:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1685, - "nodeType": "Block", - "src": "402:56:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1668, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "408:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1670, - "indexExpression": { - "argumentTypes": null, - "id": 1669, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1663, - "src": "410:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "408:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1671, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "419:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1676, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1672, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "421:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1673, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "421:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "432:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "421:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "419:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "408:26:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1678, - "nodeType": "ExpressionStatement", - "src": "408:26:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1679, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "440:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1681, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "440:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 1682, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "452:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "440:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1684, - "nodeType": "ExpressionStatement", - "src": "440:13:6" - } - ] - }, - "documentation": null, - "id": 1686, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1664, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1661, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 1686, - "src": "339:19:6", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1659, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "339:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1660, - "length": null, - "nodeType": "ArrayTypeName", - "src": "339:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1663, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1686, - "src": "360:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1662, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "360:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "338:36:6" - }, - "payable": false, - "returnParameters": { - "id": 1667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1666, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1686, - "src": "393:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "393:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "392:9:6" - }, - "scope": 1687, - "src": "316:142:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1688, - "src": "60:400:6" - } - ], - "src": "0:460:6" - }, - "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/lib/AddressArrayUtils.sol", - "exportedSymbols": { - "AddressArrayUtils": [ - 1687 - ] - }, - "id": 1688, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1623, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title AddressArrayUtil", - "fullyImplemented": true, - "id": 1687, - "linearizedBaseContracts": [ - 1687 - ], - "name": "AddressArrayUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1657, - "nodeType": "Block", - "src": "168:144:6", - "statements": [ - { - "body": { - "id": 1653, - "nodeType": "Block", - "src": "218:71:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1644, - "name": "addresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1626, - "src": "230:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1646, - "indexExpression": { - "argumentTypes": null, - "id": 1645, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "240:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "230:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1647, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "246:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "230:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1652, - "nodeType": "IfStatement", - "src": "226:57:6", - "trueBody": { - "id": 1651, - "nodeType": "Block", - "src": "253:30:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "270:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1632, - "id": 1650, - "nodeType": "Return", - "src": "263:11:6" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1637, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "191:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1638, - "name": "addresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1626, - "src": "195:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "195:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "191:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1654, - "initializationExpression": { - "assignments": [ - 1634 - ], - "declarations": [ - { - "constant": false, - "id": 1634, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "179:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1633, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "179:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1636, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "188:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "179:10:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "213:3:6", - "subExpression": { - "argumentTypes": null, - "id": 1641, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "213:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1643, - "nodeType": "ExpressionStatement", - "src": "213:3:6" - }, - "nodeType": "ForStatement", - "src": "174:115:6" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "302:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 1632, - "id": 1656, - "nodeType": "Return", - "src": "295:12:6" - } - ] - }, - "documentation": null, - "id": 1658, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "hasValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1626, - "name": "addresses", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "108:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1624, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "108:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1625, - "length": null, - "nodeType": "ArrayTypeName", - "src": "108:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1628, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "129:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1627, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "129:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "107:36:6" - }, - "payable": false, - "returnParameters": { - "id": 1632, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1631, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "162:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1630, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "162:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "161:6:6" - }, - "scope": 1687, - "src": "90:222:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1685, - "nodeType": "Block", - "src": "402:56:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1668, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "408:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1670, - "indexExpression": { - "argumentTypes": null, - "id": 1669, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1663, - "src": "410:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "408:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1671, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "419:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1676, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1672, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "421:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1673, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "421:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "432:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "421:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "419:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "408:26:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1678, - "nodeType": "ExpressionStatement", - "src": "408:26:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1679, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "440:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1681, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "440:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 1682, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "452:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "440:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1684, - "nodeType": "ExpressionStatement", - "src": "440:13:6" - } - ] - }, - "documentation": null, - "id": 1686, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1664, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1661, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 1686, - "src": "339:19:6", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1659, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "339:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1660, - "length": null, - "nodeType": "ArrayTypeName", - "src": "339:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1663, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1686, - "src": "360:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1662, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "360:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "338:36:6" - }, - "payable": false, - "returnParameters": { - "id": 1667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1666, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1686, - "src": "393:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "393:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "392:9:6" - }, - "scope": 1687, - "src": "316:142:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1688, - "src": "60:400:6" - } - ], - "src": "0:460:6" - }, - "compiler": { - "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.578Z" -} \ No newline at end of file diff --git a/artifacts/json/Authorizable.json b/artifacts/json/Authorizable.json new file mode 100644 index 000000000..920406b91 --- /dev/null +++ b/artifacts/json/Authorizable.json @@ -0,0 +1,5642 @@ +{ + "contractName": "Authorizable", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "authorities", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "authorized", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "authAddress", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AddressAuthorized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "addressRemoved", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AuthorizedAddressRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + } + ], + "name": "addAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + } + ], + "name": "removeAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "removeAuthorizedAddressAtIndex", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAuthorizedAddresses", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611246806100536000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342f1181e1461009e578063494503d4146100e1578063707129391461014e578063715018a6146101915780638da5cb5b146101a85780639ad26744146101ff578063b91816111461024c578063d39de6e9146102a7578063f2fde38b14610313575b600080fd5b3480156100aa57600080fd5b506100df600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610356565b005b3480156100ed57600080fd5b5061010c6004803603810190808035906020019092919050505061063f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561015a57600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061067d565b005b34801561019d57600080fd5b506101a6610a3d565b005b3480156101b457600080fd5b506101bd610b3f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b64565b005b34801561025857600080fd5b5061028d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fba565b604051808215151515815260200191505060405180910390f35b3480156102b357600080fd5b506102bc610fda565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102ff5780820151818401526020810190506102e4565b505050509050019250505060405180910390f35b34801561031f57600080fd5b50610354600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611068565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103b157600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e0000000000000000000000000000000000000000000000000000815250901515610504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156104c95780820151818401526020810190506104ae565b50505050905090810190601f1680156104f65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b60028181548110151561064e57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106da57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e00000000000000000000000000000000000000000000000000000000000081525090151561082c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107f15780820151818401526020810190506107d6565b50505050905090810190601f16801561081e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b600280549050811015610a39578173ffffffffffffffffffffffffffffffffffffffff166002828154811015156108b457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a2c57600260016002805490500381548110151561091257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660028281548110151561094c57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016002818180549050039150816109ac91906111c9565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2610a39565b8080600101915050610881565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a9857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bbf57600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e00000000000000000000000000000000000000000000000000815250901515610ccc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c91578082015181840152602081019050610c76565b50505050905090810190601f168015610cbe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff16600282815481101515610cf357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e00000000000000000000000000000000000000815250901515610e3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610dff578082015181840152602081019050610de4565b50505050905090810190601f168015610e2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690556002600160028054905003815481101515610ea157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282815481101515610edb57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610f3b91906111c9565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561105e57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611014575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110c357600080fd5b6110cc816110cf565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561110b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8154818355818111156111f0578183600052602060002091820191016111ef91906111f5565b5b505050565b61121791905b808211156112135760008160009055506001016111fb565b5090565b905600a165627a7a72305820d7fb29cc1c6469093ea5675676ed97672e7edfd8d12d8a2d28533baa698323a70029", + "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342f1181e1461009e578063494503d4146100e1578063707129391461014e578063715018a6146101915780638da5cb5b146101a85780639ad26744146101ff578063b91816111461024c578063d39de6e9146102a7578063f2fde38b14610313575b600080fd5b3480156100aa57600080fd5b506100df600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610356565b005b3480156100ed57600080fd5b5061010c6004803603810190808035906020019092919050505061063f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561015a57600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061067d565b005b34801561019d57600080fd5b506101a6610a3d565b005b3480156101b457600080fd5b506101bd610b3f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b64565b005b34801561025857600080fd5b5061028d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fba565b604051808215151515815260200191505060405180910390f35b3480156102b357600080fd5b506102bc610fda565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102ff5780820151818401526020810190506102e4565b505050509050019250505060405180910390f35b34801561031f57600080fd5b50610354600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611068565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103b157600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e0000000000000000000000000000000000000000000000000000815250901515610504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156104c95780820151818401526020810190506104ae565b50505050905090810190601f1680156104f65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b60028181548110151561064e57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106da57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e00000000000000000000000000000000000000000000000000000000000081525090151561082c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107f15780820151818401526020810190506107d6565b50505050905090810190601f16801561081e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b600280549050811015610a39578173ffffffffffffffffffffffffffffffffffffffff166002828154811015156108b457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a2c57600260016002805490500381548110151561091257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660028281548110151561094c57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016002818180549050039150816109ac91906111c9565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2610a39565b8080600101915050610881565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a9857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bbf57600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e00000000000000000000000000000000000000000000000000815250901515610ccc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c91578082015181840152602081019050610c76565b50505050905090810190601f168015610cbe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff16600282815481101515610cf357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e00000000000000000000000000000000000000815250901515610e3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610dff578082015181840152602081019050610de4565b50505050905090810190601f168015610e2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690556002600160028054905003815481101515610ea157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282815481101515610edb57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610f3b91906111c9565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561105e57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611014575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110c357600080fd5b6110cc816110cf565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561110b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8154818355818111156111f0578183600052602060002091820191016111ef91906111f5565b5b505050565b61121791905b808211156112135760008160009055506001016111fb565b5090565b905600a165627a7a72305820d7fb29cc1c6469093ea5675676ed97672e7edfd8d12d8a2d28533baa698323a70029", + "sourceMap": "963:4845:3:-;;;575:10:5;567:5;;:18;;;;;;;;;;;;;;;;;;963:4845:3;;;;;;", + "deployedSourceMap": "963:4845:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2599:558;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2599:558:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;1721:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1721:28:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3324:980;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3324:980:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:5;;;;;;238:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:5;;;;;;;;;;;;;;;;;;;;;;;;;;;4571:939:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4571:939:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1634:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1634:43:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5620:186:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5620:186:3;;;;;;;;;;;;;;;;;1100:103:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;2599:558:3;719:5:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2779:10:3;:23;2790:11;2779:23;;;;;;;;;;;;;;;;;;;;;;;;;2778:24;2816:25;;;;;;;;;;;;;;;;;;;;;;;2757:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2757:94:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2929:4;2903:10;:23;2914:11;2903:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;2988:11;3005;2988:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2988:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3105:11;3074:76;;;3130:10;3074:76;;;;;;;;;;;;;;;;;;;;;;2599:558;:::o;1721:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3324:980::-;3664:6;719:5:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;3489:10:3;:23;3500:11;3489:23;;;;;;;;;;;;;;;;;;;;;;;;;3526:21;;;;;;;;;;;;;;;;;;;;;;;3468:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3468:89:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3625:10;:23;3636:11;3625:23;;;;;;;;;;;;;;;;3618:30;;;;;;;;;;;3673:1;3664:10;;3659:639;3680:11;:18;;;;3676:1;:22;3659:639;;;3812:11;3794:29;;:11;3806:1;3794:14;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;3790:498;;;3938:11;3971:1;3950:11;:18;;;;:22;3938:35;;;;;;;;;;;;;;;;;;;;;;;;;;;3921:11;3933:1;3921:14;;;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;4062:1;4040:11;:23;;;;;;;;;;;;;;:::i;:::-;;4189:11;4143:107;;;4222:10;4143:107;;;;;;;;;;;;;;;;;;;;;;4268:5;;3790:498;3700:3;;;;;;;3659:639;;;3324:980;;:::o;827:111:5:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;238:20::-;;;;;;;;;;;;;:::o;4571:939:3:-;719:5:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;4809:11:3;:18;;;;4800:6;:27;4841:19;;;;;;;;;;;;;;;;;;;;;;;4779:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4779:91:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4999:11;4976:34;;:11;4988:6;4976:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;5024:22;;;;;;;;;;;;;;;;;;;;;;;4955:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4955:101:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5124:10;:23;5135:11;5124:23;;;;;;;;;;;;;;;;5117:30;;;;;;;;;;;5245:11;5278:1;5257:11;:18;;;;:22;5245:35;;;;;;;;;;;;;;;;;;;;;;;;;;;5223:11;5235:6;5223:19;;;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;5355:1;5333:11;:23;;;;;;;;;;;;;;:::i;:::-;;5458:11;5420:83;;;5483:10;5420:83;;;;;;;;;;;;;;;;;;;;;;4571:939;;:::o;1634:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;5620:186::-;5701:9;5788:11;5781:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186;:::o;1100:103:5:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1338:171::-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o;963:4845:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { Ownable } from \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n\n/**\n * @title Authorizable\n * @author Set Protocol\n *\n * The Authorizable contract is an inherited contract that sets permissions on certain function calls\n * through the onlyAuthorized modifier. Permissions can be managed only by the Owner of the contract.\n */\ncontract Authorizable is\n Ownable\n{\n\n /* ============ Constants ============ */\n\n // Error messages\n string constant SENDER_NOT_AUTHORIZED = \"Sender not authorized to call this method.\";\n string constant TARGET_NOT_AUTHORIZED = \"Target address must be authorized.\";\n string constant TARGET_ALREADY_AUTHORIZED = \"Target must not already be authorized.\";\n string constant INDEX_OUT_OF_BOUNDS = \"Specified array index is out of bounds.\";\n string constant INDEX_ADDRESS_MISMATCH = \"Address found at index does not match target.\";\n\n /* ============ State Variables ============ */\n\n // Mapping of addresses to bool indicator of authorization\n mapping (address => bool) public authorized;\n\n // Array of authorized addresses\n address[] public authorities;\n\n /* ============ Modifiers ============ */\n\n // Only authorized addresses can invoke functions with this modifier.\n modifier onlyAuthorized {\n require(\n authorized[msg.sender],\n SENDER_NOT_AUTHORIZED\n );\n _;\n }\n\n /* ============ Events ============ */\n\n // Event emitted when new address is authorized.\n event AddressAuthorized (\n address indexed authAddress,\n address authorizedBy\n );\n\n // Event emitted when address is deauthorized.\n event AuthorizedAddressRemoved (\n address indexed addressRemoved,\n address authorizedBy\n );\n\n /* ============ Setters ============ */\n\n /**\n * Add authorized address to contract. Can only be set by owner.\n *\n * @param _authTarget The address of the new authorized contract\n */\n\n function addAuthorizedAddress(address _authTarget)\n external\n onlyOwner\n {\n // Require that address is not already authorized\n require(\n !authorized[_authTarget],\n TARGET_ALREADY_AUTHORIZED\n );\n\n // Set address authority to true\n authorized[_authTarget] = true;\n\n // Add address to authorities array\n authorities.push(_authTarget);\n\n // Emit authorized address event\n emit AddressAuthorized(\n _authTarget,\n msg.sender\n );\n }\n\n /**\n * Remove authorized address from contract. Can only be set by owner.\n *\n * @param _authTarget The address to be de-permissioned\n */\n\n function removeAuthorizedAddress(address _authTarget)\n external\n onlyOwner\n {\n // Require address is authorized\n require(\n authorized[_authTarget],\n TARGET_NOT_AUTHORIZED\n );\n\n // Delete address from authorized mapping\n delete authorized[_authTarget];\n\n for (uint i = 0; i < authorities.length; i++) {\n\n // Check if address in authorities matches target address\n if (authorities[i] == _authTarget) {\n\n // Set target address index value to address at end of array\n authorities[i] = authorities[authorities.length - 1];\n\n // Delete last address in array\n authorities.length -= 1;\n\n // Emit AuthorizedAddressRemoved event.\n emit AuthorizedAddressRemoved(\n _authTarget,\n msg.sender\n );\n break;\n }\n }\n }\n\n /**\n * More efficiently remove authorized address from contract. Can only be set by owner.\n *\n * @param _authTarget The address to be de-permissioned\n * @param _index The index of the _authTarget address in authorities\n */\n\n function removeAuthorizedAddressAtIndex(\n address _authTarget,\n uint256 _index\n )\n external\n onlyOwner\n {\n // Require index is less than length of authorities\n require(\n _index < authorities.length,\n INDEX_OUT_OF_BOUNDS\n );\n\n // Require address at index of authorities matches target address\n require(\n authorities[_index] == _authTarget,\n INDEX_ADDRESS_MISMATCH\n );\n\n // Delete address from authorized mapping\n delete authorized[_authTarget];\n\n // Replace address at index with address at end of array\n authorities[_index] = authorities[authorities.length - 1];\n\n // Remove last address from array\n authorities.length -= 1;\n\n // Emit AuthorizedAddressRemoved event.\n emit AuthorizedAddressRemoved(\n _authTarget,\n msg.sender\n );\n }\n\n /* ============ Getters ============ */\n\n /**\n * Get array of authorized addresses.\n */\n\n function getAuthorizedAddresses()\n external\n view\n returns (address[] memory)\n {\n // Return array of authorized addresses\n return authorities;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "exportedSymbols": { + "Authorizable": [ + 789 + ] + }, + "id": 790, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 576, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:3" + }, + { + "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 578, + "nodeType": "ImportDirective", + "scope": 790, + "sourceUnit": 970, + "src": "622:76:3", + "symbolAliases": [ + { + "foreign": 577, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 579, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 969, + "src": "992:7:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$969", + "typeString": "contract Ownable" + } + }, + "id": 580, + "nodeType": "InheritanceSpecifier", + "src": "992:7:3" + } + ], + "contractDependencies": [ + 969 + ], + "contractKind": "contract", + "documentation": "@title Authorizable\n@author Set Protocol\n * The Authorizable contract is an inherited contract that sets permissions on certain function calls\nthrough the onlyAuthorized modifier. Permissions can be managed only by the Owner of the contract.", + "fullyImplemented": true, + "id": 789, + "linearizedBaseContracts": [ + 789, + 969 + ], + "name": "Authorizable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 583, + "name": "SENDER_NOT_AUTHORIZED", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1076:84:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 581, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1076:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53656e646572206e6f7420617574686f72697a656420746f2063616c6c2074686973206d6574686f642e", + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1116:44:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10199b21ebf84935aea33a882c0275c251121b4f5714541946187192f7438169", + "typeString": "literal_string \"Sender not authorized to call this method.\"" + }, + "value": "Sender not authorized to call this method." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 586, + "name": "TARGET_NOT_AUTHORIZED", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1166:76:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 584, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1166:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5461726765742061646472657373206d75737420626520617574686f72697a65642e", + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1206:36:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_366140ba62d6876f8f5ac81ce449a05cc217fd70a2a6c4fe20968a2c9a7459fa", + "typeString": "literal_string \"Target address must be authorized.\"" + }, + "value": "Target address must be authorized." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 589, + "name": "TARGET_ALREADY_AUTHORIZED", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1248:84:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 587, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1248:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "546172676574206d757374206e6f7420616c726561647920626520617574686f72697a65642e", + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1292:40:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a33a2795a8a1f2c72bcb412f76b44eb9cb4c52e6a307350a3f6ddaeb1809efd7", + "typeString": "literal_string \"Target must not already be authorized.\"" + }, + "value": "Target must not already be authorized." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 592, + "name": "INDEX_OUT_OF_BOUNDS", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1338:79:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 590, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1338:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53706563696669656420617272617920696e646578206973206f7574206f6620626f756e64732e", + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1376:41:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1638541c6ab382534775b3e33e4efa6ebe87533c9f35a0f2f538e2ab60ef9410", + "typeString": "literal_string \"Specified array index is out of bounds.\"" + }, + "value": "Specified array index is out of bounds." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 595, + "name": "INDEX_ADDRESS_MISMATCH", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1423:88:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 593, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1423:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "4164647265737320666f756e6420617420696e64657820646f6573206e6f74206d61746368207461726765742e", + "id": 594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1464:47:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8c3cba7e3f322cab1ee42269305798e851a629466be226218b19fcb7d615b25c", + "typeString": "literal_string \"Address found at index does not match target.\"" + }, + "value": "Address found at index does not match target." + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 599, + "name": "authorized", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1634:43:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 598, + "keyType": { + "id": 596, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1643:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1634:25:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 597, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1654:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 602, + "name": "authorities", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1721:28:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1721:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 601, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1721:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 613, + "nodeType": "Block", + "src": "1901:116:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 605, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "1932:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 608, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 606, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "1943:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1943:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1932:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 609, + "name": "SENDER_NOT_AUTHORIZED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 583, + "src": "1968:21:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 604, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "1911:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1911:88:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 611, + "nodeType": "ExpressionStatement", + "src": "1911:88:3" + }, + { + "id": 612, + "nodeType": "PlaceholderStatement", + "src": "2009:1:3" + } + ] + }, + "documentation": null, + "id": 614, + "name": "onlyAuthorized", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 603, + "nodeType": "ParameterList", + "parameters": [], + "src": "1901:0:3" + }, + "src": "1877:140:3", + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 620, + "name": "AddressAuthorized", + "nodeType": "EventDefinition", + "parameters": { + "id": 619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 616, + "indexed": true, + "name": "authAddress", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "2154:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 615, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2154:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 618, + "indexed": false, + "name": "authorizedBy", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "2191:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 617, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2191:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2144:73:3" + }, + "src": "2120:98:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 626, + "name": "AuthorizedAddressRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 625, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "indexed": true, + "name": "addressRemoved", + "nodeType": "VariableDeclaration", + "scope": 626, + "src": "2316:30:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2316:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 624, + "indexed": false, + "name": "authorizedBy", + "nodeType": "VariableDeclaration", + "scope": 626, + "src": "2356:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2356:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2306:76:3" + }, + "src": "2275:108:3" + }, + { + "body": { + "id": 659, + "nodeType": "Block", + "src": "2689:468:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2778:24:3", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 634, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "2779:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 636, + "indexExpression": { + "argumentTypes": null, + "id": 635, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "2790:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2779:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 638, + "name": "TARGET_ALREADY_AUTHORIZED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 589, + "src": "2816:25:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 633, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "2757:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2757:94:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 640, + "nodeType": "ExpressionStatement", + "src": "2757:94:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 641, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "2903:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 643, + "indexExpression": { + "argumentTypes": null, + "id": 642, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "2914:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2903:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2929:4:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2903:30:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 646, + "nodeType": "ExpressionStatement", + "src": "2903:30:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 650, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "3005:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 647, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "2988:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2988:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2988:29:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 652, + "nodeType": "ExpressionStatement", + "src": "2988:29:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 654, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "3105:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 655, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "3130:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3130:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 653, + "name": "AddressAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 620, + "src": "3074:17:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3074:76:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 658, + "nodeType": "EmitStatement", + "src": "3069:81:3" + } + ] + }, + "documentation": "Add authorized address to contract. Can only be set by owner.\n * @param _authTarget The address of the new authorized contract", + "id": 660, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 631, + "modifierName": { + "argumentTypes": null, + "id": 630, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "2675:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2675:9:3" + } + ], + "name": "addAuthorizedAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 628, + "name": "_authTarget", + "nodeType": "VariableDeclaration", + "scope": 660, + "src": "2629:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2629:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2628:21:3" + }, + "payable": false, + "returnParameters": { + "id": 632, + "nodeType": "ParameterList", + "parameters": [], + "src": "2689:0:3" + }, + "scope": 789, + "src": "2599:558:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 723, + "nodeType": "Block", + "src": "3417:887:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 668, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "3489:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 670, + "indexExpression": { + "argumentTypes": null, + "id": 669, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "3500:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3489:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 671, + "name": "TARGET_NOT_AUTHORIZED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "3526:21:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 667, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "3468:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3468:89:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 673, + "nodeType": "ExpressionStatement", + "src": "3468:89:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "3618:30:3", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 674, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "3625:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 676, + "indexExpression": { + "argumentTypes": null, + "id": 675, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "3636:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3625:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 678, + "nodeType": "ExpressionStatement", + "src": "3618:30:3" + }, + { + "body": { + "id": 721, + "nodeType": "Block", + "src": "3705:593:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 690, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3794:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 692, + "indexExpression": { + "argumentTypes": null, + "id": 691, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3806:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3794:14:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 693, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "3812:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3794:29:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 720, + "nodeType": "IfStatement", + "src": "3790:498:3", + "trueBody": { + "id": 719, + "nodeType": "Block", + "src": "3825:463:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 695, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3921:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 697, + "indexExpression": { + "argumentTypes": null, + "id": 696, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3933:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3921:14:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 698, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3938:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 703, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 699, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3950:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 700, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3950:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3971:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3950:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3938:35:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3921:52:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 705, + "nodeType": "ExpressionStatement", + "src": "3921:52:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 706, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "4040:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 708, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4040:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4062:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4040:23:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 711, + "nodeType": "ExpressionStatement", + "src": "4040:23:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 713, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "4189:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 714, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "4222:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4222:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 712, + "name": "AuthorizedAddressRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "4143:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4143:107:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 717, + "nodeType": "EmitStatement", + "src": "4138:112:3" + }, + { + "id": 718, + "nodeType": "Break", + "src": "4268:5:3" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 683, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3676:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 684, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3680:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 685, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3680:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3676:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 722, + "initializationExpression": { + "assignments": [ + 680 + ], + "declarations": [ + { + "constant": false, + "id": 680, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "3664:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 679, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3664:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 682, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3673:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3664:10:3" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3700:3:3", + "subExpression": { + "argumentTypes": null, + "id": 687, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3700:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 689, + "nodeType": "ExpressionStatement", + "src": "3700:3:3" + }, + "nodeType": "ForStatement", + "src": "3659:639:3" + } + ] + }, + "documentation": "Remove authorized address from contract. Can only be set by owner.\n * @param _authTarget The address to be de-permissioned", + "id": 724, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 665, + "modifierName": { + "argumentTypes": null, + "id": 664, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "3403:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3403:9:3" + } + ], + "name": "removeAuthorizedAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 662, + "name": "_authTarget", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "3357:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3357:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3356:21:3" + }, + "payable": false, + "returnParameters": { + "id": 666, + "nodeType": "ParameterList", + "parameters": [], + "src": "3417:0:3" + }, + "scope": 789, + "src": "3324:980:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 778, + "nodeType": "Block", + "src": "4709:801:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 734, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "4800:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 735, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "4809:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 736, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4809:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4800:27:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 738, + "name": "INDEX_OUT_OF_BOUNDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "4841:19:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 733, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "4779:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4779:91:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 740, + "nodeType": "ExpressionStatement", + "src": "4779:91:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 742, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "4976:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 744, + "indexExpression": { + "argumentTypes": null, + "id": 743, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "4988:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4976:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 745, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "4999:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4976:34:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 747, + "name": "INDEX_ADDRESS_MISMATCH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 595, + "src": "5024:22:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 741, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "4955:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4955:101:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 749, + "nodeType": "ExpressionStatement", + "src": "4955:101:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "5117:30:3", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 750, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "5124:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 752, + "indexExpression": { + "argumentTypes": null, + "id": 751, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "5135:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5124:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 754, + "nodeType": "ExpressionStatement", + "src": "5117:30:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 755, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5223:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 757, + "indexExpression": { + "argumentTypes": null, + "id": 756, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "5235:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5223:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 758, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5245:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 763, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 759, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5257:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 760, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5257:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5278:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5257:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5245:35:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5223:57:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 765, + "nodeType": "ExpressionStatement", + "src": "5223:57:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 766, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5333:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 768, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5333:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5355:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5333:23:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 771, + "nodeType": "ExpressionStatement", + "src": "5333:23:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 773, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "5458:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 774, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "5483:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5483:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 772, + "name": "AuthorizedAddressRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "5420:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5420:83:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 777, + "nodeType": "EmitStatement", + "src": "5415:88:3" + } + ] + }, + "documentation": "More efficiently remove authorized address from contract. Can only be set by owner.\n * @param _authTarget The address to be de-permissioned\n@param _index The index of the _authTarget address in authorities", + "id": 779, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 731, + "modifierName": { + "argumentTypes": null, + "id": 730, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "4695:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4695:9:3" + } + ], + "name": "removeAuthorizedAddressAtIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 726, + "name": "_authTarget", + "nodeType": "VariableDeclaration", + "scope": 779, + "src": "4620:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4620:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 728, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 779, + "src": "4649:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4649:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4610:59:3" + }, + "payable": false, + "returnParameters": { + "id": 732, + "nodeType": "ParameterList", + "parameters": [], + "src": "4709:0:3" + }, + "scope": 789, + "src": "4571:939:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 787, + "nodeType": "Block", + "src": "5723:83:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 785, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5788:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 784, + "id": 786, + "nodeType": "Return", + "src": "5781:18:3" + } + ] + }, + "documentation": "Get array of authorized addresses.", + "id": 788, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getAuthorizedAddresses", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [], + "src": "5651:2:3" + }, + "payable": false, + "returnParameters": { + "id": 784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 783, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "5701:9:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 781, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5701:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 782, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5701:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5700:18:3" + }, + "scope": 789, + "src": "5620:186:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 790, + "src": "963:4845:3" + } + ], + "src": "597:5212:3" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "exportedSymbols": { + "Authorizable": [ + 789 + ] + }, + "id": 790, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 576, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:3" + }, + { + "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 578, + "nodeType": "ImportDirective", + "scope": 790, + "sourceUnit": 970, + "src": "622:76:3", + "symbolAliases": [ + { + "foreign": 577, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 579, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 969, + "src": "992:7:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$969", + "typeString": "contract Ownable" + } + }, + "id": 580, + "nodeType": "InheritanceSpecifier", + "src": "992:7:3" + } + ], + "contractDependencies": [ + 969 + ], + "contractKind": "contract", + "documentation": "@title Authorizable\n@author Set Protocol\n * The Authorizable contract is an inherited contract that sets permissions on certain function calls\nthrough the onlyAuthorized modifier. Permissions can be managed only by the Owner of the contract.", + "fullyImplemented": true, + "id": 789, + "linearizedBaseContracts": [ + 789, + 969 + ], + "name": "Authorizable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 583, + "name": "SENDER_NOT_AUTHORIZED", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1076:84:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 581, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1076:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53656e646572206e6f7420617574686f72697a656420746f2063616c6c2074686973206d6574686f642e", + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1116:44:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10199b21ebf84935aea33a882c0275c251121b4f5714541946187192f7438169", + "typeString": "literal_string \"Sender not authorized to call this method.\"" + }, + "value": "Sender not authorized to call this method." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 586, + "name": "TARGET_NOT_AUTHORIZED", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1166:76:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 584, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1166:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5461726765742061646472657373206d75737420626520617574686f72697a65642e", + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1206:36:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_366140ba62d6876f8f5ac81ce449a05cc217fd70a2a6c4fe20968a2c9a7459fa", + "typeString": "literal_string \"Target address must be authorized.\"" + }, + "value": "Target address must be authorized." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 589, + "name": "TARGET_ALREADY_AUTHORIZED", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1248:84:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 587, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1248:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "546172676574206d757374206e6f7420616c726561647920626520617574686f72697a65642e", + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1292:40:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a33a2795a8a1f2c72bcb412f76b44eb9cb4c52e6a307350a3f6ddaeb1809efd7", + "typeString": "literal_string \"Target must not already be authorized.\"" + }, + "value": "Target must not already be authorized." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 592, + "name": "INDEX_OUT_OF_BOUNDS", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1338:79:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 590, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1338:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53706563696669656420617272617920696e646578206973206f7574206f6620626f756e64732e", + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1376:41:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1638541c6ab382534775b3e33e4efa6ebe87533c9f35a0f2f538e2ab60ef9410", + "typeString": "literal_string \"Specified array index is out of bounds.\"" + }, + "value": "Specified array index is out of bounds." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 595, + "name": "INDEX_ADDRESS_MISMATCH", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1423:88:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 593, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1423:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "4164647265737320666f756e6420617420696e64657820646f6573206e6f74206d61746368207461726765742e", + "id": 594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1464:47:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8c3cba7e3f322cab1ee42269305798e851a629466be226218b19fcb7d615b25c", + "typeString": "literal_string \"Address found at index does not match target.\"" + }, + "value": "Address found at index does not match target." + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 599, + "name": "authorized", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1634:43:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 598, + "keyType": { + "id": 596, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1643:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1634:25:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 597, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1654:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 602, + "name": "authorities", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1721:28:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1721:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 601, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1721:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 613, + "nodeType": "Block", + "src": "1901:116:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 605, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "1932:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 608, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 606, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "1943:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1943:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1932:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 609, + "name": "SENDER_NOT_AUTHORIZED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 583, + "src": "1968:21:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 604, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "1911:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1911:88:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 611, + "nodeType": "ExpressionStatement", + "src": "1911:88:3" + }, + { + "id": 612, + "nodeType": "PlaceholderStatement", + "src": "2009:1:3" + } + ] + }, + "documentation": null, + "id": 614, + "name": "onlyAuthorized", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 603, + "nodeType": "ParameterList", + "parameters": [], + "src": "1901:0:3" + }, + "src": "1877:140:3", + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 620, + "name": "AddressAuthorized", + "nodeType": "EventDefinition", + "parameters": { + "id": 619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 616, + "indexed": true, + "name": "authAddress", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "2154:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 615, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2154:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 618, + "indexed": false, + "name": "authorizedBy", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "2191:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 617, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2191:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2144:73:3" + }, + "src": "2120:98:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 626, + "name": "AuthorizedAddressRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 625, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "indexed": true, + "name": "addressRemoved", + "nodeType": "VariableDeclaration", + "scope": 626, + "src": "2316:30:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2316:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 624, + "indexed": false, + "name": "authorizedBy", + "nodeType": "VariableDeclaration", + "scope": 626, + "src": "2356:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2356:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2306:76:3" + }, + "src": "2275:108:3" + }, + { + "body": { + "id": 659, + "nodeType": "Block", + "src": "2689:468:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2778:24:3", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 634, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "2779:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 636, + "indexExpression": { + "argumentTypes": null, + "id": 635, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "2790:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2779:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 638, + "name": "TARGET_ALREADY_AUTHORIZED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 589, + "src": "2816:25:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 633, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "2757:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2757:94:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 640, + "nodeType": "ExpressionStatement", + "src": "2757:94:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 641, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "2903:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 643, + "indexExpression": { + "argumentTypes": null, + "id": 642, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "2914:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2903:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2929:4:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2903:30:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 646, + "nodeType": "ExpressionStatement", + "src": "2903:30:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 650, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "3005:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 647, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "2988:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2988:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2988:29:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 652, + "nodeType": "ExpressionStatement", + "src": "2988:29:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 654, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "3105:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 655, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "3130:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3130:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 653, + "name": "AddressAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 620, + "src": "3074:17:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3074:76:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 658, + "nodeType": "EmitStatement", + "src": "3069:81:3" + } + ] + }, + "documentation": "Add authorized address to contract. Can only be set by owner.\n * @param _authTarget The address of the new authorized contract", + "id": 660, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 631, + "modifierName": { + "argumentTypes": null, + "id": 630, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "2675:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2675:9:3" + } + ], + "name": "addAuthorizedAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 628, + "name": "_authTarget", + "nodeType": "VariableDeclaration", + "scope": 660, + "src": "2629:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2629:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2628:21:3" + }, + "payable": false, + "returnParameters": { + "id": 632, + "nodeType": "ParameterList", + "parameters": [], + "src": "2689:0:3" + }, + "scope": 789, + "src": "2599:558:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 723, + "nodeType": "Block", + "src": "3417:887:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 668, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "3489:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 670, + "indexExpression": { + "argumentTypes": null, + "id": 669, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "3500:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3489:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 671, + "name": "TARGET_NOT_AUTHORIZED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "3526:21:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 667, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "3468:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3468:89:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 673, + "nodeType": "ExpressionStatement", + "src": "3468:89:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "3618:30:3", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 674, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "3625:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 676, + "indexExpression": { + "argumentTypes": null, + "id": 675, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "3636:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3625:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 678, + "nodeType": "ExpressionStatement", + "src": "3618:30:3" + }, + { + "body": { + "id": 721, + "nodeType": "Block", + "src": "3705:593:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 690, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3794:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 692, + "indexExpression": { + "argumentTypes": null, + "id": 691, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3806:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3794:14:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 693, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "3812:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3794:29:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 720, + "nodeType": "IfStatement", + "src": "3790:498:3", + "trueBody": { + "id": 719, + "nodeType": "Block", + "src": "3825:463:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 695, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3921:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 697, + "indexExpression": { + "argumentTypes": null, + "id": 696, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3933:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3921:14:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 698, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3938:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 703, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 699, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3950:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 700, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3950:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3971:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3950:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3938:35:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3921:52:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 705, + "nodeType": "ExpressionStatement", + "src": "3921:52:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 706, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "4040:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 708, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4040:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4062:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4040:23:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 711, + "nodeType": "ExpressionStatement", + "src": "4040:23:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 713, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "4189:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 714, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "4222:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4222:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 712, + "name": "AuthorizedAddressRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "4143:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4143:107:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 717, + "nodeType": "EmitStatement", + "src": "4138:112:3" + }, + { + "id": 718, + "nodeType": "Break", + "src": "4268:5:3" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 683, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3676:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 684, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3680:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 685, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3680:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3676:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 722, + "initializationExpression": { + "assignments": [ + 680 + ], + "declarations": [ + { + "constant": false, + "id": 680, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "3664:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 679, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3664:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 682, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3673:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3664:10:3" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3700:3:3", + "subExpression": { + "argumentTypes": null, + "id": 687, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3700:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 689, + "nodeType": "ExpressionStatement", + "src": "3700:3:3" + }, + "nodeType": "ForStatement", + "src": "3659:639:3" + } + ] + }, + "documentation": "Remove authorized address from contract. Can only be set by owner.\n * @param _authTarget The address to be de-permissioned", + "id": 724, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 665, + "modifierName": { + "argumentTypes": null, + "id": 664, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "3403:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3403:9:3" + } + ], + "name": "removeAuthorizedAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 662, + "name": "_authTarget", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "3357:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3357:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3356:21:3" + }, + "payable": false, + "returnParameters": { + "id": 666, + "nodeType": "ParameterList", + "parameters": [], + "src": "3417:0:3" + }, + "scope": 789, + "src": "3324:980:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 778, + "nodeType": "Block", + "src": "4709:801:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 734, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "4800:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 735, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "4809:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 736, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4809:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4800:27:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 738, + "name": "INDEX_OUT_OF_BOUNDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "4841:19:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 733, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "4779:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4779:91:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 740, + "nodeType": "ExpressionStatement", + "src": "4779:91:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 742, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "4976:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 744, + "indexExpression": { + "argumentTypes": null, + "id": 743, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "4988:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4976:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 745, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "4999:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4976:34:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 747, + "name": "INDEX_ADDRESS_MISMATCH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 595, + "src": "5024:22:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 741, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "4955:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4955:101:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 749, + "nodeType": "ExpressionStatement", + "src": "4955:101:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "5117:30:3", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 750, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "5124:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 752, + "indexExpression": { + "argumentTypes": null, + "id": 751, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "5135:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5124:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 754, + "nodeType": "ExpressionStatement", + "src": "5117:30:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 755, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5223:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 757, + "indexExpression": { + "argumentTypes": null, + "id": 756, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "5235:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5223:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 758, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5245:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 763, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 759, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5257:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 760, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5257:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5278:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5257:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5245:35:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5223:57:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 765, + "nodeType": "ExpressionStatement", + "src": "5223:57:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 766, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5333:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 768, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5333:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5355:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5333:23:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 771, + "nodeType": "ExpressionStatement", + "src": "5333:23:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 773, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "5458:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 774, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "5483:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5483:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 772, + "name": "AuthorizedAddressRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "5420:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5420:83:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 777, + "nodeType": "EmitStatement", + "src": "5415:88:3" + } + ] + }, + "documentation": "More efficiently remove authorized address from contract. Can only be set by owner.\n * @param _authTarget The address to be de-permissioned\n@param _index The index of the _authTarget address in authorities", + "id": 779, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 731, + "modifierName": { + "argumentTypes": null, + "id": 730, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "4695:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4695:9:3" + } + ], + "name": "removeAuthorizedAddressAtIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 726, + "name": "_authTarget", + "nodeType": "VariableDeclaration", + "scope": 779, + "src": "4620:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4620:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 728, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 779, + "src": "4649:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4649:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4610:59:3" + }, + "payable": false, + "returnParameters": { + "id": 732, + "nodeType": "ParameterList", + "parameters": [], + "src": "4709:0:3" + }, + "scope": 789, + "src": "4571:939:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 787, + "nodeType": "Block", + "src": "5723:83:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 785, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5788:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 784, + "id": 786, + "nodeType": "Return", + "src": "5781:18:3" + } + ] + }, + "documentation": "Get array of authorized addresses.", + "id": 788, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getAuthorizedAddresses", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [], + "src": "5651:2:3" + }, + "payable": false, + "returnParameters": { + "id": 784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 783, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "5701:9:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 781, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5701:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 782, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5701:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5700:18:3" + }, + "scope": 789, + "src": "5620:186:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 790, + "src": "963:4845:3" + } + ], + "src": "597:5212:3" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T15:28:53.737Z" +} \ No newline at end of file diff --git a/artifacts/json/BadTokenMock.json b/artifacts/json/BadTokenMock.json new file mode 100644 index 000000000..4dfbc1a00 --- /dev/null +++ b/artifacts/json/BadTokenMock.json @@ -0,0 +1,2422 @@ +{ + "contractName": "BadTokenMock", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_addedValue", + "type": "uint256" + } + ], + "name": "increaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "initialAccount", + "type": "address" + }, + { + "name": "initialBalance", + "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405260126003553480156200001657600080fd5b50604051620013593803806200135983398101806040528101908080519060200190929190805190602001909291908051820192919060200180518201929190505050826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550826006819055508160049080519060200190620000bb929190620000df565b508060059080519060200190620000d4929190620000df565b50505050506200018e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200012257805160ff191683800117855562000153565b8280016001018555821562000153579182015b828111156200015257825182559160200191906001019062000135565b5b50905062000162919062000166565b5090565b6200018b91905b80821115620001875760008160009055506001016200016d565b5090565b90565b6111bb806200019e6000396000f3006080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a957806323b872dd146101d4578063313ce56714610259578063661884631461028457806370a08231146102e957806395d89b4114610340578063a9059cbb146103d0578063d73dd62314610435578063dd62ed3e1461049a575b600080fd5b3480156100c057600080fd5b506100c9610511565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105af565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be6106a1565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a7565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610a61565b6040518082815260200191505060405180910390f35b34801561029057600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a67565b604051808215151515815260200191505060405180910390f35b3480156102f557600080fd5b5061032a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf8565b6040518082815260200191505060405180910390f35b34801561034c57600080fd5b50610355610d40565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103dc57600080fd5b5061041b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dde565b604051808215151515815260200191505060405180910390f35b34801561044157600080fd5b50610480600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed7565b604051808215151515815260200191505060405180910390f35b3480156104a657600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d3565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105a75780601f1061057c576101008083540402835291602001916105a7565b820191906000526020600020905b81548152906001019060200180831161058a57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561073157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107bc57600080fd5b61080d826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461115a90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a0826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117390919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461115a90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b78576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c0c565b610b8b838261115a90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e1b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e6857600080fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000610f6882600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117390919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561116857fe5b818303905092915050565b6000818301905082811015151561118657fe5b809050929150505600a165627a7a7230582075f10e938327beab0a83cbb17ea36d29a6286a2c07930478caabfa9eeb66ce340029", + "deployedBytecode": "0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a957806323b872dd146101d4578063313ce56714610259578063661884631461028457806370a08231146102e957806395d89b4114610340578063a9059cbb146103d0578063d73dd62314610435578063dd62ed3e1461049a575b600080fd5b3480156100c057600080fd5b506100c9610511565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105af565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be6106a1565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a7565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610a61565b6040518082815260200191505060405180910390f35b34801561029057600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a67565b604051808215151515815260200191505060405180910390f35b3480156102f557600080fd5b5061032a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf8565b6040518082815260200191505060405180910390f35b34801561034c57600080fd5b50610355610d40565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103dc57600080fd5b5061041b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dde565b604051808215151515815260200191505060405180910390f35b34801561044157600080fd5b50610480600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed7565b604051808215151515815260200191505060405180910390f35b3480156104a657600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d3565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105a75780601f1061057c576101008083540402835291602001916105a7565b820191906000526020600020905b81548152906001019060200180831161058a57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561073157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107bc57600080fd5b61080d826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461115a90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a0826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117390919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461115a90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b78576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c0c565b610b8b838261115a90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e1b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e6857600080fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000610f6882600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117390919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561116857fe5b818303905092915050565b6000818301905082811015151561118657fe5b809050929150505600a165627a7a7230582075f10e938327beab0a83cbb17ea36d29a6286a2c07930478caabfa9eeb66ce340029", + "sourceMap": "127:825:29:-;;;196:2;170:28;;279:246;8:9:-1;5:2;;;30:1;27;20:12;5:2;279:246:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;432:14;405:8;:24;414:14;405:24;;;;;;;;;;;;;;;:41;;;;466:14;452:11;:28;;;;493:5;486:4;:12;;;;;;;;;;;;:::i;:::-;;513:7;504:6;:16;;;;;;;;;;;;:::i;:::-;;279:246;;;;127:825;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "127:825:29:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;202:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;202:18:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;202:18:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;248:26:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:26:29;;;;;;;;;;;;;;;;;;;;;;;736:470:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;170:28:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;170:28:29;;;;;;;;;;;;;;;;;;;;;;;3701:425:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;224:20:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;224:20:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;224:20:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;679:271;;8:9:-1;5:2;;;30:1;27;20:12;5:2;679:271:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;202:18:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:45:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;248:26:29:-;;;;:::o;736:470:45:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;170:28:29:-;;;;:::o;3701:425:45:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:40:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;224:20:29:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;679:271::-;742:4;777:1;762:17;;:3;:17;;;;754:26;;;;;;;;804:8;:20;813:10;804:20;;;;;;;;;;;;;;;;794:6;:30;;786:39;;;;;;;;916:3;895:33;;904:10;895:33;;;921:6;895:33;;;;;;;;;;;;;;;;;;941:4;934:11;;679:271;;;;:::o;2946:293:45:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "source": "pragma solidity 0.4.24;\n\n\nimport \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\n\n\n// mock class using BasicToken\ncontract BadTokenMock is StandardToken {\n uint256 public decimals = 18;\n string public name;\n string public symbol;\n uint256 public totalSupply;\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n }\n\n /**\n * @dev Transfer token for a specified address\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n require(_value <= balances[msg.sender]);\n\n // BAD TOKEN which does not update balances properly\n\n emit Transfer(msg.sender, _to, _value);\n return true;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/BadTokenMock.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/BadTokenMock.sol", + "exportedSymbols": { + "BadTokenMock": [ + 3429 + ] + }, + "id": 3430, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3350, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:29" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "id": 3351, + "nodeType": "ImportDirective", + "scope": 3430, + "sourceUnit": 5383, + "src": "26:67:29", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3352, + "name": "StandardToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5382, + "src": "152:13:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardToken_$5382", + "typeString": "contract StandardToken" + } + }, + "id": 3353, + "nodeType": "InheritanceSpecifier", + "src": "152:13:29" + } + ], + "contractDependencies": [ + 4920, + 4997, + 5029, + 5382 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3429, + "linearizedBaseContracts": [ + 3429, + 5382, + 4920, + 4997, + 5029 + ], + "name": "BadTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3356, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "170:28:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3354, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "170:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "196:2:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 3358, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "202:18:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3357, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "202:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3360, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "224:20:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3359, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "224:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3362, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "248:26:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3361, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "248:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 3391, + "nodeType": "Block", + "src": "399:126:29", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3373, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4837, + "src": "405:8:29", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3375, + "indexExpression": { + "argumentTypes": null, + "id": 3374, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "414:14:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "405:24:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3376, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "432:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "405:41:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3378, + "nodeType": "ExpressionStatement", + "src": "405:41:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 3381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3379, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3362 + ], + "referencedDeclaration": 3362, + "src": "452:11:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3380, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "466:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "452:28:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3382, + "nodeType": "ExpressionStatement", + "src": "452:28:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 3385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3383, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "486:4:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3384, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3368, + "src": "493:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "486:12:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3386, + "nodeType": "ExpressionStatement", + "src": "486:12:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 3389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3387, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3360, + "src": "504:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3388, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3370, + "src": "513:7:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "504:16:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3390, + "nodeType": "ExpressionStatement", + "src": "504:16:29" + } + ] + }, + "documentation": null, + "id": 3392, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3364, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "296:22:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "296:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3366, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "324:22:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "324:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3368, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "352:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3367, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "352:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3370, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "370:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3369, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "370:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "290:95:29" + }, + "payable": false, + "returnParameters": { + "id": 3372, + "nodeType": "ParameterList", + "parameters": [], + "src": "399:0:29" + }, + "scope": 3429, + "src": "279:246:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3427, + "nodeType": "Block", + "src": "748:202:29", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3402, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3394, + "src": "762:3:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "777:1:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "769:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "769:10:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "762:17:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3401, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "754:7:29", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "754:26:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3408, + "nodeType": "ExpressionStatement", + "src": "754:26:29" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3410, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "794:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3411, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4837, + "src": "804:8:29", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3414, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "813:3:29", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "813:10:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "804:20:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "794:30:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3409, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "786:7:29", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "786:39:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3417, + "nodeType": "ExpressionStatement", + "src": "786:39:29" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3419, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "904:3:29", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "904:10:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3421, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3394, + "src": "916:3:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3422, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "921:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3418, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5028, + "src": "895:8:29", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "895:33:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3424, + "nodeType": "EmitStatement", + "src": "890:38:29" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "941:4:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3400, + "id": 3426, + "nodeType": "Return", + "src": "934:11:29" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", + "id": 3428, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3394, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "697:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "697:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3396, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "710:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3395, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "710:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "696:29:29" + }, + "payable": false, + "returnParameters": { + "id": 3400, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3399, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "742:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3398, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "742:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "741:6:29" + }, + "scope": 3429, + "src": "679:271:29", + "stateMutability": "nonpayable", + "superFunction": 4907, + "visibility": "public" + } + ], + "scope": 3430, + "src": "127:825:29" + } + ], + "src": "0:953:29" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/BadTokenMock.sol", + "exportedSymbols": { + "BadTokenMock": [ + 3429 + ] + }, + "id": 3430, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3350, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:29" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "id": 3351, + "nodeType": "ImportDirective", + "scope": 3430, + "sourceUnit": 5383, + "src": "26:67:29", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3352, + "name": "StandardToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5382, + "src": "152:13:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardToken_$5382", + "typeString": "contract StandardToken" + } + }, + "id": 3353, + "nodeType": "InheritanceSpecifier", + "src": "152:13:29" + } + ], + "contractDependencies": [ + 4920, + 4997, + 5029, + 5382 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3429, + "linearizedBaseContracts": [ + 3429, + 5382, + 4920, + 4997, + 5029 + ], + "name": "BadTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3356, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "170:28:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3354, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "170:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "196:2:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 3358, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "202:18:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3357, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "202:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3360, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "224:20:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3359, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "224:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3362, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "248:26:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3361, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "248:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 3391, + "nodeType": "Block", + "src": "399:126:29", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3373, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4837, + "src": "405:8:29", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3375, + "indexExpression": { + "argumentTypes": null, + "id": 3374, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "414:14:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "405:24:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3376, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "432:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "405:41:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3378, + "nodeType": "ExpressionStatement", + "src": "405:41:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 3381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3379, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3362 + ], + "referencedDeclaration": 3362, + "src": "452:11:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3380, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "466:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "452:28:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3382, + "nodeType": "ExpressionStatement", + "src": "452:28:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 3385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3383, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "486:4:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3384, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3368, + "src": "493:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "486:12:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3386, + "nodeType": "ExpressionStatement", + "src": "486:12:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 3389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3387, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3360, + "src": "504:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3388, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3370, + "src": "513:7:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "504:16:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3390, + "nodeType": "ExpressionStatement", + "src": "504:16:29" + } + ] + }, + "documentation": null, + "id": 3392, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3364, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "296:22:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "296:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3366, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "324:22:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "324:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3368, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "352:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3367, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "352:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3370, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "370:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3369, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "370:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "290:95:29" + }, + "payable": false, + "returnParameters": { + "id": 3372, + "nodeType": "ParameterList", + "parameters": [], + "src": "399:0:29" + }, + "scope": 3429, + "src": "279:246:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3427, + "nodeType": "Block", + "src": "748:202:29", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3402, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3394, + "src": "762:3:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "777:1:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "769:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "769:10:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "762:17:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3401, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "754:7:29", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "754:26:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3408, + "nodeType": "ExpressionStatement", + "src": "754:26:29" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3410, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "794:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3411, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4837, + "src": "804:8:29", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3414, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "813:3:29", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "813:10:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "804:20:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "794:30:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3409, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "786:7:29", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "786:39:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3417, + "nodeType": "ExpressionStatement", + "src": "786:39:29" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3419, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "904:3:29", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "904:10:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3421, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3394, + "src": "916:3:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3422, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "921:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3418, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5028, + "src": "895:8:29", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "895:33:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3424, + "nodeType": "EmitStatement", + "src": "890:38:29" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "941:4:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3400, + "id": 3426, + "nodeType": "Return", + "src": "934:11:29" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", + "id": 3428, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3394, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "697:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "697:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3396, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "710:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3395, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "710:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "696:29:29" + }, + "payable": false, + "returnParameters": { + "id": 3400, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3399, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "742:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3398, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "742:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "741:6:29" + }, + "scope": 3429, + "src": "679:271:29", + "stateMutability": "nonpayable", + "superFunction": 4907, + "visibility": "public" + } + ], + "scope": 3430, + "src": "127:825:29" + } + ], + "src": "0:953:29" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.908Z" +} \ No newline at end of file diff --git a/artifacts/json/BasicToken.json b/artifacts/json/BasicToken.json index 309609b4f..90a7c800e 100644 --- a/artifacts/json/BasicToken.json +++ b/artifacts/json/BasicToken.json @@ -80,24 +80,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610415806100206000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318160ddd1461005c57806370a0823114610087578063a9059cbb146100de575b600080fd5b34801561006857600080fd5b50610071610143565b6040518082815260200191505060405180910390f35b34801561009357600080fd5b506100c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061014d565b6040518082815260200191505060405180910390f35b3480156100ea57600080fd5b50610129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610195565b604051808215151515815260200191505060405180910390f35b6000600154905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156101d257600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561021f57600080fd5b610270826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103b490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610303826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103cd90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008282111515156103c257fe5b818303905092915050565b600081830190508281101515156103e057fe5b809050929150505600a165627a7a72305820a4c06576182303297aea4d90f3a343d50032f27c7bf8e5ba528beffd330205170029", - "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318160ddd1461005c57806370a0823114610087578063a9059cbb146100de575b600080fd5b34801561006857600080fd5b50610071610143565b6040518082815260200191505060405180910390f35b34801561009357600080fd5b506100c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061014d565b6040518082815260200191505060405180910390f35b3480156100ea57600080fd5b50610129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610195565b604051808215151515815260200191505060405180910390f35b6000600154905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156101d257600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561021f57600080fd5b610270826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103b490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610303826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103cd90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008282111515156103c257fe5b818303905092915050565b600081830190508281101515156103e057fe5b809050929150505600a165627a7a72305820a4c06576182303297aea4d90f3a343d50032f27c7bf8e5ba528beffd330205170029", - "sourceMap": "180:1053:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:1053:12;;;;;;;", - "deployedSourceMap": "180:1053:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:12;;;;;;;;;;;;;;;;;;;;;;;1131:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83;415:7;437:12;;430:19;;371:83;:::o;1131:99::-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;608:321::-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;1042:110:10:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "bytecode": "0x608060405234801561001057600080fd5b50610415806100206000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318160ddd1461005c57806370a0823114610087578063a9059cbb146100de575b600080fd5b34801561006857600080fd5b50610071610143565b6040518082815260200191505060405180910390f35b34801561009357600080fd5b506100c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061014d565b6040518082815260200191505060405180910390f35b3480156100ea57600080fd5b50610129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610195565b604051808215151515815260200191505060405180910390f35b6000600154905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156101d257600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561021f57600080fd5b610270826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103b490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610303826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103cd90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008282111515156103c257fe5b818303905092915050565b600081830190508281101515156103e057fe5b809050929150505600a165627a7a72305820717ee26c2d185ee20f70b45a52c71988fea16a8e7a672a33c03252a335817af10029", + "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318160ddd1461005c57806370a0823114610087578063a9059cbb146100de575b600080fd5b34801561006857600080fd5b50610071610143565b6040518082815260200191505060405180910390f35b34801561009357600080fd5b506100c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061014d565b6040518082815260200191505060405180910390f35b3480156100ea57600080fd5b50610129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610195565b604051808215151515815260200191505060405180910390f35b6000600154905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156101d257600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561021f57600080fd5b610270826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103b490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610303826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103cd90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008282111515156103c257fe5b818303905092915050565b600081830190508281101515156103e057fe5b809050929150505600a165627a7a72305820717ee26c2d185ee20f70b45a52c71988fea16a8e7a672a33c03252a335817af10029", + "sourceMap": "180:1053:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:1053:6;;;;;;;", + "deployedSourceMap": "180:1053:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:6;;;;;;;;;;;;;;;;;;;;;;;1131:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83;415:7;437:12;;430:19;;371:83;:::o;1131:99::-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;608:321::-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;1042:110:4:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", "source": "pragma solidity ^0.4.23;\n\n\nimport \"./ERC20Basic.sol\";\nimport \"../../math/SafeMath.sol\";\n\n\n/**\n * @title Basic token\n * @dev Basic version of StandardToken, with no allowances.\n */\ncontract BasicToken is ERC20Basic {\n using SafeMath for uint256;\n\n mapping(address => uint256) balances;\n\n uint256 totalSupply_;\n\n /**\n * @dev total number of tokens in existence\n */\n function totalSupply() public view returns (uint256) {\n return totalSupply_;\n }\n\n /**\n * @dev transfer token for a specified address\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n require(_value <= balances[msg.sender]);\n\n balances[msg.sender] = balances[msg.sender].sub(_value);\n balances[_to] = balances[_to].add(_value);\n emit Transfer(msg.sender, _to, _value);\n return true;\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param _owner The address to query the the balance of.\n * @return An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address _owner) public view returns (uint256) {\n return balances[_owner];\n }\n\n}\n", "sourcePath": "zeppelin-solidity/contracts/token/ERC20/BasicToken.sol", "ast": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/BasicToken.sol", "exportedSymbols": { "BasicToken": [ - 2337 + 1065 ] }, - "id": 2338, + "id": 1066, "nodeType": "SourceUnit", "nodes": [ { - "id": 2243, + "id": 971, "literals": [ "solidity", "^", @@ -105,27 +105,27 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:12" + "src": "0:24:6" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "file": "./ERC20Basic.sol", - "id": 2244, + "id": 972, "nodeType": "ImportDirective", - "scope": 2338, - "sourceUnit": 2447, - "src": "27:26:12", + "scope": 1066, + "sourceUnit": 1175, + "src": "27:26:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "../../math/SafeMath.sol", - "id": 2245, + "id": 973, "nodeType": "ImportDirective", - "scope": 2338, - "sourceUnit": 2156, - "src": "54:33:12", + "scope": 1066, + "sourceUnit": 884, + "src": "54:33:6", "symbolAliases": [], "unitAlias": "" }, @@ -135,56 +135,56 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2246, + "id": 974, "name": "ERC20Basic", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2446, - "src": "203:10:12", + "referencedDeclaration": 1174, + "src": "203:10:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$2446", + "typeIdentifier": "t_contract$_ERC20Basic_$1174", "typeString": "contract ERC20Basic" } }, - "id": 2247, + "id": 975, "nodeType": "InheritanceSpecifier", - "src": "203:10:12" + "src": "203:10:6" } ], "contractDependencies": [ - 2446 + 1174 ], "contractKind": "contract", "documentation": "@title Basic token\n@dev Basic version of StandardToken, with no allowances.", "fullyImplemented": true, - "id": 2337, + "id": 1065, "linearizedBaseContracts": [ - 2337, - 2446 + 1065, + 1174 ], "name": "BasicToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2250, + "id": 978, "libraryName": { "contractScope": null, - "id": 2248, + "id": 976, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "224:8:12", + "referencedDeclaration": 883, + "src": "224:8:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", + "typeIdentifier": "t_contract$_SafeMath_$883", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "218:27:12", + "src": "218:27:6", "typeName": { - "id": 2249, + "id": 977, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "237:7:12", + "src": "237:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -193,11 +193,11 @@ }, { "constant": false, - "id": 2254, + "id": 982, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 2337, - "src": "249:36:12", + "scope": 1065, + "src": "249:36:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -205,28 +205,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 2253, + "id": 981, "keyType": { - "id": 2251, + "id": 979, "name": "address", "nodeType": "ElementaryTypeName", - "src": "257:7:12", + "src": "257:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "249:27:12", + "src": "249:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 2252, + "id": 980, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "268:7:12", + "src": "268:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -238,11 +238,11 @@ }, { "constant": false, - "id": 2256, + "id": 984, "name": "totalSupply_", "nodeType": "VariableDeclaration", - "scope": 2337, - "src": "290:20:12", + "scope": 1065, + "src": "290:20:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -250,10 +250,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2255, + "id": 983, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "290:7:12", + "src": "290:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -264,33 +264,33 @@ }, { "body": { - "id": 2263, + "id": 991, "nodeType": "Block", - "src": "424:30:12", + "src": "424:30:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 2261, + "id": 989, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "437:12:12", + "referencedDeclaration": 984, + "src": "437:12:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2260, - "id": 2262, + "functionReturnParameters": 988, + "id": 990, "nodeType": "Return", - "src": "430:19:12" + "src": "430:19:6" } ] }, "documentation": "@dev total number of tokens in existence", - "id": 2264, + "id": 992, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -298,23 +298,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 2257, + "id": 985, "nodeType": "ParameterList", "parameters": [], - "src": "391:2:12" + "src": "391:2:6" }, "payable": false, "returnParameters": { - "id": 2260, + "id": 988, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2259, + "id": 987, "name": "", "nodeType": "VariableDeclaration", - "scope": 2264, - "src": "415:7:12", + "scope": 992, + "src": "415:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -322,10 +322,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2258, + "id": 986, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "415:7:12", + "src": "415:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -335,19 +335,19 @@ "visibility": "internal" } ], - "src": "414:9:12" + "src": "414:9:6" }, - "scope": 2337, - "src": "371:83:12", + "scope": 1065, + "src": "371:83:6", "stateMutability": "view", - "superFunction": 2421, + "superFunction": 1149, "visibility": "public" }, { "body": { - "id": 2323, + "id": 1051, "nodeType": "Block", - "src": "677:252:12", + "src": "677:252:6", "statements": [ { "expression": { @@ -359,19 +359,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2278, + "id": 1006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2274, + "id": 1002, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "691:3:12", + "referencedDeclaration": 994, + "src": "691:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -385,14 +385,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2276, + "id": 1004, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "706:1:12", + "src": "706:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -408,20 +408,20 @@ "typeString": "int_const 0" } ], - "id": 2275, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "698:7:12", + "src": "698:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2277, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": true, @@ -429,13 +429,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "698:10:12", + "src": "698:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "691:17:12", + "src": "691:17:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -449,21 +449,21 @@ "typeString": "bool" } ], - "id": 2273, + "id": 1001, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "683:7:12", + "referencedDeclaration": 1439, + "src": "683:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2279, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": false, @@ -471,15 +471,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "683:26:12", + "src": "683:26:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2280, + "id": 1008, "nodeType": "ExpressionStatement", - "src": "683:26:12" + "src": "683:26:6" }, { "expression": { @@ -491,19 +491,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2287, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2282, + "id": 1010, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "723:6:12", + "referencedDeclaration": 996, + "src": "723:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -515,34 +515,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2283, + "id": 1011, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "733:8:12", + "referencedDeclaration": 982, + "src": "733:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2286, + "id": 1014, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2284, + "id": 1012, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "742:3:12", + "referencedDeclaration": 1436, + "src": "742:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2285, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, @@ -550,7 +550,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "742:10:12", + "src": "742:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -561,13 +561,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "733:20:12", + "src": "733:20:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "723:30:12", + "src": "723:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -581,21 +581,21 @@ "typeString": "bool" } ], - "id": 2281, + "id": 1009, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "715:7:12", + "referencedDeclaration": 1439, + "src": "715:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2288, + "id": 1016, "isConstant": false, "isLValue": false, "isPure": false, @@ -603,20 +603,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "715:39:12", + "src": "715:39:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2289, + "id": 1017, "nodeType": "ExpressionStatement", - "src": "715:39:12" + "src": "715:39:6" }, { "expression": { "argumentTypes": null, - "id": 2301, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, @@ -625,34 +625,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2290, + "id": 1018, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "761:8:12", + "referencedDeclaration": 982, + "src": "761:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2293, + "id": 1021, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2291, + "id": 1019, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "770:3:12", + "referencedDeclaration": 1436, + "src": "770:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2292, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": false, @@ -660,7 +660,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "770:10:12", + "src": "770:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -671,7 +671,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "761:20:12", + "src": "761:20:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -684,12 +684,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2299, + "id": 1027, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "809:6:12", + "referencedDeclaration": 996, + "src": "809:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -707,34 +707,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2294, + "id": 1022, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "784:8:12", + "referencedDeclaration": 982, + "src": "784:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2297, + "id": 1025, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2295, + "id": 1023, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "793:3:12", + "referencedDeclaration": 1436, + "src": "793:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2296, + "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, @@ -742,7 +742,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "793:10:12", + "src": "793:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -753,27 +753,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "784:20:12", + "src": "784:20:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2298, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "784:24:12", + "referencedDeclaration": 858, + "src": "784:24:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2300, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -781,26 +781,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "784:32:12", + "src": "784:32:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "761:55:12", + "src": "761:55:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2302, + "id": 1030, "nodeType": "ExpressionStatement", - "src": "761:55:12" + "src": "761:55:6" }, { "expression": { "argumentTypes": null, - "id": 2312, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": false, @@ -809,26 +809,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2303, + "id": 1031, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "822:8:12", + "referencedDeclaration": 982, + "src": "822:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2305, + "id": 1033, "indexExpression": { "argumentTypes": null, - "id": 2304, + "id": 1032, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "831:3:12", + "referencedDeclaration": 994, + "src": "831:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -839,7 +839,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "822:13:12", + "src": "822:13:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -852,12 +852,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2310, + "id": 1038, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "856:6:12", + "referencedDeclaration": 996, + "src": "856:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -875,26 +875,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2306, + "id": 1034, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "838:8:12", + "referencedDeclaration": 982, + "src": "838:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2308, + "id": 1036, "indexExpression": { "argumentTypes": null, - "id": 2307, + "id": 1035, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "847:3:12", + "referencedDeclaration": 994, + "src": "847:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -905,27 +905,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "838:13:12", + "src": "838:13:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2309, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "838:17:12", + "referencedDeclaration": 882, + "src": "838:17:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2311, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -933,21 +933,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "838:25:12", + "src": "838:25:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "822:41:12", + "src": "822:41:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2313, + "id": 1041, "nodeType": "ExpressionStatement", - "src": "822:41:12" + "src": "822:41:6" }, { "eventCall": { @@ -957,18 +957,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2315, + "id": 1043, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "883:3:12", + "referencedDeclaration": 1436, + "src": "883:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2316, + "id": 1044, "isConstant": false, "isLValue": false, "isPure": false, @@ -976,7 +976,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "883:10:12", + "src": "883:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -984,12 +984,12 @@ }, { "argumentTypes": null, - "id": 2317, + "id": 1045, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "895:3:12", + "referencedDeclaration": 994, + "src": "895:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -997,12 +997,12 @@ }, { "argumentTypes": null, - "id": 2318, + "id": 1046, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "900:6:12", + "referencedDeclaration": 996, + "src": "900:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1024,18 +1024,18 @@ "typeString": "uint256" } ], - "id": 2314, + "id": 1042, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "874:8:12", + "referencedDeclaration": 1173, + "src": "874:8:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2319, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -1043,28 +1043,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "874:33:12", + "src": "874:33:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2320, + "id": 1048, "nodeType": "EmitStatement", - "src": "869:38:12" + "src": "869:38:6" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2321, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "920:4:12", + "src": "920:4:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1072,15 +1072,15 @@ }, "value": "true" }, - "functionReturnParameters": 2272, - "id": 2322, + "functionReturnParameters": 1000, + "id": 1050, "nodeType": "Return", - "src": "913:11:12" + "src": "913:11:6" } ] }, "documentation": "@dev transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", - "id": 2324, + "id": 1052, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1088,16 +1088,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 2269, + "id": 997, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2266, + "id": 994, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "626:11:12", + "scope": 1052, + "src": "626:11:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1105,10 +1105,10 @@ "typeString": "address" }, "typeName": { - "id": 2265, + "id": 993, "name": "address", "nodeType": "ElementaryTypeName", - "src": "626:7:12", + "src": "626:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1119,11 +1119,11 @@ }, { "constant": false, - "id": 2268, + "id": 996, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "639:14:12", + "scope": 1052, + "src": "639:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1131,10 +1131,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2267, + "id": 995, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "639:7:12", + "src": "639:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1144,20 +1144,20 @@ "visibility": "internal" } ], - "src": "625:29:12" + "src": "625:29:6" }, "payable": false, "returnParameters": { - "id": 2272, + "id": 1000, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2271, + "id": 999, "name": "", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "671:4:12", + "scope": 1052, + "src": "671:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1165,10 +1165,10 @@ "typeString": "bool" }, "typeName": { - "id": 2270, + "id": 998, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "671:4:12", + "src": "671:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1178,45 +1178,45 @@ "visibility": "internal" } ], - "src": "670:6:12" + "src": "670:6:6" }, - "scope": 2337, - "src": "608:321:12", + "scope": 1065, + "src": "608:321:6", "stateMutability": "nonpayable", - "superFunction": 2437, + "superFunction": 1165, "visibility": "public" }, { "body": { - "id": 2335, + "id": 1063, "nodeType": "Block", - "src": "1196:34:12", + "src": "1196:34:6", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2331, + "id": 1059, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1209:8:12", + "referencedDeclaration": 982, + "src": "1209:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2333, + "id": 1061, "indexExpression": { "argumentTypes": null, - "id": 2332, + "id": 1060, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "1218:6:12", + "referencedDeclaration": 1054, + "src": "1218:6:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1227,21 +1227,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1209:16:12", + "src": "1209:16:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2330, - "id": 2334, + "functionReturnParameters": 1058, + "id": 1062, "nodeType": "Return", - "src": "1202:23:12" + "src": "1202:23:6" } ] }, "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", - "id": 2336, + "id": 1064, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1249,16 +1249,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 2327, + "id": 1055, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2326, + "id": 1054, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 2336, - "src": "1150:14:12", + "scope": 1064, + "src": "1150:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1266,10 +1266,10 @@ "typeString": "address" }, "typeName": { - "id": 2325, + "id": 1053, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1150:7:12", + "src": "1150:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1279,20 +1279,20 @@ "visibility": "internal" } ], - "src": "1149:16:12" + "src": "1149:16:6" }, "payable": false, "returnParameters": { - "id": 2330, + "id": 1058, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2329, + "id": 1057, "name": "", "nodeType": "VariableDeclaration", - "scope": 2336, - "src": "1187:7:12", + "scope": 1064, + "src": "1187:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1300,10 +1300,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2328, + "id": 1056, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1187:7:12", + "src": "1187:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1313,33 +1313,33 @@ "visibility": "internal" } ], - "src": "1186:9:12" + "src": "1186:9:6" }, - "scope": 2337, - "src": "1131:99:12", + "scope": 1065, + "src": "1131:99:6", "stateMutability": "view", - "superFunction": 2428, + "superFunction": 1156, "visibility": "public" } ], - "scope": 2338, - "src": "180:1053:12" + "scope": 1066, + "src": "180:1053:6" } ], - "src": "0:1234:12" + "src": "0:1234:6" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/BasicToken.sol", "exportedSymbols": { "BasicToken": [ - 2337 + 1065 ] }, - "id": 2338, + "id": 1066, "nodeType": "SourceUnit", "nodes": [ { - "id": 2243, + "id": 971, "literals": [ "solidity", "^", @@ -1347,27 +1347,27 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:12" + "src": "0:24:6" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "file": "./ERC20Basic.sol", - "id": 2244, + "id": 972, "nodeType": "ImportDirective", - "scope": 2338, - "sourceUnit": 2447, - "src": "27:26:12", + "scope": 1066, + "sourceUnit": 1175, + "src": "27:26:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "../../math/SafeMath.sol", - "id": 2245, + "id": 973, "nodeType": "ImportDirective", - "scope": 2338, - "sourceUnit": 2156, - "src": "54:33:12", + "scope": 1066, + "sourceUnit": 884, + "src": "54:33:6", "symbolAliases": [], "unitAlias": "" }, @@ -1377,56 +1377,56 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2246, + "id": 974, "name": "ERC20Basic", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2446, - "src": "203:10:12", + "referencedDeclaration": 1174, + "src": "203:10:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$2446", + "typeIdentifier": "t_contract$_ERC20Basic_$1174", "typeString": "contract ERC20Basic" } }, - "id": 2247, + "id": 975, "nodeType": "InheritanceSpecifier", - "src": "203:10:12" + "src": "203:10:6" } ], "contractDependencies": [ - 2446 + 1174 ], "contractKind": "contract", "documentation": "@title Basic token\n@dev Basic version of StandardToken, with no allowances.", "fullyImplemented": true, - "id": 2337, + "id": 1065, "linearizedBaseContracts": [ - 2337, - 2446 + 1065, + 1174 ], "name": "BasicToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2250, + "id": 978, "libraryName": { "contractScope": null, - "id": 2248, + "id": 976, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "224:8:12", + "referencedDeclaration": 883, + "src": "224:8:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", + "typeIdentifier": "t_contract$_SafeMath_$883", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "218:27:12", + "src": "218:27:6", "typeName": { - "id": 2249, + "id": 977, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "237:7:12", + "src": "237:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1435,11 +1435,11 @@ }, { "constant": false, - "id": 2254, + "id": 982, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 2337, - "src": "249:36:12", + "scope": 1065, + "src": "249:36:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1447,28 +1447,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 2253, + "id": 981, "keyType": { - "id": 2251, + "id": 979, "name": "address", "nodeType": "ElementaryTypeName", - "src": "257:7:12", + "src": "257:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "249:27:12", + "src": "249:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 2252, + "id": 980, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "268:7:12", + "src": "268:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1480,11 +1480,11 @@ }, { "constant": false, - "id": 2256, + "id": 984, "name": "totalSupply_", "nodeType": "VariableDeclaration", - "scope": 2337, - "src": "290:20:12", + "scope": 1065, + "src": "290:20:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1492,10 +1492,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2255, + "id": 983, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "290:7:12", + "src": "290:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1506,33 +1506,33 @@ }, { "body": { - "id": 2263, + "id": 991, "nodeType": "Block", - "src": "424:30:12", + "src": "424:30:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 2261, + "id": 989, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "437:12:12", + "referencedDeclaration": 984, + "src": "437:12:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2260, - "id": 2262, + "functionReturnParameters": 988, + "id": 990, "nodeType": "Return", - "src": "430:19:12" + "src": "430:19:6" } ] }, "documentation": "@dev total number of tokens in existence", - "id": 2264, + "id": 992, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1540,23 +1540,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 2257, + "id": 985, "nodeType": "ParameterList", "parameters": [], - "src": "391:2:12" + "src": "391:2:6" }, "payable": false, "returnParameters": { - "id": 2260, + "id": 988, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2259, + "id": 987, "name": "", "nodeType": "VariableDeclaration", - "scope": 2264, - "src": "415:7:12", + "scope": 992, + "src": "415:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1564,10 +1564,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2258, + "id": 986, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "415:7:12", + "src": "415:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1577,19 +1577,19 @@ "visibility": "internal" } ], - "src": "414:9:12" + "src": "414:9:6" }, - "scope": 2337, - "src": "371:83:12", + "scope": 1065, + "src": "371:83:6", "stateMutability": "view", - "superFunction": 2421, + "superFunction": 1149, "visibility": "public" }, { "body": { - "id": 2323, + "id": 1051, "nodeType": "Block", - "src": "677:252:12", + "src": "677:252:6", "statements": [ { "expression": { @@ -1601,19 +1601,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2278, + "id": 1006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2274, + "id": 1002, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "691:3:12", + "referencedDeclaration": 994, + "src": "691:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1627,14 +1627,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2276, + "id": 1004, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "706:1:12", + "src": "706:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1650,20 +1650,20 @@ "typeString": "int_const 0" } ], - "id": 2275, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "698:7:12", + "src": "698:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2277, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": true, @@ -1671,13 +1671,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "698:10:12", + "src": "698:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "691:17:12", + "src": "691:17:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1691,21 +1691,21 @@ "typeString": "bool" } ], - "id": 2273, + "id": 1001, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "683:7:12", + "referencedDeclaration": 1439, + "src": "683:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2279, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": false, @@ -1713,15 +1713,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "683:26:12", + "src": "683:26:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2280, + "id": 1008, "nodeType": "ExpressionStatement", - "src": "683:26:12" + "src": "683:26:6" }, { "expression": { @@ -1733,19 +1733,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2287, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2282, + "id": 1010, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "723:6:12", + "referencedDeclaration": 996, + "src": "723:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1757,34 +1757,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2283, + "id": 1011, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "733:8:12", + "referencedDeclaration": 982, + "src": "733:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2286, + "id": 1014, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2284, + "id": 1012, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "742:3:12", + "referencedDeclaration": 1436, + "src": "742:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2285, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, @@ -1792,7 +1792,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "742:10:12", + "src": "742:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1803,13 +1803,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "733:20:12", + "src": "733:20:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "723:30:12", + "src": "723:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1823,21 +1823,21 @@ "typeString": "bool" } ], - "id": 2281, + "id": 1009, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "715:7:12", + "referencedDeclaration": 1439, + "src": "715:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2288, + "id": 1016, "isConstant": false, "isLValue": false, "isPure": false, @@ -1845,20 +1845,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "715:39:12", + "src": "715:39:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2289, + "id": 1017, "nodeType": "ExpressionStatement", - "src": "715:39:12" + "src": "715:39:6" }, { "expression": { "argumentTypes": null, - "id": 2301, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, @@ -1867,34 +1867,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2290, + "id": 1018, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "761:8:12", + "referencedDeclaration": 982, + "src": "761:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2293, + "id": 1021, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2291, + "id": 1019, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "770:3:12", + "referencedDeclaration": 1436, + "src": "770:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2292, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": false, @@ -1902,7 +1902,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "770:10:12", + "src": "770:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1913,7 +1913,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "761:20:12", + "src": "761:20:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1926,12 +1926,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2299, + "id": 1027, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "809:6:12", + "referencedDeclaration": 996, + "src": "809:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1949,34 +1949,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2294, + "id": 1022, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "784:8:12", + "referencedDeclaration": 982, + "src": "784:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2297, + "id": 1025, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2295, + "id": 1023, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "793:3:12", + "referencedDeclaration": 1436, + "src": "793:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2296, + "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, @@ -1984,7 +1984,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "793:10:12", + "src": "793:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1995,27 +1995,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "784:20:12", + "src": "784:20:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2298, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "784:24:12", + "referencedDeclaration": 858, + "src": "784:24:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2300, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -2023,26 +2023,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "784:32:12", + "src": "784:32:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "761:55:12", + "src": "761:55:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2302, + "id": 1030, "nodeType": "ExpressionStatement", - "src": "761:55:12" + "src": "761:55:6" }, { "expression": { "argumentTypes": null, - "id": 2312, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": false, @@ -2051,26 +2051,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2303, + "id": 1031, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "822:8:12", + "referencedDeclaration": 982, + "src": "822:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2305, + "id": 1033, "indexExpression": { "argumentTypes": null, - "id": 2304, + "id": 1032, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "831:3:12", + "referencedDeclaration": 994, + "src": "831:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2081,7 +2081,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "822:13:12", + "src": "822:13:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2094,12 +2094,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2310, + "id": 1038, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "856:6:12", + "referencedDeclaration": 996, + "src": "856:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2117,26 +2117,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2306, + "id": 1034, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "838:8:12", + "referencedDeclaration": 982, + "src": "838:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2308, + "id": 1036, "indexExpression": { "argumentTypes": null, - "id": 2307, + "id": 1035, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "847:3:12", + "referencedDeclaration": 994, + "src": "847:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2147,27 +2147,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "838:13:12", + "src": "838:13:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2309, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "838:17:12", + "referencedDeclaration": 882, + "src": "838:17:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2311, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -2175,21 +2175,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "838:25:12", + "src": "838:25:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "822:41:12", + "src": "822:41:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2313, + "id": 1041, "nodeType": "ExpressionStatement", - "src": "822:41:12" + "src": "822:41:6" }, { "eventCall": { @@ -2199,18 +2199,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2315, + "id": 1043, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "883:3:12", + "referencedDeclaration": 1436, + "src": "883:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2316, + "id": 1044, "isConstant": false, "isLValue": false, "isPure": false, @@ -2218,7 +2218,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "883:10:12", + "src": "883:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2226,12 +2226,12 @@ }, { "argumentTypes": null, - "id": 2317, + "id": 1045, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "895:3:12", + "referencedDeclaration": 994, + "src": "895:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2239,12 +2239,12 @@ }, { "argumentTypes": null, - "id": 2318, + "id": 1046, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "900:6:12", + "referencedDeclaration": 996, + "src": "900:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2266,18 +2266,18 @@ "typeString": "uint256" } ], - "id": 2314, + "id": 1042, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "874:8:12", + "referencedDeclaration": 1173, + "src": "874:8:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2319, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -2285,28 +2285,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "874:33:12", + "src": "874:33:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2320, + "id": 1048, "nodeType": "EmitStatement", - "src": "869:38:12" + "src": "869:38:6" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2321, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "920:4:12", + "src": "920:4:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2314,15 +2314,15 @@ }, "value": "true" }, - "functionReturnParameters": 2272, - "id": 2322, + "functionReturnParameters": 1000, + "id": 1050, "nodeType": "Return", - "src": "913:11:12" + "src": "913:11:6" } ] }, "documentation": "@dev transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", - "id": 2324, + "id": 1052, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2330,16 +2330,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 2269, + "id": 997, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2266, + "id": 994, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "626:11:12", + "scope": 1052, + "src": "626:11:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2347,10 +2347,10 @@ "typeString": "address" }, "typeName": { - "id": 2265, + "id": 993, "name": "address", "nodeType": "ElementaryTypeName", - "src": "626:7:12", + "src": "626:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2361,11 +2361,11 @@ }, { "constant": false, - "id": 2268, + "id": 996, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "639:14:12", + "scope": 1052, + "src": "639:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2373,10 +2373,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2267, + "id": 995, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "639:7:12", + "src": "639:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2386,20 +2386,20 @@ "visibility": "internal" } ], - "src": "625:29:12" + "src": "625:29:6" }, "payable": false, "returnParameters": { - "id": 2272, + "id": 1000, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2271, + "id": 999, "name": "", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "671:4:12", + "scope": 1052, + "src": "671:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2407,10 +2407,10 @@ "typeString": "bool" }, "typeName": { - "id": 2270, + "id": 998, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "671:4:12", + "src": "671:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2420,45 +2420,45 @@ "visibility": "internal" } ], - "src": "670:6:12" + "src": "670:6:6" }, - "scope": 2337, - "src": "608:321:12", + "scope": 1065, + "src": "608:321:6", "stateMutability": "nonpayable", - "superFunction": 2437, + "superFunction": 1165, "visibility": "public" }, { "body": { - "id": 2335, + "id": 1063, "nodeType": "Block", - "src": "1196:34:12", + "src": "1196:34:6", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2331, + "id": 1059, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1209:8:12", + "referencedDeclaration": 982, + "src": "1209:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2333, + "id": 1061, "indexExpression": { "argumentTypes": null, - "id": 2332, + "id": 1060, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "1218:6:12", + "referencedDeclaration": 1054, + "src": "1218:6:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2469,21 +2469,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1209:16:12", + "src": "1209:16:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2330, - "id": 2334, + "functionReturnParameters": 1058, + "id": 1062, "nodeType": "Return", - "src": "1202:23:12" + "src": "1202:23:6" } ] }, "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", - "id": 2336, + "id": 1064, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2491,16 +2491,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 2327, + "id": 1055, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2326, + "id": 1054, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 2336, - "src": "1150:14:12", + "scope": 1064, + "src": "1150:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2508,10 +2508,10 @@ "typeString": "address" }, "typeName": { - "id": 2325, + "id": 1053, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1150:7:12", + "src": "1150:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2521,20 +2521,20 @@ "visibility": "internal" } ], - "src": "1149:16:12" + "src": "1149:16:6" }, "payable": false, "returnParameters": { - "id": 2330, + "id": 1058, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2329, + "id": 1057, "name": "", "nodeType": "VariableDeclaration", - "scope": 2336, - "src": "1187:7:12", + "scope": 1064, + "src": "1187:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2542,10 +2542,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2328, + "id": 1056, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1187:7:12", + "src": "1187:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2555,26 +2555,26 @@ "visibility": "internal" } ], - "src": "1186:9:12" + "src": "1186:9:6" }, - "scope": 2337, - "src": "1131:99:12", + "scope": 1065, + "src": "1131:99:6", "stateMutability": "view", - "superFunction": 2428, + "superFunction": 1156, "visibility": "public" } ], - "scope": 2338, - "src": "180:1053:12" + "scope": 1066, + "src": "180:1053:6" } ], - "src": "0:1234:12" + "src": "0:1234:6" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.587Z" + "updatedAt": "2018-07-07T15:28:53.735Z" } \ No newline at end of file diff --git a/artifacts/json/Core.json b/artifacts/json/Core.json new file mode 100644 index 000000000..4d3129363 --- /dev/null +++ b/artifacts/json/Core.json @@ -0,0 +1,1131 @@ +{ + "contractName": "Core", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_transferProxyAddress", + "type": "address" + } + ], + "name": "setTransferProxyAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + } + ], + "name": "disableFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "redeem", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddresses", + "type": "address[]" + }, + { + "name": "_quantities", + "type": "uint256[]" + } + ], + "name": "batchDeposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + }, + { + "name": "_exchange", + "type": "address" + } + ], + "name": "registerExchange", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + }, + { + "name": "_components", + "type": "address[]" + }, + { + "name": "_units", + "type": "uint256[]" + }, + { + "name": "_naturalUnit", + "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + } + ], + "name": "create", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_addresses", + "type": "address[4]" + }, + { + "name": "_values", + "type": "uint256[5]" + }, + { + "name": "_fillQuantity", + "type": "uint256" + }, + { + "name": "_v", + "type": "uint8" + }, + { + "name": "_r", + "type": "bytes32" + }, + { + "name": "_s", + "type": "bytes32" + }, + { + "name": "_orderData", + "type": "bytes" + } + ], + "name": "fillOrder", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + } + ], + "name": "disableSet", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_vaultAddress", + "type": "address" + } + ], + "name": "setVaultAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "issue", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_addresses", + "type": "address[4]" + }, + { + "name": "_values", + "type": "uint256[5]" + }, + { + "name": "_cancelQuantity", + "type": "uint256" + } + ], + "name": "cancelOrder", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + } + ], + "name": "enableFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddresses", + "type": "address[]" + }, + { + "name": "_quantities", + "type": "uint256[]" + } + ], + "name": "batchWithdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_setToken", + "type": "address" + }, + { + "indexed": true, + "name": "_component", + "type": "address" + }, + { + "indexed": false, + "name": "_quantity", + "type": "uint256" + } + ], + "name": "IssuanceComponentDeposited", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_setTokenAddress", + "type": "address" + }, + { + "indexed": false, + "name": "_factoryAddress", + "type": "address" + }, + { + "indexed": false, + "name": "_components", + "type": "address[]" + }, + { + "indexed": false, + "name": "_units", + "type": "uint256[]" + }, + { + "indexed": false, + "name": "_naturalUnit", + "type": "uint256" + }, + { + "indexed": false, + "name": "_name", + "type": "string" + }, + { + "indexed": false, + "name": "_symbol", + "type": "string" + } + ], + "name": "SetTokenCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_exchangeId", + "type": "uint8" + }, + { + "indexed": false, + "name": "_exchange", + "type": "address" + } + ], + "name": "ExchangeRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + } + ], + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506157a3806100536000396000f300608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d414610159578063124cfd78146101b45780631a1f2b3e146101f75780631e912bd61461023a5780631e9a69501461027f57806330a90736146102cc5780633e3d13b21461031f578063430bf08a1461036f57806347e7ef24146103c657806352904449146104135780635cee2af114610500578063715018a61461058257806377274ff01461059957806385535cc5146105dc578063867904b41461061f5780638ca4daf91461066c5780638da5cb5b146106c357806398362fa31461071a5780639f80ee881461075b578063a003e0691461079e578063c19d93fb1461080e578063e131243e14610898578063f2fde38b146108eb578063f3fef3a31461092e578063f7213db61461097b578063fef3ee73146109c0575b600080fd5b34801561016557600080fd5b5061019a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a1b565b604051808215151515815260200191505060405180910390f35b3480156101c057600080fd5b506101f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a74565b005b34801561020357600080fd5b50610238600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b15565b005b34801561024657600080fd5b506102696004803603810190808035600019169060200190929190505050610d26565b6040518082815260200191505060405180910390f35b34801561028b57600080fd5b506102ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d4e565b005b3480156102d857600080fd5b5061031d600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611759565b005b34801561032b57600080fd5b5061036d600480360381019080803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611afc565b005b34801561037b57600080fd5b50610384611c27565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103d257600080fd5b50610411600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c54565b005b34801561041f57600080fd5b506104be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939080359060200190929190803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611f8b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561050c57600080fd5b50610580600480360381019080806080019091929192908060a00190919291929080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919080359060200190820180359060200191909192939192939050505061239c565b005b34801561058e57600080fd5b50610597612bc1565b005b3480156105a557600080fd5b506105da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cc3565b005b3480156105e857600080fd5b5061061d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ed4565b005b34801561062b57600080fd5b5061066a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f76565b005b34801561067857600080fd5b506106816133a0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106cf57600080fd5b506106d86133cc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072657600080fd5b50610759600480360381019080806080019091929192908060a001909192919290803590602001909291905050506133f1565b005b34801561076757600080fd5b5061079c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061387f565b005b3480156107aa57600080fd5b506107cc600480360381019080803560ff169060200190929190505050613937565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081a57600080fd5b5061082361397d565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156108a457600080fd5b506108e96004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506139cf565b005b3480156108f757600080fd5b5061092c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d72565b005b34801561093a57600080fd5b50610979600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613dd9565b005b34801561098757600080fd5b506109aa6004803603810190808035600019169060200190929190505050614005565b6040518082815260200191505060405180910390f35b3480156109cc57600080fd5b50610a01600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061402d565b604051808215151515815260200191505060405180910390f35b6000600160030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610acf57600080fd5b806001800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b7057600080fd5b80600160030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e0000000000000000000000000000000000000000000000000000815250901515610cc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c8b578082015181840152602081019050610c70565b50505050905090810190601f168015610cb85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160060160008360001916600019168152602001908152602001600020549050919050565b600060608060008060008088600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515610eaf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e74578082015181840152602081019050610e59565b50505050905090810190601f168015610ea15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508860008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515610fba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f7f578082015181840152602081019050610f64565b50505050905090810190601f168015610fac5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50898b60008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b505050506040513d602081101561104d57600080fd5b81019080805190602001909291905050508381151561106857fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e0000000000000081525090151561116f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611134578082015181840152602081019050611119565b50505050905090810190601f1680156111615780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff16639dc29fac338e6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561121357600080fd5b505af1158015611227573d6000803e3d6000fd5b505050508c73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561128f57600080fd5b505af11580156112a3573d6000803e3d6000fd5b505050506040513d60208110156112b957600080fd5b81019080805190602001909291905050509a508c73ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561133057600080fd5b505af1158015611344573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561136e57600080fd5b81019080805164010000000081111561138657600080fd5b8281019050602081018481111561139c57600080fd5b81518560208202830111640100000000821117156113b957600080fd5b505092919050505099508c73ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561142757600080fd5b505af115801561143b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561146557600080fd5b81019080805164010000000081111561147d57600080fd5b8281019050602081018481111561149357600080fd5b81518560208202830111640100000000821117156114b057600080fd5b50509291905050509850600097505b89518861ffff16101561174a57898861ffff168151811015156114de57fe5b906020019060200201519650888861ffff168151811015156114fc57fe5b906020019060200201519550611513868c8e614086565b9450600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308e89886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561161157600080fd5b505af1158015611625573d6000803e3d6000fd5b50505050600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263389886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b5050505087806001019850506114bf565b50505050505050505050505050565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e0000000081525090151561189e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611863578082015181840152602081019050611848565b50505050905090810190601f1680156118905780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e000000815250901515611982576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561194757808201518184015260208101905061192c565b50505050905090810190601f1680156119745780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e000000000000000000000000000000815250901515611a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a52578082015181840152602081019050611a37565b50505050905090810190601f168015611a7f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b86869050831015611af357611ae68787858181101515611aaf57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168686868181101515611ada57fe5b90506020020135611c54565b8280600101935050611a93565b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5757600080fd5b80600160000160008460ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507feee2c0570205f21356a5108d71a4d6e7151682b92a84c761fca82cac87275c288282604051808360ff1660ff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b6000600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515611d5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d23578082015181840152602081019050611d08565b50505050905090810190601f168015611d505780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22953385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611e5a57600080fd5b505af1158015611e6e573d6000803e3d6000fd5b50505050600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611f6e57600080fd5b505af1158015611f82573d6000803e3d6000fd5b50505050505050565b6000808b600160030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e00000000000000000000000000000000000000000000000000008152509015156120e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156120a957808201518184015260208101905061208e565b50505050905090810190601f1680156120d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff1663110a25c28d8d8d8d8d8d8d8d8d6040518a63ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509d5050505050505050505050505050602060405180830381600087803b1580156121e257600080fd5b505af11580156121f6573d6000803e3d6000fd5b505050506040513d602081101561220c57600080fd5b8101908080519060200190929190505050915060018060040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f388b9bd51ec792eb7ce238581b3f844072709011b2a20260c428451e07d764a88e8e8e8e8e8e8e8e8e8e604051808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509e50505050505050505050505050505060405180910390a281925050509a9950505050505050505050565b6123a46156ab565b8860006004811015156123b357fe5b602002013573ffffffffffffffffffffffffffffffffffffffff16600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515612523576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124e85780820151818401526020810190506124cd565b50505050905090810190601f1680156125155780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508760008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e000000000000000000000000000000000000000000000000000000000081525090151561262e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156125f35780820151818401526020810190506125d8565b50505050905090810190601f1680156126205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50888b600060048110151561263f57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1660008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156126c057600080fd5b505af11580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b81019080805190602001909291905050508381151561270557fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e0000000000000081525090151561280c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127d15780820151818401526020810190506127b6565b50505050905090810190601f1680156127fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610140604051908101604052808e600060048110151561282957fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018d600060058110151561286e57fe5b602002013581526020018e600160048110151561288757fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018e60026004811015156128cc57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018d600160058110151561291157fe5b602002013581526020018d600260058110151561292a57fe5b602002013581526020018e600360048110151561294357fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018d600360058110151561298857fe5b602002013581526020018d60046005811015156129a157fe5b602002013581526020016129ff8f600480602002604051908101604052809291908260046020028082843782019150505050508f600580602002604051908101604052809291908260056020028082843782019150505050506140b6565b600019168152509450612a12858c614319565b612a2885610120015186604001518c8c8c614522565b6040805190810160405280601881526020017f496e76616c6964206f72646572207369676e61747572652e0000000000000000815250901515612b06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612acb578082015181840152602081019050612ab0565b50505050905090810190601f168015612af85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50612b4287878080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506146fc565b612b788b60016005016000886101200151600019166000191681526020019081526020016000205461490490919063ffffffff16565b600160050160008761012001516000191660001916815260200190815260200160002081905550612bb2856040015186600001518d614920565b50505050505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c1c57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d1e57600080fd5b80600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515612e74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e39578082015181840152602081019050612e1e565b50505050905090810190601f168015612e665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f2f57600080fd5b80600160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b81600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e0000000000000000000000000000000000000000000000008152509015156130cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613091578082015181840152602081019050613076565b50505050905090810190601f1680156130be5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508160008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e00000000000000000000000000000000000000000000000000000000008152509015156131d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561319c578082015181840152602081019050613181565b50505050905090810190601f1680156131c95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50828460008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561324057600080fd5b505af1158015613254573d6000803e3d6000fd5b505050506040513d602081101561326a57600080fd5b81019080805190602001909291905050508381151561328557fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e0000000000000081525090151561338c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613351578082015181840152602081019050613336565b50505050905090810190601f16801561337e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50613398338787614920565b505050505050565b60006001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6133f96156ab565b8160008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515613503576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134c85780820151818401526020810190506134ad565b50505050905090810190601f1680156134f55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506101406040519081016040528086600060048110151561352057fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600060058110151561356557fe5b6020020135815260200186600160048110151561357e57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018660026004811015156135c357fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600160058110151561360857fe5b6020020135815260200185600260058110151561362157fe5b6020020135815260200186600360048110151561363a57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600360058110151561367f57fe5b6020020135815260200185600460058110151561369857fe5b602002013581526020016136f6876004806020026040519081016040528092919082600460200280828437820191505050505087600580602002604051908101604052809291908260056020028082843782019150505050506140b6565b6000191681525091503373ffffffffffffffffffffffffffffffffffffffff16826040015173ffffffffffffffffffffffffffffffffffffffff16146040805190810160405280601c81526020017f4f6e6c79206d616b65722063616e2063616e63656c206f726465722e00000000815250901515613810576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137d55780820151818401526020810190506137ba565b50505050905090810190601f1680156138025780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061381b8284614319565b6138518360016006016000856101200151600019166000191681526020019081526020016000205461490490919063ffffffff16565b6001600601600084610120015160001916600019168152602001908152602001600020819055505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156138da57600080fd5b60018060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60018060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e00000000815250901515613b14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ad9578082015181840152602081019050613abe565b50505050905090810190601f168015613b065780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e000000815250901515613bf8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613bbd578082015181840152602081019050613ba2565b50505050905090810190601f168015613bea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e000000000000000000000000000000815250901515613d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613cc8578082015181840152602081019050613cad565b50505050905090810190601f168015613cf55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b86869050831015613d6957613d5c8787858181101515613d2557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168686868181101515613d5057fe5b90506020020135613dd9565b8280600101935050613d09565b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613dcd57600080fd5b613dd68161530d565b50565b600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda303384846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015613ed557600080fd5b505af1158015613ee9573d6000803e3d6000fd5b50505050600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c3b35a7e8333846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015613fe957600080fd5b505af1158015613ffd573d6000803e3d6000fd5b505050505050565b6000600160050160008360001916600019168152602001908152602001600020549050919050565b6000600160040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006140ad8461409f858561540790919063ffffffff16565b61541d90919063ffffffff16565b90509392505050565b60008260006004811015156140c757fe5b60200201518360016004811015156140db57fe5b60200201518460026004811015156140ef57fe5b602002015185600360048110151561410357fe5b602002015185600060058110151561411757fe5b602002015186600160058110151561412b57fe5b602002015187600260058110151561413f57fe5b602002015188600360058110151561415357fe5b602002015189600460058110151561416757fe5b6020020151604051602001808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186815260200185815260200184815260200183815260200182815260200199505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156142e457805182526020820191506020810190506020830392506142bf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905092915050565b60008260800151118015614331575060008260200151115b606060405190810160405280603781526020017f5175616e7469747920616e64206d616b6572546f6b656e416d6f756e7420736881526020017f6f756c642062652067726561746572207468616e20302e000000000000000000815250901515614436576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156143fb5780820151818401526020810190506143e0565b50505050905090810190601f1680156144285780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508160a001514211156040805190810160405280601781526020017f54686973206f726465722068617320657870697265642e00000000000000000081525090151561451d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156144e25780820151818401526020810190506144c7565b50505050905090810190601f16801561450f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050565b60008060606040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152509050600181896040516020018083805190602001908083835b60208310151561459b5780518252602082019150602081019050602083039250614576565b6001836020036101000a0380198251168184511680821785525050505050509050018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561461357805182526020820191506020810190506020830392506145ee565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020878787604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156146b4573d6000803e3d6000fd5b5050506020604051035191508673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149250505095945050505050565b6000606061470861575a565b60008060605b86518610156148fb57614735878761473060408a61490490919063ffffffff16565b615455565b9450614740856155a8565b935060016000016000856000015160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156040805190810160405280601881526020017f45786368616e676520646f6573206e6f742065786973742e0000000000000000815250901515614894576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561485957808201518184015260208101905061483e565b50505050905090810190601f1680156148865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506148ad6040856020015161490490919063ffffffff16565b91506148df876148c760408961490490919063ffffffff16565b6148da858a61490490919063ffffffff16565b615455565b90506148f4828761490490919063ffffffff16565b955061470e565b50505050505050565b6000818301905082811015151561491757fe5b80905092915050565b6060806000806000806000808973ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561499057600080fd5b505af11580156149a4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156149ce57600080fd5b8101908080516401000000008111156149e657600080fd5b828101905060208101848111156149fc57600080fd5b8151856020820283011164010000000082111715614a1957600080fd5b505092919050505097508973ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015614a8757600080fd5b505af1158015614a9b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015614ac557600080fd5b810190808051640100000000811115614add57600080fd5b82810190506020810184811115614af357600080fd5b8151856020820283011164010000000082111715614b1057600080fd5b50509291905050509650600095505b87518661ffff16101561524557878661ffff16815181101515614b3e57fe5b906020019060200201519450868661ffff16815181101515614b5c57fe5b906020019060200201519350614c11848b73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015614bd057600080fd5b505af1158015614be4573d6000803e3d6000fd5b505050506040513d6020811015614bfa57600080fd5b81019080805190602001909291905050508b614086565b9250600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f98ade38c876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015614d0757600080fd5b505af1158015614d1b573d6000803e3d6000fd5b505050506040513d6020811015614d3157600080fd5b810190808051906020019092919050505091508282101515614e6657600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015614e4957600080fd5b505af1158015614e5d573d6000803e3d6000fd5b50505050615124565b6000821115614f8457600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015614f6b57600080fd5b505af1158015614f7f573d6000803e3d6000fd5b505050505b614f9782846155d290919063ffffffff16565b90506001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22958c87614fee86886155d290919063ffffffff16565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156150a657600080fd5b505af11580156150ba573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fced8518610cf00c97309551834addd978c595341eda2066dbd52f9e990489573836040518082815260200191505060405180910390a35b600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57268b87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561522057600080fd5b505af1158015615234573d6000803e3d6000fd5b505050508580600101965050614b1f565b8973ffffffffffffffffffffffffffffffffffffffff166340c10f198c8b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156152e857600080fd5b505af11580156152fc573d6000803e3d6000fd5b505050505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561534957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000818381151561541457fe5b04905092915050565b600080831415615430576000905061544f565b818302905081838281151561544157fe5b0414151561544b57fe5b8090505b92915050565b60608183111515156154cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f46524f4d5f4c4553535f5448414e5f544f5f524551554952454400000000000081525060200191505060405180910390fd5b83518211151515615548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f544f5f4c4553535f5448414e5f4c454e4754485f52455155495245440000000081525060200191505060405180910390fd5b8282036040519080825280601f01601f19166020018201604052801561557d5781602001602082028038833980820191505090505b50905061559e61558c826155eb565b84615596876155eb565b0183516155fb565b8090509392505050565b6155b061575a565b6155b861575a565b602083015181526040830151602082015280915050919050565b60008282111515156155e057fe5b818303905092915050565b6000602082019050809050919050565b6020811015615625576001816020036101000a0380198351168185511680821786525050506156a5565b82821415615632576156a6565b828211156156715760208103905080820181840181515b828510156156665784518652602085019450602086019550615649565b8082525050506156a4565b60208103905080820181840183515b8186121561569d5782518252602083039250602082039150615680565b8086525050505b5b5b505050565b61014060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600080191681525090565b6040805190810160405280600060ff1681526020016000815250905600a165627a7a723058205189cc30f7075f1d45dc1a3bb4b92abe85d02e59adb757d5639694a5e3bbfafe0029", + "deployedBytecode": "0x608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d414610159578063124cfd78146101b45780631a1f2b3e146101f75780631e912bd61461023a5780631e9a69501461027f57806330a90736146102cc5780633e3d13b21461031f578063430bf08a1461036f57806347e7ef24146103c657806352904449146104135780635cee2af114610500578063715018a61461058257806377274ff01461059957806385535cc5146105dc578063867904b41461061f5780638ca4daf91461066c5780638da5cb5b146106c357806398362fa31461071a5780639f80ee881461075b578063a003e0691461079e578063c19d93fb1461080e578063e131243e14610898578063f2fde38b146108eb578063f3fef3a31461092e578063f7213db61461097b578063fef3ee73146109c0575b600080fd5b34801561016557600080fd5b5061019a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a1b565b604051808215151515815260200191505060405180910390f35b3480156101c057600080fd5b506101f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a74565b005b34801561020357600080fd5b50610238600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b15565b005b34801561024657600080fd5b506102696004803603810190808035600019169060200190929190505050610d26565b6040518082815260200191505060405180910390f35b34801561028b57600080fd5b506102ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d4e565b005b3480156102d857600080fd5b5061031d600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611759565b005b34801561032b57600080fd5b5061036d600480360381019080803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611afc565b005b34801561037b57600080fd5b50610384611c27565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103d257600080fd5b50610411600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c54565b005b34801561041f57600080fd5b506104be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939080359060200190929190803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611f8b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561050c57600080fd5b50610580600480360381019080806080019091929192908060a00190919291929080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919080359060200190820180359060200191909192939192939050505061239c565b005b34801561058e57600080fd5b50610597612bc1565b005b3480156105a557600080fd5b506105da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cc3565b005b3480156105e857600080fd5b5061061d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ed4565b005b34801561062b57600080fd5b5061066a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f76565b005b34801561067857600080fd5b506106816133a0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106cf57600080fd5b506106d86133cc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072657600080fd5b50610759600480360381019080806080019091929192908060a001909192919290803590602001909291905050506133f1565b005b34801561076757600080fd5b5061079c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061387f565b005b3480156107aa57600080fd5b506107cc600480360381019080803560ff169060200190929190505050613937565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081a57600080fd5b5061082361397d565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156108a457600080fd5b506108e96004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506139cf565b005b3480156108f757600080fd5b5061092c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d72565b005b34801561093a57600080fd5b50610979600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613dd9565b005b34801561098757600080fd5b506109aa6004803603810190808035600019169060200190929190505050614005565b6040518082815260200191505060405180910390f35b3480156109cc57600080fd5b50610a01600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061402d565b604051808215151515815260200191505060405180910390f35b6000600160030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610acf57600080fd5b806001800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b7057600080fd5b80600160030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e0000000000000000000000000000000000000000000000000000815250901515610cc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c8b578082015181840152602081019050610c70565b50505050905090810190601f168015610cb85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160060160008360001916600019168152602001908152602001600020549050919050565b600060608060008060008088600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515610eaf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e74578082015181840152602081019050610e59565b50505050905090810190601f168015610ea15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508860008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515610fba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f7f578082015181840152602081019050610f64565b50505050905090810190601f168015610fac5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50898b60008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b505050506040513d602081101561104d57600080fd5b81019080805190602001909291905050508381151561106857fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e0000000000000081525090151561116f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611134578082015181840152602081019050611119565b50505050905090810190601f1680156111615780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff16639dc29fac338e6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561121357600080fd5b505af1158015611227573d6000803e3d6000fd5b505050508c73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561128f57600080fd5b505af11580156112a3573d6000803e3d6000fd5b505050506040513d60208110156112b957600080fd5b81019080805190602001909291905050509a508c73ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561133057600080fd5b505af1158015611344573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561136e57600080fd5b81019080805164010000000081111561138657600080fd5b8281019050602081018481111561139c57600080fd5b81518560208202830111640100000000821117156113b957600080fd5b505092919050505099508c73ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561142757600080fd5b505af115801561143b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561146557600080fd5b81019080805164010000000081111561147d57600080fd5b8281019050602081018481111561149357600080fd5b81518560208202830111640100000000821117156114b057600080fd5b50509291905050509850600097505b89518861ffff16101561174a57898861ffff168151811015156114de57fe5b906020019060200201519650888861ffff168151811015156114fc57fe5b906020019060200201519550611513868c8e614086565b9450600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308e89886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561161157600080fd5b505af1158015611625573d6000803e3d6000fd5b50505050600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263389886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b5050505087806001019850506114bf565b50505050505050505050505050565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e0000000081525090151561189e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611863578082015181840152602081019050611848565b50505050905090810190601f1680156118905780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e000000815250901515611982576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561194757808201518184015260208101905061192c565b50505050905090810190601f1680156119745780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e000000000000000000000000000000815250901515611a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a52578082015181840152602081019050611a37565b50505050905090810190601f168015611a7f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b86869050831015611af357611ae68787858181101515611aaf57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168686868181101515611ada57fe5b90506020020135611c54565b8280600101935050611a93565b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5757600080fd5b80600160000160008460ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507feee2c0570205f21356a5108d71a4d6e7151682b92a84c761fca82cac87275c288282604051808360ff1660ff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b6000600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515611d5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d23578082015181840152602081019050611d08565b50505050905090810190601f168015611d505780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22953385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611e5a57600080fd5b505af1158015611e6e573d6000803e3d6000fd5b50505050600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611f6e57600080fd5b505af1158015611f82573d6000803e3d6000fd5b50505050505050565b6000808b600160030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e00000000000000000000000000000000000000000000000000008152509015156120e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156120a957808201518184015260208101905061208e565b50505050905090810190601f1680156120d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff1663110a25c28d8d8d8d8d8d8d8d8d6040518a63ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509d5050505050505050505050505050602060405180830381600087803b1580156121e257600080fd5b505af11580156121f6573d6000803e3d6000fd5b505050506040513d602081101561220c57600080fd5b8101908080519060200190929190505050915060018060040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f388b9bd51ec792eb7ce238581b3f844072709011b2a20260c428451e07d764a88e8e8e8e8e8e8e8e8e8e604051808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509e50505050505050505050505050505060405180910390a281925050509a9950505050505050505050565b6123a46156ab565b8860006004811015156123b357fe5b602002013573ffffffffffffffffffffffffffffffffffffffff16600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515612523576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124e85780820151818401526020810190506124cd565b50505050905090810190601f1680156125155780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508760008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e000000000000000000000000000000000000000000000000000000000081525090151561262e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156125f35780820151818401526020810190506125d8565b50505050905090810190601f1680156126205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50888b600060048110151561263f57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1660008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156126c057600080fd5b505af11580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b81019080805190602001909291905050508381151561270557fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e0000000000000081525090151561280c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127d15780820151818401526020810190506127b6565b50505050905090810190601f1680156127fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610140604051908101604052808e600060048110151561282957fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018d600060058110151561286e57fe5b602002013581526020018e600160048110151561288757fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018e60026004811015156128cc57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018d600160058110151561291157fe5b602002013581526020018d600260058110151561292a57fe5b602002013581526020018e600360048110151561294357fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018d600360058110151561298857fe5b602002013581526020018d60046005811015156129a157fe5b602002013581526020016129ff8f600480602002604051908101604052809291908260046020028082843782019150505050508f600580602002604051908101604052809291908260056020028082843782019150505050506140b6565b600019168152509450612a12858c614319565b612a2885610120015186604001518c8c8c614522565b6040805190810160405280601881526020017f496e76616c6964206f72646572207369676e61747572652e0000000000000000815250901515612b06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612acb578082015181840152602081019050612ab0565b50505050905090810190601f168015612af85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50612b4287878080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506146fc565b612b788b60016005016000886101200151600019166000191681526020019081526020016000205461490490919063ffffffff16565b600160050160008761012001516000191660001916815260200190815260200160002081905550612bb2856040015186600001518d614920565b50505050505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c1c57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d1e57600080fd5b80600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515612e74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e39578082015181840152602081019050612e1e565b50505050905090810190601f168015612e665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f2f57600080fd5b80600160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b81600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e0000000000000000000000000000000000000000000000008152509015156130cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613091578082015181840152602081019050613076565b50505050905090810190601f1680156130be5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508160008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e00000000000000000000000000000000000000000000000000000000008152509015156131d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561319c578082015181840152602081019050613181565b50505050905090810190601f1680156131c95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50828460008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561324057600080fd5b505af1158015613254573d6000803e3d6000fd5b505050506040513d602081101561326a57600080fd5b81019080805190602001909291905050508381151561328557fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e0000000000000081525090151561338c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613351578082015181840152602081019050613336565b50505050905090810190601f16801561337e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50613398338787614920565b505050505050565b60006001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6133f96156ab565b8160008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515613503576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134c85780820151818401526020810190506134ad565b50505050905090810190601f1680156134f55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506101406040519081016040528086600060048110151561352057fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600060058110151561356557fe5b6020020135815260200186600160048110151561357e57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018660026004811015156135c357fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600160058110151561360857fe5b6020020135815260200185600260058110151561362157fe5b6020020135815260200186600360048110151561363a57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600360058110151561367f57fe5b6020020135815260200185600460058110151561369857fe5b602002013581526020016136f6876004806020026040519081016040528092919082600460200280828437820191505050505087600580602002604051908101604052809291908260056020028082843782019150505050506140b6565b6000191681525091503373ffffffffffffffffffffffffffffffffffffffff16826040015173ffffffffffffffffffffffffffffffffffffffff16146040805190810160405280601c81526020017f4f6e6c79206d616b65722063616e2063616e63656c206f726465722e00000000815250901515613810576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137d55780820151818401526020810190506137ba565b50505050905090810190601f1680156138025780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061381b8284614319565b6138518360016006016000856101200151600019166000191681526020019081526020016000205461490490919063ffffffff16565b6001600601600084610120015160001916600019168152602001908152602001600020819055505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156138da57600080fd5b60018060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60018060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e00000000815250901515613b14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ad9578082015181840152602081019050613abe565b50505050905090810190601f168015613b065780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e000000815250901515613bf8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613bbd578082015181840152602081019050613ba2565b50505050905090810190601f168015613bea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e000000000000000000000000000000815250901515613d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613cc8578082015181840152602081019050613cad565b50505050905090810190601f168015613cf55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b86869050831015613d6957613d5c8787858181101515613d2557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168686868181101515613d5057fe5b90506020020135613dd9565b8280600101935050613d09565b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613dcd57600080fd5b613dd68161530d565b50565b600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda303384846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015613ed557600080fd5b505af1158015613ee9573d6000803e3d6000fd5b50505050600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c3b35a7e8333846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015613fe957600080fd5b505af1158015613ffd573d6000803e3d6000fd5b505050505050565b6000600160050160008360001916600019168152602001908152602001600020549050919050565b6000600160040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006140ad8461409f858561540790919063ffffffff16565b61541d90919063ffffffff16565b90509392505050565b60008260006004811015156140c757fe5b60200201518360016004811015156140db57fe5b60200201518460026004811015156140ef57fe5b602002015185600360048110151561410357fe5b602002015185600060058110151561411757fe5b602002015186600160058110151561412b57fe5b602002015187600260058110151561413f57fe5b602002015188600360058110151561415357fe5b602002015189600460058110151561416757fe5b6020020151604051602001808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186815260200185815260200184815260200183815260200182815260200199505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156142e457805182526020820191506020810190506020830392506142bf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905092915050565b60008260800151118015614331575060008260200151115b606060405190810160405280603781526020017f5175616e7469747920616e64206d616b6572546f6b656e416d6f756e7420736881526020017f6f756c642062652067726561746572207468616e20302e000000000000000000815250901515614436576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156143fb5780820151818401526020810190506143e0565b50505050905090810190601f1680156144285780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508160a001514211156040805190810160405280601781526020017f54686973206f726465722068617320657870697265642e00000000000000000081525090151561451d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156144e25780820151818401526020810190506144c7565b50505050905090810190601f16801561450f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050565b60008060606040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152509050600181896040516020018083805190602001908083835b60208310151561459b5780518252602082019150602081019050602083039250614576565b6001836020036101000a0380198251168184511680821785525050505050509050018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561461357805182526020820191506020810190506020830392506145ee565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020878787604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156146b4573d6000803e3d6000fd5b5050506020604051035191508673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149250505095945050505050565b6000606061470861575a565b60008060605b86518610156148fb57614735878761473060408a61490490919063ffffffff16565b615455565b9450614740856155a8565b935060016000016000856000015160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156040805190810160405280601881526020017f45786368616e676520646f6573206e6f742065786973742e0000000000000000815250901515614894576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561485957808201518184015260208101905061483e565b50505050905090810190601f1680156148865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506148ad6040856020015161490490919063ffffffff16565b91506148df876148c760408961490490919063ffffffff16565b6148da858a61490490919063ffffffff16565b615455565b90506148f4828761490490919063ffffffff16565b955061470e565b50505050505050565b6000818301905082811015151561491757fe5b80905092915050565b6060806000806000806000808973ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561499057600080fd5b505af11580156149a4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156149ce57600080fd5b8101908080516401000000008111156149e657600080fd5b828101905060208101848111156149fc57600080fd5b8151856020820283011164010000000082111715614a1957600080fd5b505092919050505097508973ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015614a8757600080fd5b505af1158015614a9b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015614ac557600080fd5b810190808051640100000000811115614add57600080fd5b82810190506020810184811115614af357600080fd5b8151856020820283011164010000000082111715614b1057600080fd5b50509291905050509650600095505b87518661ffff16101561524557878661ffff16815181101515614b3e57fe5b906020019060200201519450868661ffff16815181101515614b5c57fe5b906020019060200201519350614c11848b73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015614bd057600080fd5b505af1158015614be4573d6000803e3d6000fd5b505050506040513d6020811015614bfa57600080fd5b81019080805190602001909291905050508b614086565b9250600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f98ade38c876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015614d0757600080fd5b505af1158015614d1b573d6000803e3d6000fd5b505050506040513d6020811015614d3157600080fd5b810190808051906020019092919050505091508282101515614e6657600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015614e4957600080fd5b505af1158015614e5d573d6000803e3d6000fd5b50505050615124565b6000821115614f8457600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015614f6b57600080fd5b505af1158015614f7f573d6000803e3d6000fd5b505050505b614f9782846155d290919063ffffffff16565b90506001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22958c87614fee86886155d290919063ffffffff16565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156150a657600080fd5b505af11580156150ba573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fced8518610cf00c97309551834addd978c595341eda2066dbd52f9e990489573836040518082815260200191505060405180910390a35b600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57268b87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561522057600080fd5b505af1158015615234573d6000803e3d6000fd5b505050508580600101965050614b1f565b8973ffffffffffffffffffffffffffffffffffffffff166340c10f198c8b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156152e857600080fd5b505af11580156152fc573d6000803e3d6000fd5b505050505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561534957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000818381151561541457fe5b04905092915050565b600080831415615430576000905061544f565b818302905081838281151561544157fe5b0414151561544b57fe5b8090505b92915050565b60608183111515156154cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f46524f4d5f4c4553535f5448414e5f544f5f524551554952454400000000000081525060200191505060405180910390fd5b83518211151515615548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f544f5f4c4553535f5448414e5f4c454e4754485f52455155495245440000000081525060200191505060405180910390fd5b8282036040519080825280601f01601f19166020018201604052801561557d5781602001602082028038833980820191505090505b50905061559e61558c826155eb565b84615596876155eb565b0183516155fb565b8090509392505050565b6155b061575a565b6155b861575a565b602083015181526040830151602082015280915050919050565b60008282111515156155e057fe5b818303905092915050565b6000602082019050809050919050565b6020811015615625576001816020036101000a0380198351168185511680821786525050506156a5565b82821415615632576156a6565b828211156156715760208103905080820181840181515b828510156156665784518652602085019450602086019550615649565b8082525050506156a4565b60208103905080820181840183515b8186121561569d5782518252602083039250602082039150615680565b8086525050505b5b5b505050565b61014060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600080191681525090565b6040805190810160405280600060ff1681526020016000815250905600a165627a7a723058205189cc30f7075f1d45dc1a3bb4b92abe85d02e59adb757d5639694a5e3bbfafe0029", + "sourceMap": "1228:142:1:-;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;1228:142:1;;;;;;", + "deployedSourceMap": "1228:142:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1655:256:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1655:256:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2408:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2408:204:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2199:1382:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2199:1382:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2704:420:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2704:420:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1456:372:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1456:372:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;4076:576:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4076:576:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2255:846:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2255:846:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2472:1789:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2472:1789:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:39;;;;;;2773:179:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2773:179:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1271:216;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1271:216:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:314:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1675:314:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:139:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;4564:1248:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4564:1248:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2076:162:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2076:162:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3443:423:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3443:423:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;4862:498:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4862:498:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;1655:256:9:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1883:21:9;1854:5;:26;;;:50;;;;;;;;;;;;;;;;;;1655:256;:::o;2408:204::-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2529:15:9;1709:5:21;:20;;:37;1730:15;1709:37;;;;;;;;;;;;;;;;;;;;;;;;;1760:15;;;;;;;;;;;;;;;;;;;;;;;1688:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1688:97:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2600:5:9;2560;:20;;:37;2581:15;2560:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;731:1:39;2408:204:9;:::o;2529:150:22:-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;2199:1382:10:-;2564:16;2708:27;2786:19;2856:8;2912:24;2966:16;3008:15;2310:11;1934:5:21;:15;;:28;1950:11;1934:28;;;;;;;;;;;;;;;;;;;;;;;;;1976:11;;;;;;;;;;;;;;;;;;;;;;;1913:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:84:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2350:9:10;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2391:9:10;2402:11;2221:1:21;2193:9;2183:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:34:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2183:34:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2183:34:21;;;;;;;;;;;;;;;;2171:9;:46;;;;;;;;:51;2236:16;;;;;;;;;;;;;;;;;;;;;;;2150:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2150:112:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2513:11:10;2503:27;;;2531:10;2543:9;2503:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2503:50:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2503:50:10;;;;2593:11;2583:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2583:36:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:36:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2583:36:10;;;;;;;;;;;;;;;;2564:55;;2748:11;2738:36;;;:38;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2738:38:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2738:38:10;;;;;;39:16:-1;36:1;17:17;2:54;2738:38:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2738:38:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;2738:38:10;;;;;;2708:68;;2818:11;2808:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2808:33:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2808:33:10;;;;;;39:16:-1;36:1;17:17;2:54;2808:33:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2808:33:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;2808:33:10;;;;;;2786:55;;2867:1;2856:12;;2851:724;2874:10;:17;2870:1;:21;;;2851:724;;;2939:10;2950:1;2939:13;;;;;;;;;;;;;;;;;;;;2912:40;;2985:5;2991:1;2985:8;;;;;;;;;;;;;;;;;;;;2966:27;;3026:121;3066:11;3095;3124:9;3026:22;:121::i;:::-;3008:139;;3209:5;:18;;;;;;;;;;;;3202:46;;;3266:11;3295:16;3329:10;3202:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3202:151:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3202:151:10;;;;3421:5;:18;;;;;;;;;;;;3414:46;;;3478:10;3506:16;3540:10;3414:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3414:150:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3414:150:10;;;;2893:3;;;;;;;2851:724;;;1575:1:21;;2007;2199:1382:10;;;;;;;;;;:::o;2704:420:6:-;2959:6;2844:15;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2861:11;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1937:1;1912:15;:22;:26;1952:17;;;;;;;;;;;;;;;;;;1891:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1891:88:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2092:1;2071:11;:18;:22;2107:17;;;;;;;;;;;;;;;;;;2050:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2050:84:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2257:11;:18;2231:15;:22;:44;2289:20;;;;;;;;;;;;;;;;;;;;;;;2210:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2210:109:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2968:1;2959:10;;2954:164;2975:15;;:22;;2971:1;:26;2954:164;;;3018:89;3043:15;;3059:1;3043:18;;;;;;;;;;;;;;;;;3079:11;;3091:1;3079:14;;;;;;;;;;;;;;;3018:7;:89::i;:::-;2999:3;;;;;;;2954:164;;;2704:420;;;;;;;:::o;1456:372:7:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1671:9:7;1640:5;:15;;:28;1656:11;1640:28;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1745:76;1777:11;1802:9;1745:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1456:372;;:::o;1954:123:22:-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;4076:576:6:-;4196:9;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4308:5:6;:26;;;;;;;;;;;;4293:58;;;4365:10;4389:13;4416:9;4293:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4293:142:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4293:142:6;;;;4522:5;:18;;;;;;;;;;;;4515:46;;;4575:10;4599:13;4626:9;4515:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4515:130:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4515:130:6;;;;4076:576;;;:::o;2255:846:8:-;2511:7;2560:26;2477:15;1709:5:21;:20;;:37;1730:15;1709:37;;;;;;;;;;;;;;;;;;;;;;;;;1760:15;;;;;;;;;;;;;;;;;;;;;;;1688:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1688:97:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2601:15:8;2589:35;;;2638:11;;2663:6;;2683:12;2709:5;;2728:7;;2589:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2589:156:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2589:156:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2589:156:8;;;;;;;;;;;;;;;;2560:185;;2841:4;2803:5;:15;;:35;2819:18;2803:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;2890:18;2861:197;;;2922:15;2951:11;;2976:6;;2996:12;3022:5;;3041:7;;2861:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3076:18;3069:25;;2255:846;;;;;;;;;;;;;;:::o;2472:1789:11:-;2832:39;;:::i;:::-;2701:10;2712:1;2701:13;;;;;;;;;;;;;;;1934:5:21;:15;;:28;1950:11;1934:28;;;;;;;;;;;;;;;;;;;;;;;;;1976:11;;;;;;;;;;;;;;;;;;;;;;;1913:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:84:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2743:13:11;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2788:13:11;2803:10;2814:1;2803:13;;;;;;;;;;;;;;;2221:1:21;2193:9;2183:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:34:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2183:34:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2183:34:21;;;;;;;;;;;;;;;;2171:9;:46;;;;;;;;:51;2236:16;;;;;;;;;;;;;;;;;;;;;;;2150:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2150:112:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2874:506:11;;;;;;;;;2927:10;2938:1;2927:13;;;;;;;;;;;;;;;2874:506;;;;;;2964:7;2972:1;2964:10;;;;;;;;;;;;;2874:506;;;;3002:10;3013:1;3002:13;;;;;;;;;;;;;;;2874:506;;;;;;3041:10;3052:1;3041:13;;;;;;;;;;;;;;;2874:506;;;;;;3086:7;3094:1;3086:10;;;;;;;;;;;;;2874:506;;;;3122:7;3130:1;3122:10;;;;;;;;;;;;;2874:506;;;;3160:10;3171:1;3160:13;;;;;;;;;;;;;;;2874:506;;;;;;3207:7;3215:1;3207:10;;;;;;;;;;;;;2874:506;;;;3237:7;3245:1;3237:10;;;;;;;;;;;;;2874:506;;;;3272:97;3320:10;3272:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3348:7;3272:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:30;:97::i;:::-;2874:506;;;;;;2832:548;;3455:69;3482:5;3501:13;3455;:69::i;:::-;3597:173;3645:5;:15;;;3678:5;:18;;;3714:2;3734;3754;3597:30;:173::i;:::-;3784:17;;;;;;;;;;;;;;;;;;3576:235;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3576:235:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3857:33;3879:10;;3857:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;:33::i;:::-;4059:52;4097:13;4059:5;:16;;:33;4076:5;:15;;;4059:33;;;;;;;;;;;;;;;;;;:37;;:52;;;;:::i;:::-;4023:5;:16;;:33;4040:5;:15;;;4023:33;;;;;;;;;;;;;;;;;:88;;;;4142:112;4169:5;:18;;;4201:5;:16;;;4231:13;4142;:112::i;:::-;1575:1:21;;2007;2472:1789:11;;;;;;;;;;:::o;827:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;2773:179:9:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2882:11:9;1934:5:21;:15;;:28;1950:11;1934:28;;;;;;;;;;;;;;;;;;;;;;;;;1976:11;;;;;;;;;;;;;;;;;;;;;;;1913:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:84:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2940:5:9;2909;:15;;:28;2925:11;2909:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;731:1:39;2773:179:9;:::o;1271:216::-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1467:13:9;1446:5;:18;;;:34;;;;;;;;;;;;;;;;;;1271:216;:::o;1675:314:10:-;1785:11;1934:5:21;:15;;:28;1950:11;1934:28;;;;;;;;;;;;;;;;;;;;;;;;;1976:11;;;;;;;;;;;;;;;;;;;;;;;1913:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:84:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1825:9:10;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1866:9:10;1877:11;2221:1:21;2193:9;2183:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:34:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2183:34:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2183:34:21;;;;;;;;;;;;;;;;2171:9;:46;;;;;;;;:51;2236:16;;;;;;;;;;;;;;;;;;;;;;;2150:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2150:112:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1933:49:10;1947:10;1959:11;1972:9;1933:13;:49::i;:::-;1575:1:21;;2007;1675:314:10;;;:::o;1809:139:22:-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;238:20:39:-;;;;;;;;;;;;;:::o;4564:1248:11:-;4752:39;;:::i;:::-;4721:15;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4794:506:11;;;;;;;;;4847:10;4858:1;4847:13;;;;;;;;;;;;;;;4794:506;;;;;;4884:7;4892:1;4884:10;;;;;;;;;;;;;4794:506;;;;4922:10;4933:1;4922:13;;;;;;;;;;;;;;;4794:506;;;;;;4961:10;4972:1;4961:13;;;;;;;;;;;;;;;4794:506;;;;;;5006:7;5014:1;5006:10;;;;;;;;;;;;;4794:506;;;;5042:7;5050:1;5042:10;;;;;;;;;;;;;4794:506;;;;5080:10;5091:1;5080:13;;;;;;;;;;;;;;;4794:506;;;;;;5127:7;5135:1;5127:10;;;;;;;;;;;;;4794:506;;;;5157:7;5165:1;5157:10;;;;;;;;;;;;;4794:506;;;;5192:97;5240:10;5192:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5268:7;5192:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:30;:97::i;:::-;4794:506;;;;;;4752:548;;5392:10;5370:32;;:5;:18;;;:32;;;5404:20;;;;;;;;;;;;;;;;;;5362:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5362:63:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5503:71;5530:5;5549:15;5503:13;:71::i;:::-;5749:56;5789:15;5749:5;:18;;:35;5768:5;:15;;;5749:35;;;;;;;;;;;;;;;;;;:39;;:56;;;;:::i;:::-;5711:5;:18;;:35;5730:5;:15;;;5711:35;;;;;;;;;;;;;;;;;:94;;;;4564:1248;;;;;:::o;2076:162:9:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2227:4:9;2187:5;:20;;:37;2208:15;2187:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2076:162;:::o;1656:147:22:-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3443:423:6:-;3700:6;3584:15;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3601:11;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1937:1;1912:15;:22;:26;1952:17;;;;;;;;;;;;;;;;;;1891:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1891:88:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2092:1;2071:11;:18;:22;2107:17;;;;;;;;;;;;;;;;;;2050:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2050:84:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2257:11;:18;2231:15;:22;:44;2289:20;;;;;;;;;;;;;;;;;;;;;;;2210:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2210:109:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3709:1;3700:10;;3695:165;3716:15;;:22;;3712:1;:26;3695:165;;;3759:90;3785:15;;3801:1;3785:18;;;;;;;;;;;;;;;;;3821:11;;3833:1;3821:14;;;;;;;;;;;;;;;3759:8;:90::i;:::-;3740:3;;;;;;;3695:165;;;3443:423;;;;;;;:::o;1100:103:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;4862:498:6:-;5038:5;:18;;;;;;;;;;;;5031:46;;;5091:10;5115:13;5142:9;5031:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5031:130:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5031:130:6;;;;5239:5;:18;;;;;;;;;;;;5232:37;;;5283:13;5310:10;5334:9;5232:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5232:121:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5232:121:6;;;;4862:498;;:::o;2377:146:22:-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o;3947:247:10:-;4112:4;4139:48;4171:15;4139:27;4153:12;4139:9;:13;;:27;;;;:::i;:::-;:31;;:48;;;;:::i;:::-;4132:55;;3947:247;;;;;:::o;1706:688:25:-;1841:7;1965:10;1976:1;1965:13;;;;;;;;;;;;;2010:10;2021:1;2010:13;;;;;;;;;;;;;2057:10;2068:1;2057:13;;;;;;;;;;;;;2102:10;2113:1;2102:13;;;;;;;;;;;;;2149:7;2157:1;2149:10;;;;;;;;;;;;;2192:7;2200:1;2192:10;;;;;;;;;;;;;2243:7;2251:1;2243:10;;;;;;;;;;;;;2288:7;2296:1;2288:10;;;;;;;;;;;;;2341:7;2349:1;2341:10;;;;;;;;;;;;;1931:446;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1931:446:25;;;1908:479;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1908:479:25;;;;;;;;;;;;;;;;1901:486;;1706:688;;;;:::o;7628:611:11:-;7898:1;7872:6;:23;;;:27;:50;;;;;7921:1;7903:6;:15;;;:19;7872:50;7936:21;;;;;;;;;;;;;;;;;;;;;;;7851:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7851:116:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8063:6;:17;;;8044:15;:36;;8094:13;;;;;;;;;;;;;;;;;;8023:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8023:94:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7628:611;;:::o;2758:647:25:-;2955:4;3032:18;3092:22;:59;;;;;;;;;;;;;;;;;;;;3221:131;3271:9;3282:10;3254:39;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3254:39:25;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3254:39:25;;;3244:50;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3244:50:25;;;;;;;;;;;;;;;;3308:2;3324;3340;3221:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3221:131:25;;;;;;;;3208:144;;3384:14;3370:28;;:10;:28;;;3363:35;;2758:647;;;;;;;;;:::o;6069:1347:11:-;6162:20;6298:23;6473:41;;:::i;:::-;6691:16;6989:19;7062:22;6192:1218;6214:10;:17;6199:12;:32;6192:1218;;;6324:135;6356:10;6384:12;6414:31;1470:2;6414:12;:16;;:31;;;;:::i;:::-;6324:14;:135::i;:::-;6298:161;;6517:74;6567:10;6517:32;:74::i;:::-;6473:118;;6710:5;:15;;:32;6726:6;:15;;;6710:32;;;;;;;;;;;;;;;;;;;;;;;;;6691:51;;6855:1;6835:22;;:8;:22;;;;6875:16;;;;;;;;;;;;;;;;;;6810:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6810:95:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7011:37;1470:2;7011:6;:18;;;:22;;:37;;;;:::i;:::-;6989:59;;7087:152;7119:10;7147:31;1470:2;7147:12;:16;;:31;;;;:::i;:::-;7196:29;7213:11;7196:12;:16;;:29;;;;:::i;:::-;7087:14;:152::i;:::-;7062:177;;7370:29;7387:11;7370:12;:16;;:29;;;;:::i;:::-;7355:44;;6192:1218;;;6069:1347;;;;;;;:::o;1214:123:38:-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;4503:2657:10:-;4678:27;4799:19;4927:8;4983:17;5030:9;5118:30;5354:17;6196:20;4718:11;4708:36;;;:38;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4708:38:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4708:38:10;;;;;;39:16:-1;36:1;17:17;2:54;4708:38:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4708:38:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;4708:38:10;;;;;;4678:68;;4831:11;4821:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4821:33:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4821:33:10;;;;;;39:16:-1;36:1;17:17;2:54;4821:33:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4821:33:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;4821:33:10;;;;;;4799:55;;4938:1;4927:12;;4922:2148;4945:10;:17;4941:1;:21;;;4922:2148;;;5003:10;5014:1;5003:13;;;;;;;;;;;;;;;;;;;;4983:33;;5042:5;5048:1;5042:8;;;;;;;;;;;;;;;;;;;;5030:20;;5151:139;5191:4;5223:11;5213:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5213:36:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5213:36:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5213:36:10;;;;;;;;;;;;;;;;5267:9;5151:22;:139::i;:::-;5118:172;;5381:5;:18;;;;;;;;;;;;5374:42;;;5417:6;5425:9;5374:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5374:61:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5374:61:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5374:61:10;;;;;;;;;;;;;;;;5354:81;;5469:25;5453:12;:41;;5449:1359;;;5599:5;:18;;;;;;;;;;;;5592:46;;;5660:6;5688:9;5719:25;5592:170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5592:170:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5592:170:10;;;;5449:1359;;;5911:1;5896:12;:16;5892:236;;;5943:5;:18;;;;;;;;;;;;5936:46;;;6008:6;6040:9;6075:12;5936:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5936:173:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5936:173:10;;;;5892:236;6219:43;6249:12;6219:25;:29;;:43;;;;:::i;:::-;6196:66;;6375:5;:26;;;;;;;;;;;;6360:58;;;6440:6;6468:9;6499:43;6529:12;6499:25;:29;;:43;;;;:::i;:::-;6360:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6360:200:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6360:200:10;;;;6729:9;6648:145;;6696:11;6648:145;;;6760:15;6648:145;;;;;;;;;;;;;;;;;;5449:1359;6907:5;:18;;;;;;;;;;;;6900:46;;;6964:11;6993:9;7020:25;6900:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6900:159:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6900:159:10;;;;4964:3;;;;;;;4922:2148;;;7117:11;7107:27;;;7135:6;7143:9;7107:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7107:46:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7107:46:10;;;;4503:2657;;;;;;;;;;;:::o;1338:171:39:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o;658:272:38:-;716:7;924:1;920;:5;;;;;;;;913:12;;658:272;;;;:::o;203:373::-;261:9;492:1;487;:6;483:35;;;510:1;503:8;;;;483:35;532:1;528;:5;524:9;;555:1;550;546;:5;;;;;;;;:10;539:18;;;;;;570:1;563:8;;203:373;;;;;:::o;6563:681:26:-;6667:19;6731:2;6723:4;:10;;6702:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6925:1;:8;6919:2;:14;;6795:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7088:4;7083:2;:9;7073:20;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;7073:20:26;;;;7064:29;;7103:111;7124:23;:6;:21;:23::i;:::-;7182:4;7161:18;:1;:16;:18::i;:::-;:25;7200:6;:13;7103:7;:111::i;:::-;7231:6;7224:13;;6563:681;;;;;:::o;1386:383:24:-;1492:11;;:::i;:::-;1526:25;;:::i;:::-;1632:2;1619:11;1615:20;1609:27;1592:6;1585:52;1709:2;1696:11;1692:20;1686:27;1681:2;1673:6;1669:15;1662:52;1756:6;1749:13;;1386:383;;;;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;850:228:26:-;941:21;1029:2;1022:5;1018:14;1001:31;;1058:13;1051:20;;850:228;;;:::o;2044:4207::-;2194:2;2185:6;:11;2181:4064;;;2483:1;2473:6;2469:2;2465:15;2460:3;2456:25;2452:33;2534:4;2530:9;2521:6;2515:13;2511:29;2583:4;2576;2570:11;2566:22;2624:1;2621;2618:8;2612:4;2605:22;2422:219;;;;;;2745:4;2735:6;:14;2731:59;;;2769:7;;2731:59;3479:4;3470:6;:13;3466:2769;;;3805:2;3797:6;3793:15;3783:25;;3853:6;3845;3841:19;3903:6;3897:4;3893:17;4210:4;4204:11;4413:198;4431:4;4423:6;4420:16;4413:198;;;4485:6;4479:13;4473:4;4466:27;4540:2;4532:6;4528:15;4518:25;;4586:2;4580:4;4576:13;4568:21;;4413:198;;;4713:4;4707;4700:18;3512:1224;;;;;;4981:2;4973:6;4969:15;4959:25;;5029:6;5021;5017:19;5079:6;5073:4;5069:17;5389:6;5383:13;5903:191;5920:4;5914;5910:15;5903:191;;;5974:4;5968:11;5962:4;5955:25;6023:2;6017:4;6013:13;6005:21;;6069:2;6063:4;6059:13;6051:21;;5903:191;;;6197:5;6191:4;6184:19;4783:1438;;;;2181:4064;2044:4207;;;;:::o;1228:142:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { CoreAccounting } from \"./extensions/CoreAccounting.sol\";\nimport { CoreExchangeDispatcher } from \"./extensions/CoreExchangeDispatcher.sol\";\nimport { CoreFactory } from \"./extensions/CoreFactory.sol\";\nimport { CoreInternal } from \"./extensions/CoreInternal.sol\";\nimport { CoreIssuance } from \"./extensions/CoreIssuance.sol\";\nimport { CoreIssuanceOrder } from \"./extensions/CoreIssuanceOrder.sol\";\n\n\n\n/**\n * @title Core\n * @author Set Protocol\n *\n * The Core contract acts as a coordinator handling issuing, redeeming, and\n * creating Sets, as well as all collateral flows throughout the system.\n */\ncontract Core is\n CoreExchangeDispatcher,\n CoreIssuanceOrder,\n CoreAccounting,\n CoreInternal,\n CoreFactory,\n CoreIssuance\n{}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/Core.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/Core.sol", + "exportedSymbols": { + "Core": [ + 83 + ] + }, + "id": 84, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 58, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:1" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreAccounting.sol", + "file": "./extensions/CoreAccounting.sol", + "id": 60, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1128, + "src": "622:65:1", + "symbolAliases": [ + { + "foreign": 59, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreExchangeDispatcher.sol", + "file": "./extensions/CoreExchangeDispatcher.sol", + "id": 62, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1168, + "src": "688:81:1", + "symbolAliases": [ + { + "foreign": 61, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreFactory.sol", + "file": "./extensions/CoreFactory.sol", + "id": 64, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1263, + "src": "770:59:1", + "symbolAliases": [ + { + "foreign": 63, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreInternal.sol", + "file": "./extensions/CoreInternal.sol", + "id": 66, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1360, + "src": "830:61:1", + "symbolAliases": [ + { + "foreign": 65, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuance.sol", + "file": "./extensions/CoreIssuance.sol", + "id": 68, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1697, + "src": "892:61:1", + "symbolAliases": [ + { + "foreign": 67, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuanceOrder.sol", + "file": "./extensions/CoreIssuanceOrder.sol", + "id": 70, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 2065, + "src": "954:71:1", + "symbolAliases": [ + { + "foreign": 69, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 71, + "name": "CoreExchangeDispatcher", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1167, + "src": "1249:22:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreExchangeDispatcher_$1167", + "typeString": "contract CoreExchangeDispatcher" + } + }, + "id": 72, + "nodeType": "InheritanceSpecifier", + "src": "1249:22:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 73, + "name": "CoreIssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2064, + "src": "1277:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreIssuanceOrder_$2064", + "typeString": "contract CoreIssuanceOrder" + } + }, + "id": 74, + "nodeType": "InheritanceSpecifier", + "src": "1277:17:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 75, + "name": "CoreAccounting", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1127, + "src": "1300:14:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreAccounting_$1127", + "typeString": "contract CoreAccounting" + } + }, + "id": 76, + "nodeType": "InheritanceSpecifier", + "src": "1300:14:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 77, + "name": "CoreInternal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1359, + "src": "1320:12:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreInternal_$1359", + "typeString": "contract CoreInternal" + } + }, + "id": 78, + "nodeType": "InheritanceSpecifier", + "src": "1320:12:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 79, + "name": "CoreFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1262, + "src": "1338:11:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreFactory_$1262", + "typeString": "contract CoreFactory" + } + }, + "id": 80, + "nodeType": "InheritanceSpecifier", + "src": "1338:11:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 81, + "name": "CoreIssuance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1696, + "src": "1355:12:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreIssuance_$1696", + "typeString": "contract CoreIssuance" + } + }, + "id": 82, + "nodeType": "InheritanceSpecifier", + "src": "1355:12:1" + } + ], + "contractDependencies": [ + 1127, + 1167, + 1262, + 1359, + 1696, + 2064, + 2435, + 2638, + 2751, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Core\n@author Set Protocol\n * The Core contract acts as a coordinator handling issuing, redeeming, and\ncreating Sets, as well as all collateral flows throughout the system.", + "fullyImplemented": true, + "id": 83, + "linearizedBaseContracts": [ + 83, + 1696, + 1262, + 1359, + 1127, + 2064, + 2638, + 1167, + 2751, + 4824, + 2435 + ], + "name": "Core", + "nodeType": "ContractDefinition", + "nodes": [], + "scope": 84, + "src": "1228:142:1" + } + ], + "src": "597:774:1" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/Core.sol", + "exportedSymbols": { + "Core": [ + 83 + ] + }, + "id": 84, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 58, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:1" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreAccounting.sol", + "file": "./extensions/CoreAccounting.sol", + "id": 60, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1128, + "src": "622:65:1", + "symbolAliases": [ + { + "foreign": 59, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreExchangeDispatcher.sol", + "file": "./extensions/CoreExchangeDispatcher.sol", + "id": 62, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1168, + "src": "688:81:1", + "symbolAliases": [ + { + "foreign": 61, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreFactory.sol", + "file": "./extensions/CoreFactory.sol", + "id": 64, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1263, + "src": "770:59:1", + "symbolAliases": [ + { + "foreign": 63, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreInternal.sol", + "file": "./extensions/CoreInternal.sol", + "id": 66, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1360, + "src": "830:61:1", + "symbolAliases": [ + { + "foreign": 65, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuance.sol", + "file": "./extensions/CoreIssuance.sol", + "id": 68, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1697, + "src": "892:61:1", + "symbolAliases": [ + { + "foreign": 67, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuanceOrder.sol", + "file": "./extensions/CoreIssuanceOrder.sol", + "id": 70, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 2065, + "src": "954:71:1", + "symbolAliases": [ + { + "foreign": 69, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 71, + "name": "CoreExchangeDispatcher", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1167, + "src": "1249:22:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreExchangeDispatcher_$1167", + "typeString": "contract CoreExchangeDispatcher" + } + }, + "id": 72, + "nodeType": "InheritanceSpecifier", + "src": "1249:22:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 73, + "name": "CoreIssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2064, + "src": "1277:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreIssuanceOrder_$2064", + "typeString": "contract CoreIssuanceOrder" + } + }, + "id": 74, + "nodeType": "InheritanceSpecifier", + "src": "1277:17:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 75, + "name": "CoreAccounting", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1127, + "src": "1300:14:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreAccounting_$1127", + "typeString": "contract CoreAccounting" + } + }, + "id": 76, + "nodeType": "InheritanceSpecifier", + "src": "1300:14:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 77, + "name": "CoreInternal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1359, + "src": "1320:12:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreInternal_$1359", + "typeString": "contract CoreInternal" + } + }, + "id": 78, + "nodeType": "InheritanceSpecifier", + "src": "1320:12:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 79, + "name": "CoreFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1262, + "src": "1338:11:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreFactory_$1262", + "typeString": "contract CoreFactory" + } + }, + "id": 80, + "nodeType": "InheritanceSpecifier", + "src": "1338:11:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 81, + "name": "CoreIssuance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1696, + "src": "1355:12:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreIssuance_$1696", + "typeString": "contract CoreIssuance" + } + }, + "id": 82, + "nodeType": "InheritanceSpecifier", + "src": "1355:12:1" + } + ], + "contractDependencies": [ + 1127, + 1167, + 1262, + 1359, + 1696, + 2064, + 2435, + 2638, + 2751, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Core\n@author Set Protocol\n * The Core contract acts as a coordinator handling issuing, redeeming, and\ncreating Sets, as well as all collateral flows throughout the system.", + "fullyImplemented": true, + "id": 83, + "linearizedBaseContracts": [ + 83, + 1696, + 1262, + 1359, + 1127, + 2064, + 2638, + 1167, + 2751, + 4824, + 2435 + ], + "name": "Core", + "nodeType": "ContractDefinition", + "nodes": [], + "scope": 84, + "src": "1228:142:1" + } + ], + "src": "597:774:1" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.888Z" +} \ No newline at end of file diff --git a/artifacts/json/CoreAccounting.json b/artifacts/json/CoreAccounting.json new file mode 100644 index 000000000..ac0e325b0 --- /dev/null +++ b/artifacts/json/CoreAccounting.json @@ -0,0 +1,5495 @@ +{ + "contractName": "CoreAccounting", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddresses", + "type": "address[]" + }, + { + "name": "_quantities", + "type": "uint256[]" + } + ], + "name": "batchDeposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddresses", + "type": "address[]" + }, + { + "name": "_quantities", + "type": "uint256[]" + } + ], + "name": "batchWithdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506113aa806100206000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100bf5780631e912bd61461011a57806330a907361461015f578063430bf08a146101b257806347e7ef24146102095780638ca4daf914610256578063a003e069146102ad578063c19d93fb1461031d578063e131243e146103a7578063f3fef3a3146103fa578063f7213db614610447578063fef3ee731461048c575b600080fd5b3480156100cb57600080fd5b50610100600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104e7565b604051808215151515815260200191505060405180910390f35b34801561012657600080fd5b50610149600480360381019080803560001916906020019092919050505061053f565b6040518082815260200191505060405180910390f35b34801561016b57600080fd5b506101b0600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050610566565b005b3480156101be57600080fd5b506101c7610909565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021557600080fd5b50610254600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610935565b005b34801561026257600080fd5b5061026b610c6d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102b957600080fd5b506102db600480360381019080803560ff169060200190929190505050610c99565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032957600080fd5b50610332610cde565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156103b357600080fd5b506103f8600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050610d30565b005b34801561040657600080fd5b50610445600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110d3565b005b34801561045357600080fd5b5061047660048036038101908080356000191690602001909291905050506112ff565b6040518082815260200191505060405180910390f35b34801561049857600080fd5b506104cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611326565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e000000008152509015156106ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610670578082015181840152602081019050610655565b50505050905090810190601f16801561069d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e00000081525090151561078f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610754578082015181840152602081019050610739565b50505050905090810190601f1680156107815780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e00000000000000000000000000000081525090151561089a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561085f578082015181840152602081019050610844565b50505050905090810190601f16801561088c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b86869050831015610900576108f387878581811015156108bc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1686868681811015156108e757fe5b90506020020135610935565b82806001019350506108a0565b50505050505050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515610a3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a045780820151818401526020810190506109e9565b50505050905090810190601f168015610a315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22953385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610b3c57600080fd5b505af1158015610b50573d6000803e3d6000fd5b50505050600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610c5057600080fd5b505af1158015610c64573d6000803e3d6000fd5b50505050505050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e00000000815250901515610e75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e3a578082015181840152602081019050610e1f565b50505050905090810190601f168015610e675780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e000000815250901515610f59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f1e578082015181840152602081019050610f03565b50505050905090810190601f168015610f4b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e000000000000000000000000000000815250901515611064576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561102957808201518184015260208101905061100e565b50505050905090810190601f1680156110565780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b868690508310156110ca576110bd878785818110151561108657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1686868681811015156110b157fe5b905060200201356110d3565b828060010193505061106a565b50505050505050565b600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda303384846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156111cf57600080fd5b505af11580156111e3573d6000803e3d6000fd5b50505050600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c3b35a7e8333846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156112e357600080fd5b505af11580156112f7573d6000803e3d6000fd5b505050505050565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058201d8f134bb468515ef516fc187011140f2e0a38b5367ee224003dd96aa99cba690029", + "deployedBytecode": "0x6080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100bf5780631e912bd61461011a57806330a907361461015f578063430bf08a146101b257806347e7ef24146102095780638ca4daf914610256578063a003e069146102ad578063c19d93fb1461031d578063e131243e146103a7578063f3fef3a3146103fa578063f7213db614610447578063fef3ee731461048c575b600080fd5b3480156100cb57600080fd5b50610100600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104e7565b604051808215151515815260200191505060405180910390f35b34801561012657600080fd5b50610149600480360381019080803560001916906020019092919050505061053f565b6040518082815260200191505060405180910390f35b34801561016b57600080fd5b506101b0600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050610566565b005b3480156101be57600080fd5b506101c7610909565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021557600080fd5b50610254600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610935565b005b34801561026257600080fd5b5061026b610c6d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102b957600080fd5b506102db600480360381019080803560ff169060200190929190505050610c99565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032957600080fd5b50610332610cde565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156103b357600080fd5b506103f8600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050610d30565b005b34801561040657600080fd5b50610445600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110d3565b005b34801561045357600080fd5b5061047660048036038101908080356000191690602001909291905050506112ff565b6040518082815260200191505060405180910390f35b34801561049857600080fd5b506104cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611326565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e000000008152509015156106ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610670578082015181840152602081019050610655565b50505050905090810190601f16801561069d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e00000081525090151561078f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610754578082015181840152602081019050610739565b50505050905090810190601f1680156107815780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e00000000000000000000000000000081525090151561089a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561085f578082015181840152602081019050610844565b50505050905090810190601f16801561088c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b86869050831015610900576108f387878581811015156108bc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1686868681811015156108e757fe5b90506020020135610935565b82806001019350506108a0565b50505050505050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515610a3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a045780820151818401526020810190506109e9565b50505050905090810190601f168015610a315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22953385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610b3c57600080fd5b505af1158015610b50573d6000803e3d6000fd5b50505050600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610c5057600080fd5b505af1158015610c64573d6000803e3d6000fd5b50505050505050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e00000000815250901515610e75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e3a578082015181840152602081019050610e1f565b50505050905090810190601f168015610e675780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e000000815250901515610f59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f1e578082015181840152602081019050610f03565b50505050905090810190601f168015610f4b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e000000000000000000000000000000815250901515611064576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561102957808201518184015260208101905061100e565b50505050905090810190601f1680156110565780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b868690508310156110ca576110bd878785818110151561108657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1686868681811015156110b157fe5b905060200201356110d3565b828060010193505061106a565b50505050505050565b600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda303384846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156111cf57600080fd5b505af11580156111e3573d6000803e3d6000fd5b50505050600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c3b35a7e8333846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156112e357600080fd5b505af11580156112f7573d6000803e3d6000fd5b505050505050565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058201d8f134bb468515ef516fc187011140f2e0a38b5367ee224003dd96aa99cba690029", + "sourceMap": "1113:4249:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1113:4249:6;;;;;;;", + "deployedSourceMap": "1113:4249:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2704:420:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2704:420:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;4076:576:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4076:576:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:139:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3443:423:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3443:423:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4862:498;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4862:498:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;2529:::-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;2704:420:6:-;2959:6;2844:15;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2861:11;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1937:1;1912:15;:22;:26;1952:17;;;;;;;;;;;;;;;;;;1891:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1891:88:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2092:1;2071:11;:18;:22;2107:17;;;;;;;;;;;;;;;;;;2050:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2050:84:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2257:11;:18;2231:15;:22;:44;2289:20;;;;;;;;;;;;;;;;;;;;;;;2210:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2210:109:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2968:1;2959:10;;2954:164;2975:15;;:22;;2971:1;:26;2954:164;;;3018:89;3043:15;;3059:1;3043:18;;;;;;;;;;;;;;;;;3079:11;;3091:1;3079:14;;;;;;;;;;;;;;;3018:7;:89::i;:::-;2999:3;;;;;;;2954:164;;;2704:420;;;;;;;:::o;1954:123:22:-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;4076:576:6:-;4196:9;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4308:5:6;:26;;;;;;;;;;;;4293:58;;;4365:10;4389:13;4416:9;4293:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4293:142:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4293:142:6;;;;4522:5;:18;;;;;;;;;;;;4515:46;;;4575:10;4599:13;4626:9;4515:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4515:130:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4515:130:6;;;;4076:576;;;:::o;1809:139:22:-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;1656:147::-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3443:423:6:-;3700:6;3584:15;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3601:11;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1937:1;1912:15;:22;:26;1952:17;;;;;;;;;;;;;;;;;;1891:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1891:88:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2092:1;2071:11;:18;:22;2107:17;;;;;;;;;;;;;;;;;;2050:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2050:84:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2257:11;:18;2231:15;:22;:44;2289:20;;;;;;;;;;;;;;;;;;;;;;;2210:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2210:109:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3709:1;3700:10;;3695:165;3716:15;;:22;;3712:1;:26;3695:165;;;3759:90;3785:15;;3801:1;3785:18;;;;;;;;;;;;;;;;;3821:11;;3833:1;3821:14;;;;;;;;;;;;;;;3759:8;:90::i;:::-;3740:3;;;;;;;3695:165;;;3443:423;;;;;;;:::o;4862:498::-;5038:5;:18;;;;;;;;;;;;5031:46;;;5091:10;5115:13;5142:9;5031:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5031:130:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5031:130:6;;;;5239:5;:18;;;;;;;;;;;;5232:37;;;5283:13;5310:10;5334:9;5232:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5232:121:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5232:121:6;;;;4862:498;;:::o;2377:146:22:-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { CoreModifiers } from \"../lib/CoreSharedModifiers.sol\";\nimport { CoreState } from \"../lib/CoreState.sol\";\nimport { ITransferProxy } from \"../interfaces/ITransferProxy.sol\";\nimport { IVault } from \"../interfaces/IVault.sol\";\n\n\n/**\n * @title Core Accounting\n * @author Set Protocol\n *\n * The CoreAccounting contract interfaces with the vault and transfer transfer proxies\n * for storage of tokenized assets\n */\ncontract CoreAccounting is\n CoreState,\n CoreModifiers\n{\n // Use SafeMath library for all uint256 arithmetic\n using SafeMath for uint256;\n\n /* ============ Constants ============ */\n\n string constant ADDRESSES_MISSING = \"Addresses must not be empty.\";\n string constant BATCH_INPUT_MISMATCH = \"Addresses and quantities must be the same length.\";\n string constant QUANTITES_MISSING = \"Quantities must not be empty.\";\n string constant ZERO_QUANTITY = \"Quantity must be greater than zero.\";\n\n /* ============ Modifiers ============ */\n\n // Confirm that all inputs are valid for batch transactions\n modifier isValidBatchTransaction(address[] _tokenAddresses, uint[] _quantities) {\n // Confirm an empty _addresses array is not passed\n require(\n _tokenAddresses.length > 0,\n ADDRESSES_MISSING\n );\n\n // Confirm an empty _quantities array is not passed\n require(\n _quantities.length > 0,\n QUANTITES_MISSING\n );\n\n // Confirm there is one quantity for every token address\n require(\n _tokenAddresses.length == _quantities.length,\n BATCH_INPUT_MISMATCH\n );\n _;\n }\n\n /* ============ Public Functions ============ */\n\n /**\n * Deposit multiple tokens to the vault. Quantities should be in the\n * order of the addresses of the tokens being deposited.\n *\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n * @param _quantities Array of the number of tokens to deposit\n */\n function batchDeposit(\n address[] _tokenAddresses,\n uint[] _quantities\n )\n external\n isValidBatchTransaction(_tokenAddresses, _quantities)\n {\n // For each token and quantity pair, run deposit function\n for (uint i = 0; i < _tokenAddresses.length; i++) {\n deposit(\n _tokenAddresses[i],\n _quantities[i]\n );\n }\n }\n\n /**\n * Withdraw multiple tokens from the vault. Quantities should be in the\n * order of the addresses of the tokens being withdrawn.\n *\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n * @param _quantities Array of the number of tokens to withdraw\n */\n function batchWithdraw(\n address[] _tokenAddresses,\n uint[] _quantities\n )\n external\n isValidBatchTransaction(_tokenAddresses, _quantities)\n {\n // For each token and quantity pair, run withdraw function\n for (uint i = 0; i < _tokenAddresses.length; i++) {\n withdraw(\n _tokenAddresses[i],\n _quantities[i]\n );\n }\n }\n\n /**\n * Deposit any quantity of tokens into the vault.\n *\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to deposit\n */\n function deposit(\n address _tokenAddress,\n uint _quantity\n )\n public\n isPositiveQuantity(_quantity)\n {\n // Call TransferProxy contract to transfer user tokens to Vault\n ITransferProxy(state.transferProxyAddress).transferToVault(\n msg.sender,\n _tokenAddress,\n _quantity\n );\n\n // Call Vault contract to attribute deposited tokens to user\n IVault(state.vaultAddress).incrementTokenOwner(\n msg.sender,\n _tokenAddress,\n _quantity\n );\n }\n\n /**\n * Withdraw a quantity of tokens from the vault.\n *\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to withdraw\n */\n function withdraw(\n address _tokenAddress,\n uint _quantity\n )\n public\n {\n // Call Vault contract to deattribute tokens to user\n IVault(state.vaultAddress).decrementTokenOwner(\n msg.sender,\n _tokenAddress,\n _quantity\n );\n\n // Call Vault to withdraw tokens from Vault to user\n IVault(state.vaultAddress).withdrawTo(\n _tokenAddress,\n msg.sender,\n _quantity\n );\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreAccounting.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreAccounting.sol", + "exportedSymbols": { + "CoreAccounting": [ + 1127 + ] + }, + "id": 1128, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 927, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:6" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 929, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 4739, + "src": "622:73:6", + "symbolAliases": [ + { + "foreign": 928, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 931, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2639, + "src": "696:63:6", + "symbolAliases": [ + { + "foreign": 930, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 933, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2752, + "src": "760:49:6", + "symbolAliases": [ + { + "foreign": 932, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ITransferProxy.sol", + "file": "../interfaces/ITransferProxy.sol", + "id": 935, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2517, + "src": "810:66:6", + "symbolAliases": [ + { + "foreign": 934, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IVault.sol", + "file": "../interfaces/IVault.sol", + "id": 937, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2556, + "src": "877:50:6", + "symbolAliases": [ + { + "foreign": 936, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 938, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1144:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 939, + "nodeType": "InheritanceSpecifier", + "src": "1144:9:6" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 940, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1159:13:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 941, + "nodeType": "InheritanceSpecifier", + "src": "1159:13:6" + } + ], + "contractDependencies": [ + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Accounting\n@author Set Protocol\n * The CoreAccounting contract interfaces with the vault and transfer transfer proxies\nfor storage of tokenized assets", + "fullyImplemented": true, + "id": 1127, + "linearizedBaseContracts": [ + 1127, + 2638, + 2751 + ], + "name": "CoreAccounting", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 944, + "libraryName": { + "contractScope": null, + "id": 942, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1240:8:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1234:27:6", + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1253:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 947, + "name": "ADDRESSES_MISSING", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1314:66:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 945, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1314:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "416464726573736573206d757374206e6f7420626520656d7074792e", + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1350:30:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d4a195b4cf9e73a77ea63711a903227f3150e3627941a137d172dc797b82cd84", + "typeString": "literal_string \"Addresses must not be empty.\"" + }, + "value": "Addresses must not be empty." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 950, + "name": "BATCH_INPUT_MISMATCH", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1386:90:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 948, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1386:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "41646472657373657320616e64207175616e746974696573206d757374206265207468652073616d65206c656e6774682e", + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1425:51:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_318e95b0e08a378091697c889a887ce37fc37d71fa98e0de98a8e0acdda536f1", + "typeString": "literal_string \"Addresses and quantities must be the same length.\"" + }, + "value": "Addresses and quantities must be the same length." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 953, + "name": "QUANTITES_MISSING", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1482:67:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 951, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1482:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e746974696573206d757374206e6f7420626520656d7074792e", + "id": 952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1518:31:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7fd703fbbd234863ddc498f6ccb7e69d3003879a21aabd2ddb6d2773c3639cf0", + "typeString": "literal_string \"Quantities must not be empty.\"" + }, + "value": "Quantities must not be empty." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 956, + "name": "ZERO_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1555:69:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 954, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1555:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d7573742062652067726561746572207468616e207a65726f2e", + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1587:37:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3da6978e12ad268e4eb66f4a79840b60e48f93e78540f7911187ddd7f0f6f2c7", + "typeString": "literal_string \"Quantity must be greater than zero.\"" + }, + "value": "Quantity must be greater than zero." + }, + "visibility": "internal" + }, + { + "body": { + "id": 990, + "nodeType": "Block", + "src": "1822:515:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 965, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "1912:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1912:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1937:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1912:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 969, + "name": "ADDRESSES_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "1952:17:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 964, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1891:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1891:88:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 971, + "nodeType": "ExpressionStatement", + "src": "1891:88:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 973, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 962, + "src": "2071:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2071:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2092:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2071:22:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 977, + "name": "QUANTITES_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 953, + "src": "2107:17:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2050:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2050:84:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 979, + "nodeType": "ExpressionStatement", + "src": "2050:84:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 981, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "2231:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2231:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 983, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 962, + "src": "2257:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2257:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2231:44:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 986, + "name": "BATCH_INPUT_MISMATCH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "2289:20:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 980, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2210:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2210:109:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 988, + "nodeType": "ExpressionStatement", + "src": "2210:109:6" + }, + { + "id": 989, + "nodeType": "PlaceholderStatement", + "src": "2329:1:6" + } + ] + }, + "documentation": null, + "id": 991, + "name": "isValidBatchTransaction", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 963, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 959, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 991, + "src": "1775:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 957, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1775:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 958, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1775:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 962, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 991, + "src": "1802:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 960, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1802:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 961, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1802:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1774:47:6" + }, + "src": "1742:595:6", + "visibility": "internal" + }, + { + "body": { + "id": 1026, + "nodeType": "Block", + "src": "2878:246:6", + "statements": [ + { + "body": { + "id": 1024, + "nodeType": "Block", + "src": "3004:114:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1016, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "3043:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1018, + "indexExpression": { + "argumentTypes": null, + "id": 1017, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "3059:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3043:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1019, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 997, + "src": "3079:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 1021, + "indexExpression": { + "argumentTypes": null, + "id": 1020, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "3091:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3079:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1015, + "name": "deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1096, + "src": "3018:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3018:89:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1023, + "nodeType": "ExpressionStatement", + "src": "3018:89:6" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1008, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2971:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1009, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "2975:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2975:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2971:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1025, + "initializationExpression": { + "assignments": [ + 1005 + ], + "declarations": [ + { + "constant": false, + "id": 1005, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1027, + "src": "2959:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1004, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2959:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1007, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2968:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2959:10:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2999:3:6", + "subExpression": { + "argumentTypes": null, + "id": 1012, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2999:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "2999:3:6" + }, + "nodeType": "ForStatement", + "src": "2954:164:6" + } + ] + }, + "documentation": "Deposit multiple tokens to the vault. Quantities should be in the\norder of the addresses of the tokens being deposited.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to deposit", + "id": 1027, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1000, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "2844:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1001, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 997, + "src": "2861:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "id": 1002, + "modifierName": { + "argumentTypes": null, + "id": 999, + "name": "isValidBatchTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 991, + "src": "2820:23:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "modifier (address[] memory,uint256[] memory)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2820:53:6" + } + ], + "name": "batchDeposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 994, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 1027, + "src": "2735:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 992, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2735:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 993, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2735:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 997, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 1027, + "src": "2770:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 995, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2770:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 996, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2770:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2725:69:6" + }, + "payable": false, + "returnParameters": { + "id": 1003, + "nodeType": "ParameterList", + "parameters": [], + "src": "2878:0:6" + }, + "scope": 1127, + "src": "2704:420:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1062, + "nodeType": "Block", + "src": "3618:248:6", + "statements": [ + { + "body": { + "id": 1060, + "nodeType": "Block", + "src": "3745:115:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1052, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "3785:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1054, + "indexExpression": { + "argumentTypes": null, + "id": 1053, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3801:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3785:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1055, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "3821:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 1057, + "indexExpression": { + "argumentTypes": null, + "id": 1056, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3833:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3821:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1051, + "name": "withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "3759:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3759:90:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1059, + "nodeType": "ExpressionStatement", + "src": "3759:90:6" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1044, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3712:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1045, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "3716:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3716:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3712:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1061, + "initializationExpression": { + "assignments": [ + 1041 + ], + "declarations": [ + { + "constant": false, + "id": 1041, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "3700:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1040, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3700:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1043, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3709:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3700:10:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3740:3:6", + "subExpression": { + "argumentTypes": null, + "id": 1048, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3740:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1050, + "nodeType": "ExpressionStatement", + "src": "3740:3:6" + }, + "nodeType": "ForStatement", + "src": "3695:165:6" + } + ] + }, + "documentation": "Withdraw multiple tokens from the vault. Quantities should be in the\norder of the addresses of the tokens being withdrawn.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to withdraw", + "id": 1063, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1036, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "3584:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1037, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "3601:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "id": 1038, + "modifierName": { + "argumentTypes": null, + "id": 1035, + "name": "isValidBatchTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 991, + "src": "3560:23:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "modifier (address[] memory,uint256[] memory)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3560:53:6" + } + ], + "name": "batchWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1030, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "3475:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3475:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1029, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3475:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1033, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "3510:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1031, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3510:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1032, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3510:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3465:69:6" + }, + "payable": false, + "returnParameters": { + "id": 1039, + "nodeType": "ParameterList", + "parameters": [], + "src": "3618:0:6" + }, + "scope": 1127, + "src": "3443:423:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1095, + "nodeType": "Block", + "src": "4211:441:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1078, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4365:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4365:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1080, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "4389:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1081, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "4416:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1074, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4308:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1075, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "4308:26:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1073, + "name": "ITransferProxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "4293:14:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ITransferProxy_$2516_$", + "typeString": "type(contract ITransferProxy)" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4293:42:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITransferProxy_$2516", + "typeString": "contract ITransferProxy" + } + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferToVault", + "nodeType": "MemberAccess", + "referencedDeclaration": 2515, + "src": "4293:58:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4293:142:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1083, + "nodeType": "ExpressionStatement", + "src": "4293:142:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1089, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4575:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4575:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1091, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "4599:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1092, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "4626:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1085, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4522:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1086, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "4522:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1084, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4515:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4515:26:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "incrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2536, + "src": "4515:46:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4515:130:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1094, + "nodeType": "ExpressionStatement", + "src": "4515:130:6" + } + ] + }, + "documentation": "Deposit any quantity of tokens into the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to deposit", + "id": 1096, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1070, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "4196:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1071, + "modifierName": { + "argumentTypes": null, + "id": 1069, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "4177:18:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4177:29:6" + } + ], + "name": "deposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1068, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1096, + "src": "4102:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4102:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1096, + "src": "4133:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4133:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4092:61:6" + }, + "payable": false, + "returnParameters": { + "id": 1072, + "nodeType": "ParameterList", + "parameters": [], + "src": "4211:0:6" + }, + "scope": 1127, + "src": "4076:576:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1125, + "nodeType": "Block", + "src": "4960:400:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1108, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5091:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5091:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1110, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1098, + "src": "5115:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1111, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1100, + "src": "5142:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1104, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5038:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1105, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5038:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1103, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5031:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5031:26:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "5031:46:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5031:130:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1113, + "nodeType": "ExpressionStatement", + "src": "5031:130:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1119, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1098, + "src": "5283:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1120, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5310:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5310:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1122, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1100, + "src": "5334:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1115, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5239:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1116, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5239:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1114, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5232:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5232:26:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "5232:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5232:121:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1124, + "nodeType": "ExpressionStatement", + "src": "5232:121:6" + } + ] + }, + "documentation": "Withdraw a quantity of tokens from the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to withdraw", + "id": 1126, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1098, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1126, + "src": "4889:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1097, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4889:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1100, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1126, + "src": "4920:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1099, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4920:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4879:61:6" + }, + "payable": false, + "returnParameters": { + "id": 1102, + "nodeType": "ParameterList", + "parameters": [], + "src": "4960:0:6" + }, + "scope": 1127, + "src": "4862:498:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1128, + "src": "1113:4249:6" + } + ], + "src": "597:4766:6" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreAccounting.sol", + "exportedSymbols": { + "CoreAccounting": [ + 1127 + ] + }, + "id": 1128, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 927, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:6" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 929, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 4739, + "src": "622:73:6", + "symbolAliases": [ + { + "foreign": 928, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 931, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2639, + "src": "696:63:6", + "symbolAliases": [ + { + "foreign": 930, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 933, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2752, + "src": "760:49:6", + "symbolAliases": [ + { + "foreign": 932, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ITransferProxy.sol", + "file": "../interfaces/ITransferProxy.sol", + "id": 935, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2517, + "src": "810:66:6", + "symbolAliases": [ + { + "foreign": 934, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IVault.sol", + "file": "../interfaces/IVault.sol", + "id": 937, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2556, + "src": "877:50:6", + "symbolAliases": [ + { + "foreign": 936, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 938, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1144:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 939, + "nodeType": "InheritanceSpecifier", + "src": "1144:9:6" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 940, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1159:13:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 941, + "nodeType": "InheritanceSpecifier", + "src": "1159:13:6" + } + ], + "contractDependencies": [ + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Accounting\n@author Set Protocol\n * The CoreAccounting contract interfaces with the vault and transfer transfer proxies\nfor storage of tokenized assets", + "fullyImplemented": true, + "id": 1127, + "linearizedBaseContracts": [ + 1127, + 2638, + 2751 + ], + "name": "CoreAccounting", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 944, + "libraryName": { + "contractScope": null, + "id": 942, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1240:8:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1234:27:6", + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1253:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 947, + "name": "ADDRESSES_MISSING", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1314:66:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 945, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1314:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "416464726573736573206d757374206e6f7420626520656d7074792e", + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1350:30:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d4a195b4cf9e73a77ea63711a903227f3150e3627941a137d172dc797b82cd84", + "typeString": "literal_string \"Addresses must not be empty.\"" + }, + "value": "Addresses must not be empty." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 950, + "name": "BATCH_INPUT_MISMATCH", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1386:90:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 948, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1386:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "41646472657373657320616e64207175616e746974696573206d757374206265207468652073616d65206c656e6774682e", + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1425:51:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_318e95b0e08a378091697c889a887ce37fc37d71fa98e0de98a8e0acdda536f1", + "typeString": "literal_string \"Addresses and quantities must be the same length.\"" + }, + "value": "Addresses and quantities must be the same length." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 953, + "name": "QUANTITES_MISSING", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1482:67:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 951, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1482:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e746974696573206d757374206e6f7420626520656d7074792e", + "id": 952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1518:31:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7fd703fbbd234863ddc498f6ccb7e69d3003879a21aabd2ddb6d2773c3639cf0", + "typeString": "literal_string \"Quantities must not be empty.\"" + }, + "value": "Quantities must not be empty." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 956, + "name": "ZERO_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1555:69:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 954, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1555:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d7573742062652067726561746572207468616e207a65726f2e", + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1587:37:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3da6978e12ad268e4eb66f4a79840b60e48f93e78540f7911187ddd7f0f6f2c7", + "typeString": "literal_string \"Quantity must be greater than zero.\"" + }, + "value": "Quantity must be greater than zero." + }, + "visibility": "internal" + }, + { + "body": { + "id": 990, + "nodeType": "Block", + "src": "1822:515:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 965, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "1912:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1912:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1937:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1912:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 969, + "name": "ADDRESSES_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "1952:17:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 964, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1891:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1891:88:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 971, + "nodeType": "ExpressionStatement", + "src": "1891:88:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 973, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 962, + "src": "2071:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2071:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2092:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2071:22:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 977, + "name": "QUANTITES_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 953, + "src": "2107:17:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2050:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2050:84:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 979, + "nodeType": "ExpressionStatement", + "src": "2050:84:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 981, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "2231:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2231:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 983, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 962, + "src": "2257:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2257:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2231:44:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 986, + "name": "BATCH_INPUT_MISMATCH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "2289:20:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 980, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2210:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2210:109:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 988, + "nodeType": "ExpressionStatement", + "src": "2210:109:6" + }, + { + "id": 989, + "nodeType": "PlaceholderStatement", + "src": "2329:1:6" + } + ] + }, + "documentation": null, + "id": 991, + "name": "isValidBatchTransaction", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 963, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 959, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 991, + "src": "1775:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 957, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1775:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 958, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1775:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 962, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 991, + "src": "1802:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 960, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1802:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 961, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1802:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1774:47:6" + }, + "src": "1742:595:6", + "visibility": "internal" + }, + { + "body": { + "id": 1026, + "nodeType": "Block", + "src": "2878:246:6", + "statements": [ + { + "body": { + "id": 1024, + "nodeType": "Block", + "src": "3004:114:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1016, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "3043:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1018, + "indexExpression": { + "argumentTypes": null, + "id": 1017, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "3059:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3043:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1019, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 997, + "src": "3079:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 1021, + "indexExpression": { + "argumentTypes": null, + "id": 1020, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "3091:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3079:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1015, + "name": "deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1096, + "src": "3018:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3018:89:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1023, + "nodeType": "ExpressionStatement", + "src": "3018:89:6" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1008, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2971:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1009, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "2975:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2975:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2971:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1025, + "initializationExpression": { + "assignments": [ + 1005 + ], + "declarations": [ + { + "constant": false, + "id": 1005, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1027, + "src": "2959:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1004, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2959:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1007, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2968:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2959:10:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2999:3:6", + "subExpression": { + "argumentTypes": null, + "id": 1012, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2999:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "2999:3:6" + }, + "nodeType": "ForStatement", + "src": "2954:164:6" + } + ] + }, + "documentation": "Deposit multiple tokens to the vault. Quantities should be in the\norder of the addresses of the tokens being deposited.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to deposit", + "id": 1027, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1000, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "2844:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1001, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 997, + "src": "2861:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "id": 1002, + "modifierName": { + "argumentTypes": null, + "id": 999, + "name": "isValidBatchTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 991, + "src": "2820:23:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "modifier (address[] memory,uint256[] memory)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2820:53:6" + } + ], + "name": "batchDeposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 994, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 1027, + "src": "2735:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 992, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2735:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 993, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2735:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 997, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 1027, + "src": "2770:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 995, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2770:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 996, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2770:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2725:69:6" + }, + "payable": false, + "returnParameters": { + "id": 1003, + "nodeType": "ParameterList", + "parameters": [], + "src": "2878:0:6" + }, + "scope": 1127, + "src": "2704:420:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1062, + "nodeType": "Block", + "src": "3618:248:6", + "statements": [ + { + "body": { + "id": 1060, + "nodeType": "Block", + "src": "3745:115:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1052, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "3785:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1054, + "indexExpression": { + "argumentTypes": null, + "id": 1053, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3801:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3785:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1055, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "3821:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 1057, + "indexExpression": { + "argumentTypes": null, + "id": 1056, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3833:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3821:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1051, + "name": "withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "3759:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3759:90:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1059, + "nodeType": "ExpressionStatement", + "src": "3759:90:6" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1044, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3712:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1045, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "3716:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3716:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3712:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1061, + "initializationExpression": { + "assignments": [ + 1041 + ], + "declarations": [ + { + "constant": false, + "id": 1041, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "3700:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1040, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3700:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1043, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3709:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3700:10:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3740:3:6", + "subExpression": { + "argumentTypes": null, + "id": 1048, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3740:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1050, + "nodeType": "ExpressionStatement", + "src": "3740:3:6" + }, + "nodeType": "ForStatement", + "src": "3695:165:6" + } + ] + }, + "documentation": "Withdraw multiple tokens from the vault. Quantities should be in the\norder of the addresses of the tokens being withdrawn.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to withdraw", + "id": 1063, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1036, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "3584:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1037, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "3601:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "id": 1038, + "modifierName": { + "argumentTypes": null, + "id": 1035, + "name": "isValidBatchTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 991, + "src": "3560:23:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "modifier (address[] memory,uint256[] memory)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3560:53:6" + } + ], + "name": "batchWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1030, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "3475:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3475:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1029, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3475:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1033, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "3510:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1031, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3510:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1032, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3510:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3465:69:6" + }, + "payable": false, + "returnParameters": { + "id": 1039, + "nodeType": "ParameterList", + "parameters": [], + "src": "3618:0:6" + }, + "scope": 1127, + "src": "3443:423:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1095, + "nodeType": "Block", + "src": "4211:441:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1078, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4365:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4365:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1080, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "4389:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1081, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "4416:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1074, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4308:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1075, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "4308:26:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1073, + "name": "ITransferProxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "4293:14:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ITransferProxy_$2516_$", + "typeString": "type(contract ITransferProxy)" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4293:42:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITransferProxy_$2516", + "typeString": "contract ITransferProxy" + } + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferToVault", + "nodeType": "MemberAccess", + "referencedDeclaration": 2515, + "src": "4293:58:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4293:142:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1083, + "nodeType": "ExpressionStatement", + "src": "4293:142:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1089, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4575:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4575:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1091, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "4599:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1092, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "4626:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1085, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4522:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1086, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "4522:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1084, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4515:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4515:26:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "incrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2536, + "src": "4515:46:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4515:130:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1094, + "nodeType": "ExpressionStatement", + "src": "4515:130:6" + } + ] + }, + "documentation": "Deposit any quantity of tokens into the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to deposit", + "id": 1096, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1070, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "4196:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1071, + "modifierName": { + "argumentTypes": null, + "id": 1069, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "4177:18:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4177:29:6" + } + ], + "name": "deposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1068, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1096, + "src": "4102:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4102:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1096, + "src": "4133:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4133:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4092:61:6" + }, + "payable": false, + "returnParameters": { + "id": 1072, + "nodeType": "ParameterList", + "parameters": [], + "src": "4211:0:6" + }, + "scope": 1127, + "src": "4076:576:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1125, + "nodeType": "Block", + "src": "4960:400:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1108, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5091:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5091:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1110, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1098, + "src": "5115:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1111, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1100, + "src": "5142:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1104, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5038:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1105, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5038:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1103, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5031:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5031:26:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "5031:46:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5031:130:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1113, + "nodeType": "ExpressionStatement", + "src": "5031:130:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1119, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1098, + "src": "5283:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1120, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5310:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5310:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1122, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1100, + "src": "5334:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1115, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5239:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1116, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5239:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1114, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5232:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5232:26:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "5232:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5232:121:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1124, + "nodeType": "ExpressionStatement", + "src": "5232:121:6" + } + ] + }, + "documentation": "Withdraw a quantity of tokens from the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to withdraw", + "id": 1126, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1098, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1126, + "src": "4889:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1097, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4889:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1100, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1126, + "src": "4920:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1099, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4920:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4879:61:6" + }, + "payable": false, + "returnParameters": { + "id": 1102, + "nodeType": "ParameterList", + "parameters": [], + "src": "4960:0:6" + }, + "scope": 1127, + "src": "4862:498:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1128, + "src": "1113:4249:6" + } + ], + "src": "597:4766:6" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.893Z" +} \ No newline at end of file diff --git a/artifacts/json/CoreExchangeDispatcher.json b/artifacts/json/CoreExchangeDispatcher.json new file mode 100644 index 000000000..05e9a380b --- /dev/null +++ b/artifacts/json/CoreExchangeDispatcher.json @@ -0,0 +1,1162 @@ +{ + "contractName": "CoreExchangeDispatcher", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_exchangeId", + "type": "uint8" + }, + { + "indexed": false, + "name": "_exchange", + "type": "address" + } + ], + "name": "ExchangeRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + }, + { + "name": "_exchange", + "type": "address" + } + ], + "name": "registerExchange", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a7a806100536000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100bf5780631e912bd61461011a5780633e3d13b21461015f578063430bf08a146101af578063715018a6146102065780638ca4daf91461021d5780638da5cb5b14610274578063a003e069146102cb578063c19d93fb1461033b578063f2fde38b146103c5578063f7213db614610408578063fef3ee731461044d575b600080fd5b3480156100cb57600080fd5b50610100600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104a8565b604051808215151515815260200191505060405180910390f35b34801561012657600080fd5b506101496004803603810190808035600019169060200190929190505050610501565b6040518082815260200191505060405180910390f35b34801561016b57600080fd5b506101ad600480360381019080803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610529565b005b3480156101bb57600080fd5b506101c4610654565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021257600080fd5b5061021b610681565b005b34801561022957600080fd5b50610232610783565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028057600080fd5b506102896107af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d757600080fd5b506102f9600480360381019080803560ff1690602001909291905050506107d4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561034757600080fd5b5061035061081a565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156103d157600080fd5b50610406600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061086c565b005b34801561041457600080fd5b5061043760048036038101908080356000191690602001909291905050506108d3565b6040518082815260200191505060405180910390f35b34801561045957600080fd5b5061048e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108fb565b604051808215151515815260200191505060405180910390f35b6000600160030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160060160008360001916600019168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561058457600080fd5b80600160000160008460ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507feee2c0570205f21356a5108d71a4d6e7151682b92a84c761fca82cac87275c288282604051808360ff1660ff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b6000600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106dc57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60018060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108c757600080fd5b6108d081610954565b50565b6000600160050160008360001916600019168152602001908152602001600020549050919050565b6000600160040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561099057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058207cb176901be2e1b4e175e78de9bbbc4cb812f3d92f22fb32f958fe665f1729170029", + "deployedBytecode": "0x6080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100bf5780631e912bd61461011a5780633e3d13b21461015f578063430bf08a146101af578063715018a6146102065780638ca4daf91461021d5780638da5cb5b14610274578063a003e069146102cb578063c19d93fb1461033b578063f2fde38b146103c5578063f7213db614610408578063fef3ee731461044d575b600080fd5b3480156100cb57600080fd5b50610100600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104a8565b604051808215151515815260200191505060405180910390f35b34801561012657600080fd5b506101496004803603810190808035600019169060200190929190505050610501565b6040518082815260200191505060405180910390f35b34801561016b57600080fd5b506101ad600480360381019080803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610529565b005b3480156101bb57600080fd5b506101c4610654565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021257600080fd5b5061021b610681565b005b34801561022957600080fd5b50610232610783565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028057600080fd5b506102896107af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d757600080fd5b506102f9600480360381019080803560ff1690602001909291905050506107d4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561034757600080fd5b5061035061081a565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156103d157600080fd5b50610406600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061086c565b005b34801561041457600080fd5b5061043760048036038101908080356000191690602001909291905050506108d3565b6040518082815260200191505060405180910390f35b34801561045957600080fd5b5061048e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108fb565b604051808215151515815260200191505060405180910390f35b6000600160030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160060160008360001916600019168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561058457600080fd5b80600160000160008460ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507feee2c0570205f21356a5108d71a4d6e7151682b92a84c761fca82cac87275c288282604051808360ff1660ff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b6000600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106dc57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60018060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108c757600080fd5b6108d081610954565b50565b6000600160050160008360001916600019168152602001908152602001600020549050919050565b6000600160040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561099057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058207cb176901be2e1b4e175e78de9bbbc4cb812f3d92f22fb32f958fe665f1729170029", + "sourceMap": "970:860:7:-;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;970:860:7;;;;;;", + "deployedSourceMap": "970:860:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1456:372:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1456:372:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:39;;;;;;1809:139:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;2529:::-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;1456:372:7:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1671:9:7;1640:5;:15;;:28;1656:11;1640:28;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1745:76;1777:11;1802:9;1745:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1456:372;;:::o;1954:123:22:-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;827:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;1809:139:22:-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;238:20:39:-;;;;;;;;;;;;;:::o;1656:147:22:-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1100:103:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;2377:146:22:-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o;1338:171:39:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { Ownable } from \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport { CoreState } from \"../lib/CoreState.sol\";\n\n\n/**\n * @title Core Exchange Dispatcher\n * @author Set Protocol\n *\n * The CoreExchangeDispatcher factilitates updating permissible exchanges\n * that are used in filling issuance orders. See CoreState.State.exchanges\n */\ncontract CoreExchangeDispatcher is\n Ownable,\n CoreState\n{\n\n /* ============ Events ============ */\n\n // Logs registration of new exchange\n event ExchangeRegistered(\n uint8 _exchangeId,\n address _exchange\n );\n\n /* ============ Setter Functions ============ */\n\n /**\n * Register exchange address into mapping of exchanges \n *\n * @param _exchangeId Enumeration of exchange\n * @param _exchange Exchange address to set\n */\n function registerExchange(\n uint8 _exchangeId,\n address _exchange\n )\n external\n onlyOwner\n {\n // Add asset proxy and log registration.\n state.exchanges[_exchangeId] = _exchange;\n\n // Add asset proxy and log registration.\n emit ExchangeRegistered(\n _exchangeId,\n _exchange\n );\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreExchangeDispatcher.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreExchangeDispatcher.sol", + "exportedSymbols": { + "CoreExchangeDispatcher": [ + 1167 + ] + }, + "id": 1168, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1129, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:7" + }, + { + "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 1131, + "nodeType": "ImportDirective", + "scope": 1168, + "sourceUnit": 4825, + "src": "622:76:7", + "symbolAliases": [ + { + "foreign": 1130, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1133, + "nodeType": "ImportDirective", + "scope": 1168, + "sourceUnit": 2752, + "src": "699:49:7", + "symbolAliases": [ + { + "foreign": 1132, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1134, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4824, + "src": "1009:7:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$4824", + "typeString": "contract Ownable" + } + }, + "id": 1135, + "nodeType": "InheritanceSpecifier", + "src": "1009:7:7" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1136, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1022:9:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1137, + "nodeType": "InheritanceSpecifier", + "src": "1022:9:7" + } + ], + "contractDependencies": [ + 2751, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Core Exchange Dispatcher\n@author Set Protocol\n * The CoreExchangeDispatcher factilitates updating permissible exchanges\nthat are used in filling issuance orders. See CoreState.State.exchanges", + "fullyImplemented": true, + "id": 1167, + "linearizedBaseContracts": [ + 1167, + 2751, + 4824 + ], + "name": "CoreExchangeDispatcher", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 1143, + "name": "ExchangeRegistered", + "nodeType": "EventDefinition", + "parameters": { + "id": 1142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1139, + "indexed": false, + "name": "_exchangeId", + "nodeType": "VariableDeclaration", + "scope": 1143, + "src": "1158:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1138, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1158:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1141, + "indexed": false, + "name": "_exchange", + "nodeType": "VariableDeclaration", + "scope": 1143, + "src": "1185:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1140, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1185:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1148:60:7" + }, + "src": "1124:85:7" + }, + { + "body": { + "id": 1165, + "nodeType": "Block", + "src": "1581:247:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1152, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1640:5:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1155, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchanges", + "nodeType": "MemberAccess", + "referencedDeclaration": 2644, + "src": "1640:15:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 1156, + "indexExpression": { + "argumentTypes": null, + "id": 1154, + "name": "_exchangeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "1656:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1640:28:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1157, + "name": "_exchange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "1671:9:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1640:40:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1159, + "nodeType": "ExpressionStatement", + "src": "1640:40:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1161, + "name": "_exchangeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "1777:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 1162, + "name": "_exchange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "1802:9:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1160, + "name": "ExchangeRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1143, + "src": "1745:18:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_address_$returns$__$", + "typeString": "function (uint8,address)" + } + }, + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1745:76:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1164, + "nodeType": "EmitStatement", + "src": "1740:81:7" + } + ] + }, + "documentation": "Register exchange address into mapping of exchanges \n * @param _exchangeId Enumeration of exchange\n@param _exchange Exchange address to set", + "id": 1166, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1150, + "modifierName": { + "argumentTypes": null, + "id": 1149, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1567:9:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1567:9:7" + } + ], + "name": "registerExchange", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1145, + "name": "_exchangeId", + "nodeType": "VariableDeclaration", + "scope": 1166, + "src": "1491:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1144, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1491:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1147, + "name": "_exchange", + "nodeType": "VariableDeclaration", + "scope": 1166, + "src": "1518:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1146, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1518:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1481:60:7" + }, + "payable": false, + "returnParameters": { + "id": 1151, + "nodeType": "ParameterList", + "parameters": [], + "src": "1581:0:7" + }, + "scope": 1167, + "src": "1456:372:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 1168, + "src": "970:860:7" + } + ], + "src": "597:1234:7" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreExchangeDispatcher.sol", + "exportedSymbols": { + "CoreExchangeDispatcher": [ + 1167 + ] + }, + "id": 1168, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1129, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:7" + }, + { + "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 1131, + "nodeType": "ImportDirective", + "scope": 1168, + "sourceUnit": 4825, + "src": "622:76:7", + "symbolAliases": [ + { + "foreign": 1130, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1133, + "nodeType": "ImportDirective", + "scope": 1168, + "sourceUnit": 2752, + "src": "699:49:7", + "symbolAliases": [ + { + "foreign": 1132, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1134, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4824, + "src": "1009:7:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$4824", + "typeString": "contract Ownable" + } + }, + "id": 1135, + "nodeType": "InheritanceSpecifier", + "src": "1009:7:7" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1136, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1022:9:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1137, + "nodeType": "InheritanceSpecifier", + "src": "1022:9:7" + } + ], + "contractDependencies": [ + 2751, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Core Exchange Dispatcher\n@author Set Protocol\n * The CoreExchangeDispatcher factilitates updating permissible exchanges\nthat are used in filling issuance orders. See CoreState.State.exchanges", + "fullyImplemented": true, + "id": 1167, + "linearizedBaseContracts": [ + 1167, + 2751, + 4824 + ], + "name": "CoreExchangeDispatcher", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 1143, + "name": "ExchangeRegistered", + "nodeType": "EventDefinition", + "parameters": { + "id": 1142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1139, + "indexed": false, + "name": "_exchangeId", + "nodeType": "VariableDeclaration", + "scope": 1143, + "src": "1158:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1138, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1158:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1141, + "indexed": false, + "name": "_exchange", + "nodeType": "VariableDeclaration", + "scope": 1143, + "src": "1185:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1140, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1185:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1148:60:7" + }, + "src": "1124:85:7" + }, + { + "body": { + "id": 1165, + "nodeType": "Block", + "src": "1581:247:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1152, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1640:5:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1155, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchanges", + "nodeType": "MemberAccess", + "referencedDeclaration": 2644, + "src": "1640:15:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 1156, + "indexExpression": { + "argumentTypes": null, + "id": 1154, + "name": "_exchangeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "1656:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1640:28:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1157, + "name": "_exchange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "1671:9:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1640:40:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1159, + "nodeType": "ExpressionStatement", + "src": "1640:40:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1161, + "name": "_exchangeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "1777:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 1162, + "name": "_exchange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "1802:9:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1160, + "name": "ExchangeRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1143, + "src": "1745:18:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_address_$returns$__$", + "typeString": "function (uint8,address)" + } + }, + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1745:76:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1164, + "nodeType": "EmitStatement", + "src": "1740:81:7" + } + ] + }, + "documentation": "Register exchange address into mapping of exchanges \n * @param _exchangeId Enumeration of exchange\n@param _exchange Exchange address to set", + "id": 1166, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1150, + "modifierName": { + "argumentTypes": null, + "id": 1149, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1567:9:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1567:9:7" + } + ], + "name": "registerExchange", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1145, + "name": "_exchangeId", + "nodeType": "VariableDeclaration", + "scope": 1166, + "src": "1491:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1144, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1491:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1147, + "name": "_exchange", + "nodeType": "VariableDeclaration", + "scope": 1166, + "src": "1518:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1146, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1518:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1481:60:7" + }, + "payable": false, + "returnParameters": { + "id": 1151, + "nodeType": "ParameterList", + "parameters": [], + "src": "1581:0:7" + }, + "scope": 1167, + "src": "1456:372:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 1168, + "src": "970:860:7" + } + ], + "src": "597:1234:7" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.896Z" +} \ No newline at end of file diff --git a/artifacts/json/CoreFactory.json b/artifacts/json/CoreFactory.json new file mode 100644 index 000000000..4d157f91d --- /dev/null +++ b/artifacts/json/CoreFactory.json @@ -0,0 +1,2614 @@ +{ + "contractName": "CoreFactory", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_setTokenAddress", + "type": "address" + }, + { + "indexed": false, + "name": "_factoryAddress", + "type": "address" + }, + { + "indexed": false, + "name": "_components", + "type": "address[]" + }, + { + "indexed": false, + "name": "_units", + "type": "uint256[]" + }, + { + "indexed": false, + "name": "_naturalUnit", + "type": "uint256" + }, + { + "indexed": false, + "name": "_name", + "type": "string" + }, + { + "indexed": false, + "name": "_symbol", + "type": "string" + } + ], + "name": "SetTokenCreated", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + }, + { + "name": "_components", + "type": "address[]" + }, + { + "name": "_units", + "type": "uint256[]" + }, + { + "name": "_naturalUnit", + "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + } + ], + "name": "create", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610a9e806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d41461009e5780631e912bd6146100f9578063430bf08a1461013e57806352904449146101955780638ca4daf914610282578063a003e069146102d9578063c19d93fb14610349578063f7213db6146103d3578063fef3ee7314610418575b600080fd5b3480156100aa57600080fd5b506100df600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610473565b604051808215151515815260200191505060405180910390f35b34801561010557600080fd5b5061012860048036038101908080356000191690602001909291905050506104cb565b6040518082815260200191505060405180910390f35b34801561014a57600080fd5b506101536104f2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101a157600080fd5b50610240600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035906020019092919080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028e57600080fd5b50610297610930565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e557600080fd5b50610307600480360381019080803560ff16906020019092919050505061095c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035557600080fd5b5061035e6109a1565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156103df57600080fd5b5061040260048036038101908080356000191690602001909291905050506109f3565b6040518082815260200191505060405180910390f35b34801561042457600080fd5b50610459600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a1a565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808b600060030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e0000000000000000000000000000000000000000000000000000815250901515610677576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561063c578082015181840152602081019050610621565b50505050905090810190601f1680156106695780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff1663110a25c28d8d8d8d8d8d8d8d8d6040518a63ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509d5050505050505050505050505050602060405180830381600087803b15801561077557600080fd5b505af1158015610789573d6000803e3d6000fd5b505050506040513d602081101561079f57600080fd5b810190808051906020019092919050505091506001600060040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f388b9bd51ec792eb7ce238581b3f844072709011b2a20260c428451e07d764a88e8e8e8e8e8e8e8e8e8e604051808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509e50505050505050505050505050505060405180910390a281925050509a9950505050505050505050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a7230582093423643a0a281e59095b437c750135c5ab6d4aed73aec7f0e5607d38609d4b10029", + "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d41461009e5780631e912bd6146100f9578063430bf08a1461013e57806352904449146101955780638ca4daf914610282578063a003e069146102d9578063c19d93fb14610349578063f7213db6146103d3578063fef3ee7314610418575b600080fd5b3480156100aa57600080fd5b506100df600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610473565b604051808215151515815260200191505060405180910390f35b34801561010557600080fd5b5061012860048036038101908080356000191690602001909291905050506104cb565b6040518082815260200191505060405180910390f35b34801561014a57600080fd5b506101536104f2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101a157600080fd5b50610240600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035906020019092919080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028e57600080fd5b50610297610930565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e557600080fd5b50610307600480360381019080803560ff16906020019092919050505061095c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035557600080fd5b5061035e6109a1565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156103df57600080fd5b5061040260048036038101908080356000191690602001909291905050506109f3565b6040518082815260200191505060405180910390f35b34801561042457600080fd5b50610459600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a1a565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808b600060030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e0000000000000000000000000000000000000000000000000000815250901515610677576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561063c578082015181840152602081019050610621565b50505050905090810190601f1680156106695780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff1663110a25c28d8d8d8d8d8d8d8d8d6040518a63ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509d5050505050505050505050505050602060405180830381600087803b15801561077557600080fd5b505af1158015610789573d6000803e3d6000fd5b505050506040513d602081101561079f57600080fd5b810190808051906020019092919050505091506001600060040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f388b9bd51ec792eb7ce238581b3f844072709011b2a20260c428451e07d764a88e8e8e8e8e8e8e8e8e8e604051808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509e50505050505050505050505050505060405180910390a281925050509a9950505050505050505050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a7230582093423643a0a281e59095b437c750135c5ab6d4aed73aec7f0e5607d38609d4b10029", + "sourceMap": "995:2108:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;995:2108:8;;;;;;;", + "deployedSourceMap": "995:2108:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;2255:846:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2255:846:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:139:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;2529:::-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;1954:123::-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;2255:846:8:-;2511:7;2560:26;2477:15;1709:5:21;:20;;:37;1730:15;1709:37;;;;;;;;;;;;;;;;;;;;;;;;;1760:15;;;;;;;;;;;;;;;;;;;;;;;1688:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1688:97:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2601:15:8;2589:35;;;2638:11;;2663:6;;2683:12;2709:5;;2728:7;;2589:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2589:156:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2589:156:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2589:156:8;;;;;;;;;;;;;;;;2560:185;;2841:4;2803:5;:15;;:35;2819:18;2803:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;2890:18;2861:197;;;2922:15;2951:11;;2976:6;;2996:12;3022:5;;3041:7;;2861:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3076:18;3069:25;;2255:846;;;;;;;;;;;;;;:::o;1809:139:22:-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;1656:147::-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2377:146::-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { CoreModifiers } from \"../lib/CoreSharedModifiers.sol\";\nimport { CoreState } from \"../lib/CoreState.sol\";\nimport { ISetFactory } from \"../interfaces/ISetFactory.sol\";\n\n\n/**\n * @title Core Factory\n * @author Set Protocol\n *\n * The CoreCreate contract contains public set token operations\n */\ncontract CoreFactory is\n CoreState,\n CoreModifiers\n{\n // Use SafeMath library for all uint256 arithmetic\n using SafeMath for uint256;\n\n /* ============ Constants ============ */\n\n string constant INVALID_FACTORY = \"Factory is disabled or does not exist.\";\n\n /* ============ Events ============ */\n\n event SetTokenCreated(\n address indexed _setTokenAddress,\n address _factoryAddress,\n address[] _components,\n uint[] _units,\n uint _naturalUnit,\n string _name,\n string _symbol\n );\n\n\n /* ============ Public Functions ============ */\n\n /**\n * Deploys a new Set Token and adds it to the valid list of SetTokens\n *\n * @param _factoryAddress address The address of the Factory to create from\n * @param _components address[] The address of component tokens\n * @param _units uint[] The units of each component token\n * @param _naturalUnit uint The minimum unit to be issued or redeemed\n * @param _name string The name of the new Set\n * @param _symbol string The symbol of the new Set\n * @return setTokenAddress address The address of the new Set\n */\n function create(\n address _factoryAddress,\n address[] _components,\n uint[] _units,\n uint _naturalUnit,\n string _name,\n string _symbol\n )\n external\n isValidFactory(_factoryAddress)\n returns (address)\n {\n // Create the Set\n address newSetTokenAddress = ISetFactory(_factoryAddress).create(\n _components,\n _units,\n _naturalUnit,\n _name,\n _symbol\n );\n\n // Add Set to the list of tracked Sets\n state.validSets[newSetTokenAddress] = true;\n\n emit SetTokenCreated(\n newSetTokenAddress,\n _factoryAddress,\n _components,\n _units,\n _naturalUnit,\n _name,\n _symbol\n );\n\n return newSetTokenAddress;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreFactory.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreFactory.sol", + "exportedSymbols": { + "CoreFactory": [ + 1262 + ] + }, + "id": 1263, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1169, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:8" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 1171, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 4739, + "src": "622:73:8", + "symbolAliases": [ + { + "foreign": 1170, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1173, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 2639, + "src": "696:63:8", + "symbolAliases": [ + { + "foreign": 1172, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1175, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 2752, + "src": "760:49:8", + "symbolAliases": [ + { + "foreign": 1174, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", + "file": "../interfaces/ISetFactory.sol", + "id": 1177, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 2471, + "src": "810:60:8", + "symbolAliases": [ + { + "foreign": 1176, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1178, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1023:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1179, + "nodeType": "InheritanceSpecifier", + "src": "1023:9:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1180, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1038:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1181, + "nodeType": "InheritanceSpecifier", + "src": "1038:13:8" + } + ], + "contractDependencies": [ + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Factory\n@author Set Protocol\n * The CoreCreate contract contains public set token operations", + "fullyImplemented": true, + "id": 1262, + "linearizedBaseContracts": [ + 1262, + 2638, + 2751 + ], + "name": "CoreFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1184, + "libraryName": { + "contractScope": null, + "id": 1182, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1119:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1113:27:8", + "typeName": { + "id": 1183, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1132:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 1187, + "name": "INVALID_FACTORY", + "nodeType": "VariableDeclaration", + "scope": 1262, + "src": "1193:74:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1185, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1193:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "466163746f72792069732064697361626c6564206f7220646f6573206e6f742065786973742e", + "id": 1186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1227:40:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ff40c07bf4b1e4d2220e3a6d57631493105b5007aba10b5d8cf1630effb33df5", + "typeString": "literal_string \"Factory is disabled or does not exist.\"" + }, + "value": "Factory is disabled or does not exist." + }, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 1205, + "name": "SetTokenCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 1204, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1189, + "indexed": true, + "name": "_setTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1349:32:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1188, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1349:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1191, + "indexed": false, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1391:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1391:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1194, + "indexed": false, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1424:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1424:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1193, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1424:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1197, + "indexed": false, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1455:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1195, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1455:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1196, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1455:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1199, + "indexed": false, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1478:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1198, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1478:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1201, + "indexed": false, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1505:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1200, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1505:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1203, + "indexed": false, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1527:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1202, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1527:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1339:208:8" + }, + "src": "1318:230:8" + }, + { + "body": { + "id": 1260, + "nodeType": "Block", + "src": "2524:577:8", + "statements": [ + { + "assignments": [ + 1228 + ], + "declarations": [ + { + "constant": false, + "id": 1228, + "name": "newSetTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2560:26:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2560:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1239, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1233, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "2638:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1234, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1213, + "src": "2663:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1235, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1215, + "src": "2683:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1236, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1217, + "src": "2709:5:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 1237, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "2728:7:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1230, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "2601:15:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1229, + "name": "ISetFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2470, + "src": "2589:11:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetFactory_$2470_$", + "typeString": "type(contract ISetFactory)" + } + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2589:28:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetFactory_$2470", + "typeString": "contract ISetFactory" + } + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "create", + "nodeType": "MemberAccess", + "referencedDeclaration": 2469, + "src": "2589:35:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_address_$", + "typeString": "function (address[] memory,uint256[] memory,uint256,string memory,string memory) external returns (address)" + } + }, + "id": 1238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2589:156:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2560:185:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 1246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1240, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2803:5:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "2803:15:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1244, + "indexExpression": { + "argumentTypes": null, + "id": 1242, + "name": "newSetTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "2819:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2803:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2841:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2803:42:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1247, + "nodeType": "ExpressionStatement", + "src": "2803:42:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1249, + "name": "newSetTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "2890:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1250, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "2922:15:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1251, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "2951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1252, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1213, + "src": "2976:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1253, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1215, + "src": "2996:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1254, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1217, + "src": "3022:5:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 1255, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "3041:7:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "id": 1248, + "name": "SetTokenCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1205, + "src": "2861:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,address,address[] memory,uint256[] memory,uint256,string memory,string memory)" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2861:197:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1257, + "nodeType": "EmitStatement", + "src": "2856:202:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 1258, + "name": "newSetTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "3076:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1226, + "id": 1259, + "nodeType": "Return", + "src": "3069:25:8" + } + ] + }, + "documentation": "Deploys a new Set Token and adds it to the valid list of SetTokens\n * @param _factoryAddress address The address of the Factory to create from\n@param _components address[] The address of component tokens\n@param _units uint[] The units of each component token\n@param _naturalUnit uint The minimum unit to be issued or redeemed\n@param _name string The name of the new Set\n@param _symbol string The symbol of the new Set\n@return setTokenAddress address The address of the new Set", + "id": 1261, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1222, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "2477:15:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1223, + "modifierName": { + "argumentTypes": null, + "id": 1221, + "name": "isValidFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "2462:14:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2462:31:8" + } + ], + "name": "create", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1207, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2280:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2280:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2313:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2313:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1209, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2313:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1213, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2344:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1211, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2344:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1212, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2344:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1215, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2367:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1214, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2367:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1217, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2394:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1216, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1219, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2416:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1218, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2416:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2270:166:8" + }, + "payable": false, + "returnParameters": { + "id": 1226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1225, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2511:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2511:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2510:9:8" + }, + "scope": 1262, + "src": "2255:846:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 1263, + "src": "995:2108:8" + } + ], + "src": "597:2507:8" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreFactory.sol", + "exportedSymbols": { + "CoreFactory": [ + 1262 + ] + }, + "id": 1263, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1169, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:8" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 1171, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 4739, + "src": "622:73:8", + "symbolAliases": [ + { + "foreign": 1170, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1173, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 2639, + "src": "696:63:8", + "symbolAliases": [ + { + "foreign": 1172, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1175, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 2752, + "src": "760:49:8", + "symbolAliases": [ + { + "foreign": 1174, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", + "file": "../interfaces/ISetFactory.sol", + "id": 1177, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 2471, + "src": "810:60:8", + "symbolAliases": [ + { + "foreign": 1176, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1178, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1023:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1179, + "nodeType": "InheritanceSpecifier", + "src": "1023:9:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1180, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1038:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1181, + "nodeType": "InheritanceSpecifier", + "src": "1038:13:8" + } + ], + "contractDependencies": [ + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Factory\n@author Set Protocol\n * The CoreCreate contract contains public set token operations", + "fullyImplemented": true, + "id": 1262, + "linearizedBaseContracts": [ + 1262, + 2638, + 2751 + ], + "name": "CoreFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1184, + "libraryName": { + "contractScope": null, + "id": 1182, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1119:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1113:27:8", + "typeName": { + "id": 1183, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1132:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 1187, + "name": "INVALID_FACTORY", + "nodeType": "VariableDeclaration", + "scope": 1262, + "src": "1193:74:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1185, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1193:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "466163746f72792069732064697361626c6564206f7220646f6573206e6f742065786973742e", + "id": 1186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1227:40:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ff40c07bf4b1e4d2220e3a6d57631493105b5007aba10b5d8cf1630effb33df5", + "typeString": "literal_string \"Factory is disabled or does not exist.\"" + }, + "value": "Factory is disabled or does not exist." + }, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 1205, + "name": "SetTokenCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 1204, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1189, + "indexed": true, + "name": "_setTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1349:32:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1188, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1349:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1191, + "indexed": false, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1391:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1391:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1194, + "indexed": false, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1424:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1424:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1193, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1424:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1197, + "indexed": false, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1455:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1195, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1455:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1196, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1455:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1199, + "indexed": false, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1478:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1198, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1478:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1201, + "indexed": false, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1505:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1200, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1505:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1203, + "indexed": false, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1527:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1202, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1527:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1339:208:8" + }, + "src": "1318:230:8" + }, + { + "body": { + "id": 1260, + "nodeType": "Block", + "src": "2524:577:8", + "statements": [ + { + "assignments": [ + 1228 + ], + "declarations": [ + { + "constant": false, + "id": 1228, + "name": "newSetTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2560:26:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2560:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1239, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1233, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "2638:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1234, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1213, + "src": "2663:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1235, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1215, + "src": "2683:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1236, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1217, + "src": "2709:5:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 1237, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "2728:7:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1230, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "2601:15:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1229, + "name": "ISetFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2470, + "src": "2589:11:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetFactory_$2470_$", + "typeString": "type(contract ISetFactory)" + } + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2589:28:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetFactory_$2470", + "typeString": "contract ISetFactory" + } + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "create", + "nodeType": "MemberAccess", + "referencedDeclaration": 2469, + "src": "2589:35:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_address_$", + "typeString": "function (address[] memory,uint256[] memory,uint256,string memory,string memory) external returns (address)" + } + }, + "id": 1238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2589:156:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2560:185:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 1246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1240, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2803:5:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "2803:15:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1244, + "indexExpression": { + "argumentTypes": null, + "id": 1242, + "name": "newSetTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "2819:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2803:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2841:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2803:42:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1247, + "nodeType": "ExpressionStatement", + "src": "2803:42:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1249, + "name": "newSetTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "2890:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1250, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "2922:15:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1251, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "2951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1252, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1213, + "src": "2976:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1253, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1215, + "src": "2996:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1254, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1217, + "src": "3022:5:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 1255, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "3041:7:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "id": 1248, + "name": "SetTokenCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1205, + "src": "2861:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,address,address[] memory,uint256[] memory,uint256,string memory,string memory)" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2861:197:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1257, + "nodeType": "EmitStatement", + "src": "2856:202:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 1258, + "name": "newSetTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "3076:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1226, + "id": 1259, + "nodeType": "Return", + "src": "3069:25:8" + } + ] + }, + "documentation": "Deploys a new Set Token and adds it to the valid list of SetTokens\n * @param _factoryAddress address The address of the Factory to create from\n@param _components address[] The address of component tokens\n@param _units uint[] The units of each component token\n@param _naturalUnit uint The minimum unit to be issued or redeemed\n@param _name string The name of the new Set\n@param _symbol string The symbol of the new Set\n@return setTokenAddress address The address of the new Set", + "id": 1261, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1222, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "2477:15:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1223, + "modifierName": { + "argumentTypes": null, + "id": 1221, + "name": "isValidFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "2462:14:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2462:31:8" + } + ], + "name": "create", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1207, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2280:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2280:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2313:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2313:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1209, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2313:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1213, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2344:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1211, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2344:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1212, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2344:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1215, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2367:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1214, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2367:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1217, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2394:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1216, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1219, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2416:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1218, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2416:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2270:166:8" + }, + "payable": false, + "returnParameters": { + "id": 1226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1225, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2511:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2511:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2510:9:8" + }, + "scope": 1262, + "src": "2255:846:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 1263, + "src": "995:2108:8" + } + ], + "src": "597:2507:8" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.896Z" +} \ No newline at end of file diff --git a/artifacts/json/CoreInternal.json b/artifacts/json/CoreInternal.json new file mode 100644 index 000000000..1a481ba0e --- /dev/null +++ b/artifacts/json/CoreInternal.json @@ -0,0 +1,2359 @@ +{ + "contractName": "CoreInternal", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_vaultAddress", + "type": "address" + } + ], + "name": "setVaultAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_transferProxyAddress", + "type": "address" + } + ], + "name": "setTransferProxyAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + } + ], + "name": "enableFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + } + ], + "name": "disableFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + } + ], + "name": "disableSet", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611097806100536000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100eb578063124cfd78146101465780631a1f2b3e146101895780631e912bd6146101cc578063430bf08a14610211578063715018a61461026857806377274ff01461027f57806385535cc5146102c25780638ca4daf9146103055780638da5cb5b1461035c5780639f80ee88146103b3578063a003e069146103f6578063c19d93fb14610466578063f2fde38b146104f0578063f7213db614610533578063fef3ee7314610578575b600080fd5b3480156100f757600080fd5b5061012c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105d3565b604051808215151515815260200191505060405180910390f35b34801561015257600080fd5b50610187600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061062c565b005b34801561019557600080fd5b506101ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106cd565b005b3480156101d857600080fd5b506101fb60048036038101908080356000191690602001909291905050506108de565b6040518082815260200191505060405180910390f35b34801561021d57600080fd5b50610226610906565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027457600080fd5b5061027d610933565b005b34801561028b57600080fd5b506102c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a35565b005b3480156102ce57600080fd5b50610303600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c46565b005b34801561031157600080fd5b5061031a610ce8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036857600080fd5b50610371610d14565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103bf57600080fd5b506103f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d39565b005b34801561040257600080fd5b50610424600480360381019080803560ff169060200190929190505050610df1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047257600080fd5b5061047b610e37565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156104fc57600080fd5b50610531600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e89565b005b34801561053f57600080fd5b506105626004803603810190808035600019169060200190929190505050610ef0565b6040518082815260200191505060405180910390f35b34801561058457600080fd5b506105b9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f18565b604051808215151515815260200191505060405180910390f35b6000600160030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561068757600080fd5b806001800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561072857600080fd5b80600160030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e000000000000000000000000000000000000000000000000000081525090151561087e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610843578082015181840152602081019050610828565b50505050905090810190601f1680156108705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160060160008360001916600019168152602001908152602001600020549050919050565b6000600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561098e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a9057600080fd5b80600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515610be6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bab578082015181840152602081019050610b90565b50505050905090810190601f168015610bd85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ca157600080fd5b80600160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d9457600080fd5b60018060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60018060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ee457600080fd5b610eed81610f71565b50565b6000600160050160008360001916600019168152602001908152602001600020549050919050565b6000600160040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610fad57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058203a07ee04db3857991326aee51dbc20d19a3fdfd01755305281ed8218f31a25470029", + "deployedBytecode": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100eb578063124cfd78146101465780631a1f2b3e146101895780631e912bd6146101cc578063430bf08a14610211578063715018a61461026857806377274ff01461027f57806385535cc5146102c25780638ca4daf9146103055780638da5cb5b1461035c5780639f80ee88146103b3578063a003e069146103f6578063c19d93fb14610466578063f2fde38b146104f0578063f7213db614610533578063fef3ee7314610578575b600080fd5b3480156100f757600080fd5b5061012c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105d3565b604051808215151515815260200191505060405180910390f35b34801561015257600080fd5b50610187600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061062c565b005b34801561019557600080fd5b506101ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106cd565b005b3480156101d857600080fd5b506101fb60048036038101908080356000191690602001909291905050506108de565b6040518082815260200191505060405180910390f35b34801561021d57600080fd5b50610226610906565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027457600080fd5b5061027d610933565b005b34801561028b57600080fd5b506102c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a35565b005b3480156102ce57600080fd5b50610303600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c46565b005b34801561031157600080fd5b5061031a610ce8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036857600080fd5b50610371610d14565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103bf57600080fd5b506103f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d39565b005b34801561040257600080fd5b50610424600480360381019080803560ff169060200190929190505050610df1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047257600080fd5b5061047b610e37565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156104fc57600080fd5b50610531600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e89565b005b34801561053f57600080fd5b506105626004803603810190808035600019169060200190929190505050610ef0565b6040518082815260200191505060405180910390f35b34801561058457600080fd5b506105b9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f18565b604051808215151515815260200191505060405180910390f35b6000600160030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561068757600080fd5b806001800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561072857600080fd5b80600160030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e000000000000000000000000000000000000000000000000000081525090151561087e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610843578082015181840152602081019050610828565b50505050905090810190601f1680156108705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160060160008360001916600019168152602001908152602001600020549050919050565b6000600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561098e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a9057600080fd5b80600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515610be6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bab578082015181840152602081019050610b90565b50505050905090810190601f168015610bd85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ca157600080fd5b80600160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d9457600080fd5b60018060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60018060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ee457600080fd5b610eed81610f71565b50565b6000600160050160008360001916600019168152602001908152602001600020549050919050565b6000600160040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610fad57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058203a07ee04db3857991326aee51dbc20d19a3fdfd01755305281ed8218f31a25470029", + "sourceMap": "1002:1952:9:-;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;1002:1952:9;;;;;;", + "deployedSourceMap": "1002:1952:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1655:256:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1655:256:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2408:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2408:204:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:39;;;;;;2773:179:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2773:179:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1271:216;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1271:216:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:139:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;2076:162:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2076:162:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;1655:256:9:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1883:21:9;1854:5;:26;;;:50;;;;;;;;;;;;;;;;;;1655:256;:::o;2408:204::-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2529:15:9;1709:5:21;:20;;:37;1730:15;1709:37;;;;;;;;;;;;;;;;;;;;;;;;;1760:15;;;;;;;;;;;;;;;;;;;;;;;1688:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1688:97:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2600:5:9;2560;:20;;:37;2581:15;2560:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;731:1:39;2408:204:9;:::o;2529:150:22:-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;1954:123::-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;827:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;2773:179:9:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2882:11:9;1934:5:21;:15;;:28;1950:11;1934:28;;;;;;;;;;;;;;;;;;;;;;;;;1976:11;;;;;;;;;;;;;;;;;;;;;;;1913:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:84:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2940:5:9;2909;:15;;:28;2925:11;2909:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;731:1:39;2773:179:9;:::o;1271:216::-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1467:13:9;1446:5;:18;;;:34;;;;;;;;;;;;;;;;;;1271:216;:::o;1809:139:22:-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;238:20:39:-;;;;;;;;;;;;;:::o;2076:162:9:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2227:4:9;2187:5;:20;;:37;2208:15;2187:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2076:162;:::o;1656:147:22:-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1100:103:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;2377:146:22:-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o;1338:171:39:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { Ownable } from \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport { CoreModifiers } from \"../lib/CoreSharedModifiers.sol\";\nimport { CoreState } from \"../lib/CoreState.sol\";\n\n\n/**\n * @title Core Internal\n * @author Set Protocol\n *\n * The CoreInternal contract contains methods to alter state that tracks contract\n * addresses that need to interact with Core.\n */\ncontract CoreInternal is\n Ownable,\n CoreState,\n CoreModifiers\n{\n /* ============ Setter Functions ============ */\n\n /**\n * Set vaultAddress. Can only be set by owner of Core.\n *\n * @param _vaultAddress The address of the Vault\n */\n function setVaultAddress(\n address _vaultAddress\n )\n external\n onlyOwner\n {\n // Commit passed address to vaultAddress state variable\n state.vaultAddress = _vaultAddress;\n }\n\n /**\n * Set transferProxyAddress. Can only be set by owner of Core.\n *\n * @param _transferProxyAddress The address of the TransferProxy\n */\n function setTransferProxyAddress(\n address _transferProxyAddress\n )\n external\n onlyOwner\n {\n // Commit passed address to transferProxyAddress state variable\n state.transferProxyAddress = _transferProxyAddress;\n }\n\n /**\n * Add a factory to the mapping of tracked factories.\n *\n * @param _factoryAddress The address of the SetTokenFactory to enable\n */\n function enableFactory(\n address _factoryAddress\n )\n external\n onlyOwner\n {\n state.validFactories[_factoryAddress] = true;\n }\n\n /**\n * Disable a factory in the mapping of tracked factories.\n *\n * @param _factoryAddress The address of the SetTokenFactory to disable\n */\n function disableFactory(\n address _factoryAddress\n )\n external\n onlyOwner\n isValidFactory(_factoryAddress)\n {\n state.validFactories[_factoryAddress] = false;\n }\n\n /**\n * Disable a set token in the mapping of tracked set tokens.\n *\n * @param _setAddress The address of the SetToken to remove\n */\n function disableSet(\n address _setAddress\n )\n external\n onlyOwner\n isValidSet(_setAddress)\n {\n state.validSets[_setAddress] = false;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreInternal.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreInternal.sol", + "exportedSymbols": { + "CoreInternal": [ + 1359 + ] + }, + "id": 1360, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1264, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:9" + }, + { + "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 1266, + "nodeType": "ImportDirective", + "scope": 1360, + "sourceUnit": 4825, + "src": "622:76:9", + "symbolAliases": [ + { + "foreign": 1265, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1268, + "nodeType": "ImportDirective", + "scope": 1360, + "sourceUnit": 2639, + "src": "699:63:9", + "symbolAliases": [ + { + "foreign": 1267, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1270, + "nodeType": "ImportDirective", + "scope": 1360, + "sourceUnit": 2752, + "src": "763:49:9", + "symbolAliases": [ + { + "foreign": 1269, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1271, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4824, + "src": "1031:7:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$4824", + "typeString": "contract Ownable" + } + }, + "id": 1272, + "nodeType": "InheritanceSpecifier", + "src": "1031:7:9" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1273, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1044:9:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1274, + "nodeType": "InheritanceSpecifier", + "src": "1044:9:9" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1275, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1059:13:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1276, + "nodeType": "InheritanceSpecifier", + "src": "1059:13:9" + } + ], + "contractDependencies": [ + 2638, + 2751, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Core Internal\n@author Set Protocol\n * The CoreInternal contract contains methods to alter state that tracks contract\naddresses that need to interact with Core.", + "fullyImplemented": true, + "id": 1359, + "linearizedBaseContracts": [ + 1359, + 2638, + 2751, + 4824 + ], + "name": "CoreInternal", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1289, + "nodeType": "Block", + "src": "1372:115:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1283, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1446:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "1446:18:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1286, + "name": "_vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "1467:13:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1446:34:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1288, + "nodeType": "ExpressionStatement", + "src": "1446:34:9" + } + ] + }, + "documentation": "Set vaultAddress. Can only be set by owner of Core.\n * @param _vaultAddress The address of the Vault", + "id": 1290, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1281, + "modifierName": { + "argumentTypes": null, + "id": 1280, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1358:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1358:9:9" + } + ], + "name": "setVaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1278, + "name": "_vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 1290, + "src": "1305:21:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1277, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1305:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1295:37:9" + }, + "payable": false, + "returnParameters": { + "id": 1282, + "nodeType": "ParameterList", + "parameters": [], + "src": "1372:0:9" + }, + "scope": 1359, + "src": "1271:216:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1303, + "nodeType": "Block", + "src": "1772:139:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1297, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1854:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1299, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "1854:26:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1300, + "name": "_transferProxyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1292, + "src": "1883:21:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1854:50:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1302, + "nodeType": "ExpressionStatement", + "src": "1854:50:9" + } + ] + }, + "documentation": "Set transferProxyAddress. Can only be set by owner of Core.\n * @param _transferProxyAddress The address of the TransferProxy", + "id": 1304, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1295, + "modifierName": { + "argumentTypes": null, + "id": 1294, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1758:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1758:9:9" + } + ], + "name": "setTransferProxyAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1292, + "name": "_transferProxyAddress", + "nodeType": "VariableDeclaration", + "scope": 1304, + "src": "1697:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1697:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1687:45:9" + }, + "payable": false, + "returnParameters": { + "id": 1296, + "nodeType": "ParameterList", + "parameters": [], + "src": "1772:0:9" + }, + "scope": 1359, + "src": "1655:256:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1319, + "nodeType": "Block", + "src": "2177:61:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1311, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2187:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1314, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "2187:20:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1315, + "indexExpression": { + "argumentTypes": null, + "id": 1313, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1306, + "src": "2208:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2187:37:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2227:4:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2187:44:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1318, + "nodeType": "ExpressionStatement", + "src": "2187:44:9" + } + ] + }, + "documentation": "Add a factory to the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to enable", + "id": 1320, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1309, + "modifierName": { + "argumentTypes": null, + "id": 1308, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "2163:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2163:9:9" + } + ], + "name": "enableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1306, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1320, + "src": "2108:23:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1305, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2108:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2098:39:9" + }, + "payable": false, + "returnParameters": { + "id": 1310, + "nodeType": "ParameterList", + "parameters": [], + "src": "2177:0:9" + }, + "scope": 1359, + "src": "2076:162:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1338, + "nodeType": "Block", + "src": "2550:62:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1330, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2560:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1333, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "2560:20:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1334, + "indexExpression": { + "argumentTypes": null, + "id": 1332, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1322, + "src": "2581:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2560:37:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2600:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2560:45:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1337, + "nodeType": "ExpressionStatement", + "src": "2560:45:9" + } + ] + }, + "documentation": "Disable a factory in the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to disable", + "id": 1339, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1325, + "modifierName": { + "argumentTypes": null, + "id": 1324, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "2496:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2496:9:9" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1327, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1322, + "src": "2529:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1328, + "modifierName": { + "argumentTypes": null, + "id": 1326, + "name": "isValidFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "2514:14:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2514:31:9" + } + ], + "name": "disableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1339, + "src": "2441:23:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2441:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2431:39:9" + }, + "payable": false, + "returnParameters": { + "id": 1329, + "nodeType": "ParameterList", + "parameters": [], + "src": "2550:0:9" + }, + "scope": 1359, + "src": "2408:204:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1357, + "nodeType": "Block", + "src": "2899:53:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1349, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2909:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1352, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "2909:15:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1353, + "indexExpression": { + "argumentTypes": null, + "id": 1351, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "2925:11:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2909:28:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2940:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2909:36:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1356, + "nodeType": "ExpressionStatement", + "src": "2909:36:9" + } + ] + }, + "documentation": "Disable a set token in the mapping of tracked set tokens.\n * @param _setAddress The address of the SetToken to remove", + "id": 1358, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1344, + "modifierName": { + "argumentTypes": null, + "id": 1343, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "2853:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2853:9:9" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1346, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "2882:11:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1347, + "modifierName": { + "argumentTypes": null, + "id": 1345, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "2871:10:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2871:23:9" + } + ], + "name": "disableSet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1341, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1358, + "src": "2802:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1340, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2802:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2792:35:9" + }, + "payable": false, + "returnParameters": { + "id": 1348, + "nodeType": "ParameterList", + "parameters": [], + "src": "2899:0:9" + }, + "scope": 1359, + "src": "2773:179:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 1360, + "src": "1002:1952:9" + } + ], + "src": "597:2358:9" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreInternal.sol", + "exportedSymbols": { + "CoreInternal": [ + 1359 + ] + }, + "id": 1360, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1264, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:9" + }, + { + "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 1266, + "nodeType": "ImportDirective", + "scope": 1360, + "sourceUnit": 4825, + "src": "622:76:9", + "symbolAliases": [ + { + "foreign": 1265, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1268, + "nodeType": "ImportDirective", + "scope": 1360, + "sourceUnit": 2639, + "src": "699:63:9", + "symbolAliases": [ + { + "foreign": 1267, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1270, + "nodeType": "ImportDirective", + "scope": 1360, + "sourceUnit": 2752, + "src": "763:49:9", + "symbolAliases": [ + { + "foreign": 1269, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1271, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4824, + "src": "1031:7:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$4824", + "typeString": "contract Ownable" + } + }, + "id": 1272, + "nodeType": "InheritanceSpecifier", + "src": "1031:7:9" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1273, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1044:9:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1274, + "nodeType": "InheritanceSpecifier", + "src": "1044:9:9" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1275, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1059:13:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1276, + "nodeType": "InheritanceSpecifier", + "src": "1059:13:9" + } + ], + "contractDependencies": [ + 2638, + 2751, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Core Internal\n@author Set Protocol\n * The CoreInternal contract contains methods to alter state that tracks contract\naddresses that need to interact with Core.", + "fullyImplemented": true, + "id": 1359, + "linearizedBaseContracts": [ + 1359, + 2638, + 2751, + 4824 + ], + "name": "CoreInternal", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1289, + "nodeType": "Block", + "src": "1372:115:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1283, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1446:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "1446:18:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1286, + "name": "_vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "1467:13:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1446:34:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1288, + "nodeType": "ExpressionStatement", + "src": "1446:34:9" + } + ] + }, + "documentation": "Set vaultAddress. Can only be set by owner of Core.\n * @param _vaultAddress The address of the Vault", + "id": 1290, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1281, + "modifierName": { + "argumentTypes": null, + "id": 1280, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1358:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1358:9:9" + } + ], + "name": "setVaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1278, + "name": "_vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 1290, + "src": "1305:21:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1277, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1305:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1295:37:9" + }, + "payable": false, + "returnParameters": { + "id": 1282, + "nodeType": "ParameterList", + "parameters": [], + "src": "1372:0:9" + }, + "scope": 1359, + "src": "1271:216:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1303, + "nodeType": "Block", + "src": "1772:139:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1297, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1854:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1299, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "1854:26:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1300, + "name": "_transferProxyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1292, + "src": "1883:21:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1854:50:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1302, + "nodeType": "ExpressionStatement", + "src": "1854:50:9" + } + ] + }, + "documentation": "Set transferProxyAddress. Can only be set by owner of Core.\n * @param _transferProxyAddress The address of the TransferProxy", + "id": 1304, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1295, + "modifierName": { + "argumentTypes": null, + "id": 1294, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1758:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1758:9:9" + } + ], + "name": "setTransferProxyAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1292, + "name": "_transferProxyAddress", + "nodeType": "VariableDeclaration", + "scope": 1304, + "src": "1697:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1697:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1687:45:9" + }, + "payable": false, + "returnParameters": { + "id": 1296, + "nodeType": "ParameterList", + "parameters": [], + "src": "1772:0:9" + }, + "scope": 1359, + "src": "1655:256:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1319, + "nodeType": "Block", + "src": "2177:61:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1311, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2187:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1314, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "2187:20:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1315, + "indexExpression": { + "argumentTypes": null, + "id": 1313, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1306, + "src": "2208:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2187:37:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2227:4:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2187:44:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1318, + "nodeType": "ExpressionStatement", + "src": "2187:44:9" + } + ] + }, + "documentation": "Add a factory to the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to enable", + "id": 1320, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1309, + "modifierName": { + "argumentTypes": null, + "id": 1308, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "2163:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2163:9:9" + } + ], + "name": "enableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1306, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1320, + "src": "2108:23:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1305, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2108:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2098:39:9" + }, + "payable": false, + "returnParameters": { + "id": 1310, + "nodeType": "ParameterList", + "parameters": [], + "src": "2177:0:9" + }, + "scope": 1359, + "src": "2076:162:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1338, + "nodeType": "Block", + "src": "2550:62:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1330, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2560:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1333, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "2560:20:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1334, + "indexExpression": { + "argumentTypes": null, + "id": 1332, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1322, + "src": "2581:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2560:37:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2600:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2560:45:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1337, + "nodeType": "ExpressionStatement", + "src": "2560:45:9" + } + ] + }, + "documentation": "Disable a factory in the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to disable", + "id": 1339, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1325, + "modifierName": { + "argumentTypes": null, + "id": 1324, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "2496:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2496:9:9" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1327, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1322, + "src": "2529:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1328, + "modifierName": { + "argumentTypes": null, + "id": 1326, + "name": "isValidFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "2514:14:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2514:31:9" + } + ], + "name": "disableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1339, + "src": "2441:23:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2441:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2431:39:9" + }, + "payable": false, + "returnParameters": { + "id": 1329, + "nodeType": "ParameterList", + "parameters": [], + "src": "2550:0:9" + }, + "scope": 1359, + "src": "2408:204:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1357, + "nodeType": "Block", + "src": "2899:53:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1349, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2909:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1352, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "2909:15:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1353, + "indexExpression": { + "argumentTypes": null, + "id": 1351, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "2925:11:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2909:28:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2940:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2909:36:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1356, + "nodeType": "ExpressionStatement", + "src": "2909:36:9" + } + ] + }, + "documentation": "Disable a set token in the mapping of tracked set tokens.\n * @param _setAddress The address of the SetToken to remove", + "id": 1358, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1344, + "modifierName": { + "argumentTypes": null, + "id": 1343, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "2853:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2853:9:9" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1346, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "2882:11:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1347, + "modifierName": { + "argumentTypes": null, + "id": 1345, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "2871:10:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2871:23:9" + } + ], + "name": "disableSet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1341, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1358, + "src": "2802:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1340, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2802:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2792:35:9" + }, + "payable": false, + "returnParameters": { + "id": 1348, + "nodeType": "ParameterList", + "parameters": [], + "src": "2899:0:9" + }, + "scope": 1359, + "src": "2773:179:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 1360, + "src": "1002:1952:9" + } + ], + "src": "597:2358:9" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.897Z" +} \ No newline at end of file diff --git a/artifacts/json/CoreIssuance.json b/artifacts/json/CoreIssuance.json new file mode 100644 index 000000000..563e04184 --- /dev/null +++ b/artifacts/json/CoreIssuance.json @@ -0,0 +1,9217 @@ +{ + "contractName": "CoreIssuance", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_setToken", + "type": "address" + }, + { + "indexed": true, + "name": "_component", + "type": "address" + }, + { + "indexed": false, + "name": "_quantity", + "type": "uint256" + } + ], + "name": "IssuanceComponentDeposited", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "issue", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "redeem", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50611efe806100206000396000f3006080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100a95780631e912bd6146101045780631e9a695014610149578063430bf08a14610196578063867904b4146101ed5780638ca4daf91461023a578063a003e06914610291578063c19d93fb14610301578063f7213db61461038b578063fef3ee73146103d0575b600080fd5b3480156100b557600080fd5b506100ea600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061042b565b604051808215151515815260200191505060405180910390f35b34801561011057600080fd5b506101336004803603810190808035600019169060200190929190505050610483565b6040518082815260200191505060405180910390f35b34801561015557600080fd5b50610194600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104aa565b005b3480156101a257600080fd5b506101ab610eb5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f957600080fd5b50610238600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee1565b005b34801561024657600080fd5b5061024f61130b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561029d57600080fd5b506102bf600480360381019080803560ff169060200190929190505050611337565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561030d57600080fd5b5061031661137c565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b34801561039757600080fd5b506103ba60048036038101908080356000191690602001909291905050506113ce565b6040518082815260200191505060405180910390f35b3480156103dc57600080fd5b50610411600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113f5565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b600060608060008060008088600060040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e00000000000000000000000000000000000000000000000081525090151561060b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105d05780820151818401526020810190506105b5565b50505050905090810190601f1680156105fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508860008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515610716576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106db5780820151818401526020810190506106c0565b50505050905090810190601f1680156107085780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50898b60008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561077f57600080fd5b505af1158015610793573d6000803e3d6000fd5b505050506040513d60208110156107a957600080fd5b8101908080519060200190929190505050838115156107c457fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e000000000000008152509015156108cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610890578082015181840152602081019050610875565b50505050905090810190601f1680156108bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff16639dc29fac338e6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561096f57600080fd5b505af1158015610983573d6000803e3d6000fd5b505050508c73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156109eb57600080fd5b505af11580156109ff573d6000803e3d6000fd5b505050506040513d6020811015610a1557600080fd5b81019080805190602001909291905050509a508c73ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015610a8c57600080fd5b505af1158015610aa0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610aca57600080fd5b810190808051640100000000811115610ae257600080fd5b82810190506020810184811115610af857600080fd5b8151856020820283011164010000000082111715610b1557600080fd5b505092919050505099508c73ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015610b8357600080fd5b505af1158015610b97573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610bc157600080fd5b810190808051640100000000811115610bd957600080fd5b82810190506020810184811115610bef57600080fd5b8151856020820283011164010000000082111715610c0c57600080fd5b50509291905050509850600097505b89518861ffff161015610ea657898861ffff16815181101515610c3a57fe5b906020019060200201519650888861ffff16815181101515610c5857fe5b906020019060200201519550610c6f868c8e61144d565b9450600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308e89886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610d6d57600080fd5b505af1158015610d81573d6000803e3d6000fd5b50505050600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263389886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610e8157600080fd5b505af1158015610e95573d6000803e3d6000fd5b505050508780600101985050610c1b565b50505050505050505050505050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b81600060040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515611037576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ffc578082015181840152602081019050610fe1565b50505050905090810190601f1680156110295780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508160008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515611142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111075780820151818401526020810190506110ec565b50505050905090810190601f1680156111345780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50828460008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156111ab57600080fd5b505af11580156111bf573d6000803e3d6000fd5b505050506040513d60208110156111d557600080fd5b8101908080519060200190929190505050838115156111f057fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e000000000000008152509015156112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112bc5780820151818401526020810190506112a1565b50505050905090810190601f1680156112e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061130333878761147d565b505050505050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611474846114668585611e6b90919063ffffffff16565b611e8190919063ffffffff16565b90509392505050565b6060806000806000806000808973ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561152b57600080fd5b81019080805164010000000081111561154357600080fd5b8281019050602081018481111561155957600080fd5b815185602082028301116401000000008211171561157657600080fd5b505092919050505097508973ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156115e457600080fd5b505af11580156115f8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561162257600080fd5b81019080805164010000000081111561163a57600080fd5b8281019050602081018481111561165057600080fd5b815185602082028301116401000000008211171561166d57600080fd5b50509291905050509650600095505b87518661ffff161015611da357878661ffff1681518110151561169b57fe5b906020019060200201519450868661ffff168151811015156116b957fe5b90602001906020020151935061176e848b73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561172d57600080fd5b505af1158015611741573d6000803e3d6000fd5b505050506040513d602081101561175757600080fd5b81019080805190602001909291905050508b61144d565b9250600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f98ade38c876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561186457600080fd5b505af1158015611878573d6000803e3d6000fd5b505050506040513d602081101561188e57600080fd5b8101908080519060200190929190505050915082821015156119c357600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156119a657600080fd5b505af11580156119ba573d6000803e3d6000fd5b50505050611c82565b6000821115611ae157600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611ac857600080fd5b505af1158015611adc573d6000803e3d6000fd5b505050505b611af48284611eb990919063ffffffff16565b9050600060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22958c87611b4c8688611eb990919063ffffffff16565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611c0457600080fd5b505af1158015611c18573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fced8518610cf00c97309551834addd978c595341eda2066dbd52f9e990489573836040518082815260200191505060405180910390a35b600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57268b87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611d7e57600080fd5b505af1158015611d92573d6000803e3d6000fd5b50505050858060010196505061167c565b8973ffffffffffffffffffffffffffffffffffffffff166340c10f198c8b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611e4657600080fd5b505af1158015611e5a573d6000803e3d6000fd5b505050505050505050505050505050565b60008183811515611e7857fe5b04905092915050565b600080831415611e945760009050611eb3565b8183029050818382811515611ea557fe5b04141515611eaf57fe5b8090505b92915050565b6000828211151515611ec757fe5b8183039050929150505600a165627a7a723058205b6259574f07feb246edb1ad2e9108735a81ca495a44899f8593fcb71a7f08510029", + "deployedBytecode": "0x6080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100a95780631e912bd6146101045780631e9a695014610149578063430bf08a14610196578063867904b4146101ed5780638ca4daf91461023a578063a003e06914610291578063c19d93fb14610301578063f7213db61461038b578063fef3ee73146103d0575b600080fd5b3480156100b557600080fd5b506100ea600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061042b565b604051808215151515815260200191505060405180910390f35b34801561011057600080fd5b506101336004803603810190808035600019169060200190929190505050610483565b6040518082815260200191505060405180910390f35b34801561015557600080fd5b50610194600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104aa565b005b3480156101a257600080fd5b506101ab610eb5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f957600080fd5b50610238600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee1565b005b34801561024657600080fd5b5061024f61130b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561029d57600080fd5b506102bf600480360381019080803560ff169060200190929190505050611337565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561030d57600080fd5b5061031661137c565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b34801561039757600080fd5b506103ba60048036038101908080356000191690602001909291905050506113ce565b6040518082815260200191505060405180910390f35b3480156103dc57600080fd5b50610411600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113f5565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b600060608060008060008088600060040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e00000000000000000000000000000000000000000000000081525090151561060b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105d05780820151818401526020810190506105b5565b50505050905090810190601f1680156105fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508860008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515610716576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106db5780820151818401526020810190506106c0565b50505050905090810190601f1680156107085780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50898b60008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561077f57600080fd5b505af1158015610793573d6000803e3d6000fd5b505050506040513d60208110156107a957600080fd5b8101908080519060200190929190505050838115156107c457fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e000000000000008152509015156108cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610890578082015181840152602081019050610875565b50505050905090810190601f1680156108bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff16639dc29fac338e6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561096f57600080fd5b505af1158015610983573d6000803e3d6000fd5b505050508c73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156109eb57600080fd5b505af11580156109ff573d6000803e3d6000fd5b505050506040513d6020811015610a1557600080fd5b81019080805190602001909291905050509a508c73ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015610a8c57600080fd5b505af1158015610aa0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610aca57600080fd5b810190808051640100000000811115610ae257600080fd5b82810190506020810184811115610af857600080fd5b8151856020820283011164010000000082111715610b1557600080fd5b505092919050505099508c73ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015610b8357600080fd5b505af1158015610b97573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610bc157600080fd5b810190808051640100000000811115610bd957600080fd5b82810190506020810184811115610bef57600080fd5b8151856020820283011164010000000082111715610c0c57600080fd5b50509291905050509850600097505b89518861ffff161015610ea657898861ffff16815181101515610c3a57fe5b906020019060200201519650888861ffff16815181101515610c5857fe5b906020019060200201519550610c6f868c8e61144d565b9450600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308e89886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610d6d57600080fd5b505af1158015610d81573d6000803e3d6000fd5b50505050600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263389886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610e8157600080fd5b505af1158015610e95573d6000803e3d6000fd5b505050508780600101985050610c1b565b50505050505050505050505050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b81600060040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515611037576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ffc578082015181840152602081019050610fe1565b50505050905090810190601f1680156110295780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508160008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515611142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111075780820151818401526020810190506110ec565b50505050905090810190601f1680156111345780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50828460008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156111ab57600080fd5b505af11580156111bf573d6000803e3d6000fd5b505050506040513d60208110156111d557600080fd5b8101908080519060200190929190505050838115156111f057fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e000000000000008152509015156112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112bc5780820151818401526020810190506112a1565b50505050905090810190601f1680156112e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061130333878761147d565b505050505050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611474846114668585611e6b90919063ffffffff16565b611e8190919063ffffffff16565b90509392505050565b6060806000806000806000808973ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561152b57600080fd5b81019080805164010000000081111561154357600080fd5b8281019050602081018481111561155957600080fd5b815185602082028301116401000000008211171561157657600080fd5b505092919050505097508973ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156115e457600080fd5b505af11580156115f8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561162257600080fd5b81019080805164010000000081111561163a57600080fd5b8281019050602081018481111561165057600080fd5b815185602082028301116401000000008211171561166d57600080fd5b50509291905050509650600095505b87518661ffff161015611da357878661ffff1681518110151561169b57fe5b906020019060200201519450868661ffff168151811015156116b957fe5b90602001906020020151935061176e848b73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561172d57600080fd5b505af1158015611741573d6000803e3d6000fd5b505050506040513d602081101561175757600080fd5b81019080805190602001909291905050508b61144d565b9250600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f98ade38c876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561186457600080fd5b505af1158015611878573d6000803e3d6000fd5b505050506040513d602081101561188e57600080fd5b8101908080519060200190929190505050915082821015156119c357600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156119a657600080fd5b505af11580156119ba573d6000803e3d6000fd5b50505050611c82565b6000821115611ae157600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611ac857600080fd5b505af1158015611adc573d6000803e3d6000fd5b505050505b611af48284611eb990919063ffffffff16565b9050600060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22958c87611b4c8688611eb990919063ffffffff16565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611c0457600080fd5b505af1158015611c18573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fced8518610cf00c97309551834addd978c595341eda2066dbd52f9e990489573836040518082815260200191505060405180910390a35b600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57268b87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611d7e57600080fd5b505af1158015611d92573d6000803e3d6000fd5b50505050858060010196505061167c565b8973ffffffffffffffffffffffffffffffffffffffff166340c10f198c8b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611e4657600080fd5b505af1158015611e5a573d6000803e3d6000fd5b505050505050505050505050505050565b60008183811515611e7857fe5b04905092915050565b600080831415611e945760009050611eb3565b8183029050818382811515611ea557fe5b04141515611eaf57fe5b8090505b92915050565b6000828211151515611ec757fe5b8183039050929150505600a165627a7a723058205b6259574f07feb246edb1ad2e9108735a81ca495a44899f8593fcb71a7f08510029", + "sourceMap": "1112:6050:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1112:6050:10;;;;;;;", + "deployedSourceMap": "1112:6050:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2199:1382:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2199:1382:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:314:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1675:314:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:139:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;2529:::-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;2199:1382:10:-;2564:16;2708:27;2786:19;2856:8;2912:24;2966:16;3008:15;2310:11;1934:5:21;:15;;:28;1950:11;1934:28;;;;;;;;;;;;;;;;;;;;;;;;;1976:11;;;;;;;;;;;;;;;;;;;;;;;1913:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:84:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2350:9:10;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2391:9:10;2402:11;2221:1:21;2193:9;2183:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:34:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2183:34:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2183:34:21;;;;;;;;;;;;;;;;2171:9;:46;;;;;;;;:51;2236:16;;;;;;;;;;;;;;;;;;;;;;;2150:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2150:112:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2513:11:10;2503:27;;;2531:10;2543:9;2503:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2503:50:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2503:50:10;;;;2593:11;2583:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2583:36:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:36:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2583:36:10;;;;;;;;;;;;;;;;2564:55;;2748:11;2738:36;;;:38;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2738:38:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2738:38:10;;;;;;39:16:-1;36:1;17:17;2:54;2738:38:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2738:38:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;2738:38:10;;;;;;2708:68;;2818:11;2808:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2808:33:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2808:33:10;;;;;;39:16:-1;36:1;17:17;2:54;2808:33:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2808:33:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;2808:33:10;;;;;;2786:55;;2867:1;2856:12;;2851:724;2874:10;:17;2870:1;:21;;;2851:724;;;2939:10;2950:1;2939:13;;;;;;;;;;;;;;;;;;;;2912:40;;2985:5;2991:1;2985:8;;;;;;;;;;;;;;;;;;;;2966:27;;3026:121;3066:11;3095;3124:9;3026:22;:121::i;:::-;3008:139;;3209:5;:18;;;;;;;;;;;;3202:46;;;3266:11;3295:16;3329:10;3202:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3202:151:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3202:151:10;;;;3421:5;:18;;;;;;;;;;;;3414:46;;;3478:10;3506:16;3540:10;3414:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3414:150:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3414:150:10;;;;2893:3;;;;;;;2851:724;;;1575:1:21;;2007;2199:1382:10;;;;;;;;;;:::o;1954:123:22:-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;1675:314:10:-;1785:11;1934:5:21;:15;;:28;1950:11;1934:28;;;;;;;;;;;;;;;;;;;;;;;;;1976:11;;;;;;;;;;;;;;;;;;;;;;;1913:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:84:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1825:9:10;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1866:9:10;1877:11;2221:1:21;2193:9;2183:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:34:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2183:34:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2183:34:21;;;;;;;;;;;;;;;;2171:9;:46;;;;;;;;:51;2236:16;;;;;;;;;;;;;;;;;;;;;;;2150:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2150:112:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1933:49:10;1947:10;1959:11;1972:9;1933:13;:49::i;:::-;1575:1:21;;2007;1675:314:10;;;:::o;1809:139:22:-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;1656:147::-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2377:146::-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o;3947:247:10:-;4112:4;4139:48;4171:15;4139:27;4153:12;4139:9;:13;;:27;;;;:::i;:::-;:31;;:48;;;;:::i;:::-;4132:55;;3947:247;;;;;:::o;4503:2657::-;4678:27;4799:19;4927:8;4983:17;5030:9;5118:30;5354:17;6196:20;4718:11;4708:36;;;:38;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4708:38:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4708:38:10;;;;;;39:16:-1;36:1;17:17;2:54;4708:38:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4708:38:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;4708:38:10;;;;;;4678:68;;4831:11;4821:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4821:33:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4821:33:10;;;;;;39:16:-1;36:1;17:17;2:54;4821:33:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4821:33:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;4821:33:10;;;;;;4799:55;;4938:1;4927:12;;4922:2148;4945:10;:17;4941:1;:21;;;4922:2148;;;5003:10;5014:1;5003:13;;;;;;;;;;;;;;;;;;;;4983:33;;5042:5;5048:1;5042:8;;;;;;;;;;;;;;;;;;;;5030:20;;5151:139;5191:4;5223:11;5213:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5213:36:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5213:36:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5213:36:10;;;;;;;;;;;;;;;;5267:9;5151:22;:139::i;:::-;5118:172;;5381:5;:18;;;;;;;;;;;;5374:42;;;5417:6;5425:9;5374:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5374:61:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5374:61:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5374:61:10;;;;;;;;;;;;;;;;5354:81;;5469:25;5453:12;:41;;5449:1359;;;5599:5;:18;;;;;;;;;;;;5592:46;;;5660:6;5688:9;5719:25;5592:170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5592:170:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5592:170:10;;;;5449:1359;;;5911:1;5896:12;:16;5892:236;;;5943:5;:18;;;;;;;;;;;;5936:46;;;6008:6;6040:9;6075:12;5936:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5936:173:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5936:173:10;;;;5892:236;6219:43;6249:12;6219:25;:29;;:43;;;;:::i;:::-;6196:66;;6375:5;:26;;;;;;;;;;;;6360:58;;;6440:6;6468:9;6499:43;6529:12;6499:25;:29;;:43;;;;:::i;:::-;6360:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6360:200:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6360:200:10;;;;6729:9;6648:145;;6696:11;6648:145;;;6760:15;6648:145;;;;;;;;;;;;;;;;;;5449:1359;6907:5;:18;;;;;;;;;;;;6900:46;;;6964:11;6993:9;7020:25;6900:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6900:159:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6900:159:10;;;;4964:3;;;;;;;4922:2148;;;7117:11;7107:27;;;7135:6;7143:9;7107:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7107:46:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7107:46:10;;;;4503:2657;;;;;;;;;;;:::o;658:272:38:-;716:7;924:1;920;:5;;;;;;;;913:12;;658:272;;;;:::o;203:373::-;261:9;492:1;487;:6;483:35;;;510:1;503:8;;;;483:35;532:1;528;:5;524:9;;555:1;550;546;:5;;;;;;;;:10;539:18;;;;;;570:1;563:8;;203:373;;;;;:::o;1042:110::-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { CoreModifiers } from \"../lib/CoreSharedModifiers.sol\";\nimport { CoreState } from \"../lib/CoreState.sol\";\nimport { ISetToken } from \"../interfaces/ISetToken.sol\";\nimport { ITransferProxy } from \"../interfaces/ITransferProxy.sol\";\nimport { IVault } from \"../interfaces/IVault.sol\";\n\n\n/**\n * @title Core Issuance\n * @author Set Protocol\n *\n * The CoreIssuance contract contains public set token operations\n */\ncontract CoreIssuance is\n CoreState,\n CoreModifiers\n{\n // Use SafeMath library for all uint256 arithmetic\n using SafeMath for uint256;\n\n /* ============ Events ============ */\n\n event IssuanceComponentDeposited(\n address indexed _setToken,\n address indexed _component,\n uint _quantity\n );\n\n /* ============ Public Functions ============ */\n\n /**\n * Exchanges components for Set Tokens\n *\n * @param _setAddress Address of set to issue\n * @param _quantity Quantity of set to issue\n */\n function issue(\n address _setAddress,\n uint _quantity\n )\n external\n isValidSet(_setAddress)\n isPositiveQuantity(_quantity)\n isNaturalUnitMultiple(_quantity, _setAddress)\n {\n // Run issueInternal\n issueInternal(msg.sender, _setAddress, _quantity);\n }\n\n /**\n * Function to convert Set Tokens into underlying components\n *\n * @param _setAddress The address of the Set token\n * @param _quantity The number of tokens to redeem\n */\n function redeem(\n address _setAddress,\n uint _quantity\n )\n external\n isValidSet(_setAddress)\n isPositiveQuantity(_quantity)\n isNaturalUnitMultiple(_quantity, _setAddress)\n {\n // Burn the Set token (thereby decrementing the SetToken balance)\n ISetToken(_setAddress).burn(msg.sender, _quantity);\n\n uint naturalUnit = ISetToken(_setAddress).naturalUnit();\n\n // Transfer the underlying tokens to the corresponding token balances\n address[] memory components = ISetToken(_setAddress).getComponents();\n uint[] memory units = ISetToken(_setAddress).getUnits();\n for (uint16 i = 0; i < components.length; i++) {\n address currentComponent = components[i];\n uint currentUnit = units[i];\n\n uint tokenValue = calculateTransferValue(\n currentUnit,\n naturalUnit,\n _quantity\n );\n\n // Decrement the Set amount\n IVault(state.vaultAddress).decrementTokenOwner(\n _setAddress,\n currentComponent,\n tokenValue\n );\n\n // Increment the component amount\n IVault(state.vaultAddress).incrementTokenOwner(\n msg.sender,\n currentComponent,\n tokenValue\n );\n }\n }\n\n /* ============ Private Functions ============ */\n\n /**\n * Function to calculate the transfer value of a component given quantity of Set\n *\n * @param _componentUnits The units of the component token\n * @param _naturalUnit The natural unit of the Set token\n * @param _quantity The number of tokens being redeem\n */\n function calculateTransferValue(\n uint _componentUnits,\n uint _naturalUnit,\n uint _quantity\n )\n pure\n internal\n returns(uint)\n {\n return _quantity.div(_naturalUnit).mul(_componentUnits);\n }\n\n /* ============ Internal Functions ============ */\n\n /**\n * Exchanges components for Set Tokens, accepting any owner\n *\n * @param _owner Address to issue set to\n * @param _setAddress Address of set to issue\n * @param _quantity Quantity of set to issue\n */\n function issueInternal(\n address _owner,\n address _setAddress,\n uint _quantity\n )\n internal\n {\n // Fetch set token components\n address[] memory components = ISetToken(_setAddress).getComponents();\n // Fetch set token component units\n uint[] memory units = ISetToken(_setAddress).getUnits();\n\n // Inspect vault for required component quantity\n for (uint16 i = 0; i < components.length; i++) {\n address component = components[i];\n uint unit = units[i];\n\n // Calculate required component quantity\n uint requiredComponentQuantity = calculateTransferValue(\n unit,\n ISetToken(_setAddress).naturalUnit(),\n _quantity\n );\n\n // Fetch component quantity in vault\n uint vaultBalance = IVault(state.vaultAddress).getOwnerBalance(_owner, component);\n if (vaultBalance >= requiredComponentQuantity) {\n // Decrement vault balance by the required component quantity\n IVault(state.vaultAddress).decrementTokenOwner(\n _owner,\n component,\n requiredComponentQuantity\n );\n } else {\n // User has less than required amount, decrement the vault by full balance\n if (vaultBalance > 0) {\n IVault(state.vaultAddress).decrementTokenOwner(\n _owner,\n component,\n vaultBalance\n );\n }\n\n // Calculate remainder to deposit\n uint amountToDeposit = requiredComponentQuantity.sub(vaultBalance);\n\n // Transfer the remainder component quantity required to vault\n ITransferProxy(state.transferProxyAddress).transferToVault(\n _owner,\n component,\n requiredComponentQuantity.sub(vaultBalance)\n );\n\n // Log transfer of component from issuer waller\n emit IssuanceComponentDeposited(\n _setAddress,\n component,\n amountToDeposit\n );\n }\n\n // Increment the vault balance of the set token for the component\n IVault(state.vaultAddress).incrementTokenOwner(\n _setAddress,\n component,\n requiredComponentQuantity\n );\n }\n\n // Issue set token\n ISetToken(_setAddress).mint(_owner, _quantity);\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuance.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuance.sol", + "exportedSymbols": { + "CoreIssuance": [ + 1696 + ] + }, + "id": 1697, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1361, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:10" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 1363, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 4739, + "src": "622:73:10", + "symbolAliases": [ + { + "foreign": 1362, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1365, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2639, + "src": "696:63:10", + "symbolAliases": [ + { + "foreign": 1364, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1367, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2752, + "src": "760:49:10", + "symbolAliases": [ + { + "foreign": 1366, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", + "file": "../interfaces/ISetToken.sol", + "id": 1369, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2505, + "src": "810:56:10", + "symbolAliases": [ + { + "foreign": 1368, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ITransferProxy.sol", + "file": "../interfaces/ITransferProxy.sol", + "id": 1371, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2517, + "src": "867:66:10", + "symbolAliases": [ + { + "foreign": 1370, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IVault.sol", + "file": "../interfaces/IVault.sol", + "id": 1373, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2556, + "src": "934:50:10", + "symbolAliases": [ + { + "foreign": 1372, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1374, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1141:9:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1375, + "nodeType": "InheritanceSpecifier", + "src": "1141:9:10" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1376, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1156:13:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1377, + "nodeType": "InheritanceSpecifier", + "src": "1156:13:10" + } + ], + "contractDependencies": [ + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Issuance\n@author Set Protocol\n * The CoreIssuance contract contains public set token operations", + "fullyImplemented": true, + "id": 1696, + "linearizedBaseContracts": [ + 1696, + 2638, + 2751 + ], + "name": "CoreIssuance", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1380, + "libraryName": { + "contractScope": null, + "id": 1378, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1237:8:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1231:27:10", + "typeName": { + "id": 1379, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1250:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 1388, + "name": "IssuanceComponentDeposited", + "nodeType": "EventDefinition", + "parameters": { + "id": 1387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1382, + "indexed": true, + "name": "_setToken", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "1350:25:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1381, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1350:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1384, + "indexed": true, + "name": "_component", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "1385:26:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1385:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "indexed": false, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "1421:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1385, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1421:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1340:101:10" + }, + "src": "1308:134:10" + }, + { + "body": { + "id": 1412, + "nodeType": "Block", + "src": "1894:95:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1406, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1947:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1947:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1408, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1959:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1409, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "1972:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1405, + "name": "issueInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1695, + "src": "1933:13:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1933:49:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1411, + "nodeType": "ExpressionStatement", + "src": "1933:49:10" + } + ] + }, + "documentation": "Exchanges components for Set Tokens\n * @param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue", + "id": 1413, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1395, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1785:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1396, + "modifierName": { + "argumentTypes": null, + "id": 1394, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "1774:10:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1774:23:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1398, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "1825:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1399, + "modifierName": { + "argumentTypes": null, + "id": 1397, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "1806:18:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1806:29:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1401, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "1866:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1402, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1877:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1403, + "modifierName": { + "argumentTypes": null, + "id": 1400, + "name": "isNaturalUnitMultiple", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2637, + "src": "1844:21:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1844:45:10" + } + ], + "name": "issue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1390, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1413, + "src": "1699:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1699:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1392, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1413, + "src": "1728:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1391, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1728:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1689:59:10" + }, + "payable": false, + "returnParameters": { + "id": 1404, + "nodeType": "ParameterList", + "parameters": [], + "src": "1894:0:10" + }, + "scope": 1696, + "src": "1675:314:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1521, + "nodeType": "Block", + "src": "2419:1162:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1434, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2531:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2531:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1436, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2543:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1431, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2513:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1430, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2503:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2503:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 2503, + "src": "2503:27:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2503:50:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1438, + "nodeType": "ExpressionStatement", + "src": "2503:50:10" + }, + { + "assignments": [ + 1440 + ], + "declarations": [ + { + "constant": false, + "id": 1440, + "name": "naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2564:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1439, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2564:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1446, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1442, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2593:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1441, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2583:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2583:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "naturalUnit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "2583:34:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2583:36:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2564:55:10" + }, + { + "assignments": [ + 1450 + ], + "declarations": [ + { + "constant": false, + "id": 1450, + "name": "components", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2708:27:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1448, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2708:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1449, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2708:9:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1456, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1452, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2748:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1451, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2738:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2738:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getComponents", + "nodeType": "MemberAccess", + "referencedDeclaration": 2483, + "src": "2738:36:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function () external returns (address[] memory)" + } + }, + "id": 1455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2738:38:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2708:68:10" + }, + { + "assignments": [ + 1460 + ], + "declarations": [ + { + "constant": false, + "id": 1460, + "name": "units", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2786:19:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1458, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2786:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1459, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2786:6:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1466, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1462, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2818:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1461, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2808:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2808:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUnits", + "nodeType": "MemberAccess", + "referencedDeclaration": 2489, + "src": "2808:31:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function () external returns (uint256[] memory)" + } + }, + "id": 1465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2808:33:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2786:55:10" + }, + { + "body": { + "id": 1519, + "nodeType": "Block", + "src": "2898:677:10", + "statements": [ + { + "assignments": [ + 1479 + ], + "declarations": [ + { + "constant": false, + "id": 1479, + "name": "currentComponent", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2912:24:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1478, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2912:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1483, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1480, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "2939:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1482, + "indexExpression": { + "argumentTypes": null, + "id": 1481, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2950:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2939:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2912:40:10" + }, + { + "assignments": [ + 1485 + ], + "declarations": [ + { + "constant": false, + "id": 1485, + "name": "currentUnit", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2966:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1484, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2966:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1489, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1486, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "2985:5:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1488, + "indexExpression": { + "argumentTypes": null, + "id": 1487, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2991:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2985:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2966:27:10" + }, + { + "assignments": [ + 1491 + ], + "declarations": [ + { + "constant": false, + "id": 1491, + "name": "tokenValue", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "3008:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1490, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3008:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1493, + "name": "currentUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1485, + "src": "3066:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1494, + "name": "naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1440, + "src": "3095:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1495, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "3124:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1492, + "name": "calculateTransferValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "3026:22:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3026:121:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3008:139:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1503, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "3266:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1504, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "3295:16:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1505, + "name": "tokenValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "3329:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1499, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "3209:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1500, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "3209:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1498, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3202:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3202:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "3202:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3202:151:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1507, + "nodeType": "ExpressionStatement", + "src": "3202:151:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1513, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "3478:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3478:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1515, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "3506:16:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1516, + "name": "tokenValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "3540:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1509, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "3421:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "3421:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1508, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3414:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "incrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2536, + "src": "3414:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:150:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1518, + "nodeType": "ExpressionStatement", + "src": "3414:150:10" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1471, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2870:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1472, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "2874:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2874:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2870:21:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1520, + "initializationExpression": { + "assignments": [ + 1468 + ], + "declarations": [ + { + "constant": false, + "id": 1468, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2856:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1467, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2856:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1470, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2867:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2856:12:10" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2893:3:10", + "subExpression": { + "argumentTypes": null, + "id": 1475, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2893:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 1477, + "nodeType": "ExpressionStatement", + "src": "2893:3:10" + }, + "nodeType": "ForStatement", + "src": "2851:724:10" + } + ] + }, + "documentation": "Function to convert Set Tokens into underlying components\n * @param _setAddress The address of the Set token\n@param _quantity The number of tokens to redeem", + "id": 1522, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1420, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2310:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1421, + "modifierName": { + "argumentTypes": null, + "id": 1419, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "2299:10:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2299:23:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1423, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2350:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1424, + "modifierName": { + "argumentTypes": null, + "id": 1422, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "2331:18:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2331:29:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1426, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2391:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1427, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2402:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1428, + "modifierName": { + "argumentTypes": null, + "id": 1425, + "name": "isNaturalUnitMultiple", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2637, + "src": "2369:21:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2369:45:10" + } + ], + "name": "redeem", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1415, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2224:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2224:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1417, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2253:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1416, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2253:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2214:59:10" + }, + "payable": false, + "returnParameters": { + "id": 1429, + "nodeType": "ParameterList", + "parameters": [], + "src": "2419:0:10" + }, + "scope": 1696, + "src": "2199:1382:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1541, + "nodeType": "Block", + "src": "4122:72:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1538, + "name": "_componentUnits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1524, + "src": "4171:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1535, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1526, + "src": "4153:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1533, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1528, + "src": "4139:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 4693, + "src": "4139:13:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4139:27:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4679, + "src": "4139:31:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4139:48:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1532, + "id": 1540, + "nodeType": "Return", + "src": "4132:55:10" + } + ] + }, + "documentation": "Function to calculate the transfer value of a component given quantity of Set\n * @param _componentUnits The units of the component token\n@param _naturalUnit The natural unit of the Set token\n@param _quantity The number of tokens being redeem", + "id": 1542, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "calculateTransferValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1524, + "name": "_componentUnits", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "3988:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3988:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1526, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "4018:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1525, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4018:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1528, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "4045:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1527, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4045:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:87:10" + }, + "payable": false, + "returnParameters": { + "id": 1532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1531, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "4112:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1530, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4112:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4111:6:10" + }, + "scope": 1696, + "src": "3947:247:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1694, + "nodeType": "Block", + "src": "4630:2530:10", + "statements": [ + { + "assignments": [ + 1554 + ], + "declarations": [ + { + "constant": false, + "id": 1554, + "name": "components", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4678:27:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1552, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4678:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1553, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4678:9:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1560, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1556, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "4718:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1555, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "4708:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4708:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getComponents", + "nodeType": "MemberAccess", + "referencedDeclaration": 2483, + "src": "4708:36:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function () external returns (address[] memory)" + } + }, + "id": 1559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4708:38:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4678:68:10" + }, + { + "assignments": [ + 1564 + ], + "declarations": [ + { + "constant": false, + "id": 1564, + "name": "units", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4799:19:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1562, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4799:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1563, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4799:6:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1570, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1566, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "4831:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1565, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "4821:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4821:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUnits", + "nodeType": "MemberAccess", + "referencedDeclaration": 2489, + "src": "4821:31:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function () external returns (uint256[] memory)" + } + }, + "id": 1569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4821:33:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4799:55:10" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "4969:2101:10", + "statements": [ + { + "assignments": [ + 1583 + ], + "declarations": [ + { + "constant": false, + "id": 1583, + "name": "component", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4983:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1582, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4983:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1587, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1584, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "5003:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1586, + "indexExpression": { + "argumentTypes": null, + "id": 1585, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "5014:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5003:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4983:33:10" + }, + { + "assignments": [ + 1589 + ], + "declarations": [ + { + "constant": false, + "id": 1589, + "name": "unit", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "5030:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1588, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5030:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1593, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1590, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "5042:5:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1592, + "indexExpression": { + "argumentTypes": null, + "id": 1591, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "5048:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5042:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5030:20:10" + }, + { + "assignments": [ + 1595 + ], + "declarations": [ + { + "constant": false, + "id": 1595, + "name": "requiredComponentQuantity", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "5118:30:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1594, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5118:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1605, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1597, + "name": "unit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1589, + "src": "5191:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1599, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "5223:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1598, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "5213:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5213:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "naturalUnit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "5213:34:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 1602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5213:36:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1603, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1548, + "src": "5267:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1596, + "name": "calculateTransferValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "5151:22:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5151:139:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5118:172:10" + }, + { + "assignments": [ + 1607 + ], + "declarations": [ + { + "constant": false, + "id": 1607, + "name": "vaultBalance", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "5354:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1606, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5354:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1616, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1613, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "5417:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1614, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "5425:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1609, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5381:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1610, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5381:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1608, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5374:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5374:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getOwnerBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2554, + "src": "5374:42:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) external returns (uint256)" + } + }, + "id": 1615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5374:61:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5354:81:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1617, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "5453:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1618, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "5469:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5453:41:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1672, + "nodeType": "Block", + "src": "5783:1025:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1631, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "5896:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5911:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5896:16:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1645, + "nodeType": "IfStatement", + "src": "5892:236:10", + "trueBody": { + "id": 1644, + "nodeType": "Block", + "src": "5914:214:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1639, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "6008:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1640, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6040:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1641, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "6075:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1635, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5943:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1636, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5943:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1634, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5936:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5936:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "5936:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5936:173:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1643, + "nodeType": "ExpressionStatement", + "src": "5936:173:10" + } + ] + } + }, + { + "assignments": [ + 1647 + ], + "declarations": [ + { + "constant": false, + "id": 1647, + "name": "amountToDeposit", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "6196:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1646, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6196:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1652, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1650, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "6249:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1648, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "6219:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "6219:29:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6219:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6196:66:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1658, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "6440:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1659, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6468:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1662, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "6529:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1660, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "6499:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "6499:29:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6499:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1654, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "6375:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "6375:26:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1653, + "name": "ITransferProxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "6360:14:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ITransferProxy_$2516_$", + "typeString": "type(contract ITransferProxy)" + } + }, + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6360:42:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITransferProxy_$2516", + "typeString": "contract ITransferProxy" + } + }, + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferToVault", + "nodeType": "MemberAccess", + "referencedDeclaration": 2515, + "src": "6360:58:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6360:200:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1665, + "nodeType": "ExpressionStatement", + "src": "6360:200:10" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1667, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "6696:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1668, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6729:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1669, + "name": "amountToDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1647, + "src": "6760:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1666, + "name": "IssuanceComponentDeposited", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1388, + "src": "6648:26:10", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6648:145:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1671, + "nodeType": "EmitStatement", + "src": "6643:150:10" + } + ] + }, + "id": 1673, + "nodeType": "IfStatement", + "src": "5449:1359:10", + "trueBody": { + "id": 1630, + "nodeType": "Block", + "src": "5496:281:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1625, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "5660:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1626, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "5688:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1627, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "5719:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1621, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5599:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1622, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5599:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1620, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5592:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5592:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "5592:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5592:170:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1629, + "nodeType": "ExpressionStatement", + "src": "5592:170:10" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1679, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "6964:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1680, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6993:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1681, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "7020:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1675, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "6907:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1676, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "6907:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1674, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "6900:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6900:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "incrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2536, + "src": "6900:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6900:159:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1683, + "nodeType": "ExpressionStatement", + "src": "6900:159:10" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1575, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "4941:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1576, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "4945:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4945:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4941:21:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1685, + "initializationExpression": { + "assignments": [ + 1572 + ], + "declarations": [ + { + "constant": false, + "id": 1572, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4927:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1571, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4927:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1574, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4938:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4927:12:10" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4964:3:10", + "subExpression": { + "argumentTypes": null, + "id": 1579, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "4964:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 1581, + "nodeType": "ExpressionStatement", + "src": "4964:3:10" + }, + "nodeType": "ForStatement", + "src": "4922:2148:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1690, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "7135:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1691, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1548, + "src": "7143:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1687, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "7117:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1686, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "7107:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7107:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 2496, + "src": "7107:27:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7107:46:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1693, + "nodeType": "ExpressionStatement", + "src": "7107:46:10" + } + ] + }, + "documentation": "Exchanges components for Set Tokens, accepting any owner\n * @param _owner Address to issue set to\n@param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue", + "id": 1695, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "issueInternal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1544, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4535:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1543, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4535:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1546, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4559:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4559:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1548, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4588:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1547, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4588:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4525:83:10" + }, + "payable": false, + "returnParameters": { + "id": 1550, + "nodeType": "ParameterList", + "parameters": [], + "src": "4630:0:10" + }, + "scope": 1696, + "src": "4503:2657:10", + "stateMutability": "nonpayable", + "superFunction": 2434, + "visibility": "internal" + } + ], + "scope": 1697, + "src": "1112:6050:10" + } + ], + "src": "597:6566:10" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuance.sol", + "exportedSymbols": { + "CoreIssuance": [ + 1696 + ] + }, + "id": 1697, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1361, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:10" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 1363, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 4739, + "src": "622:73:10", + "symbolAliases": [ + { + "foreign": 1362, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1365, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2639, + "src": "696:63:10", + "symbolAliases": [ + { + "foreign": 1364, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1367, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2752, + "src": "760:49:10", + "symbolAliases": [ + { + "foreign": 1366, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", + "file": "../interfaces/ISetToken.sol", + "id": 1369, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2505, + "src": "810:56:10", + "symbolAliases": [ + { + "foreign": 1368, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ITransferProxy.sol", + "file": "../interfaces/ITransferProxy.sol", + "id": 1371, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2517, + "src": "867:66:10", + "symbolAliases": [ + { + "foreign": 1370, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IVault.sol", + "file": "../interfaces/IVault.sol", + "id": 1373, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2556, + "src": "934:50:10", + "symbolAliases": [ + { + "foreign": 1372, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1374, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1141:9:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1375, + "nodeType": "InheritanceSpecifier", + "src": "1141:9:10" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1376, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1156:13:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1377, + "nodeType": "InheritanceSpecifier", + "src": "1156:13:10" + } + ], + "contractDependencies": [ + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Issuance\n@author Set Protocol\n * The CoreIssuance contract contains public set token operations", + "fullyImplemented": true, + "id": 1696, + "linearizedBaseContracts": [ + 1696, + 2638, + 2751 + ], + "name": "CoreIssuance", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1380, + "libraryName": { + "contractScope": null, + "id": 1378, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1237:8:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1231:27:10", + "typeName": { + "id": 1379, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1250:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 1388, + "name": "IssuanceComponentDeposited", + "nodeType": "EventDefinition", + "parameters": { + "id": 1387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1382, + "indexed": true, + "name": "_setToken", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "1350:25:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1381, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1350:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1384, + "indexed": true, + "name": "_component", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "1385:26:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1385:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "indexed": false, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "1421:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1385, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1421:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1340:101:10" + }, + "src": "1308:134:10" + }, + { + "body": { + "id": 1412, + "nodeType": "Block", + "src": "1894:95:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1406, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1947:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1947:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1408, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1959:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1409, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "1972:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1405, + "name": "issueInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1695, + "src": "1933:13:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1933:49:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1411, + "nodeType": "ExpressionStatement", + "src": "1933:49:10" + } + ] + }, + "documentation": "Exchanges components for Set Tokens\n * @param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue", + "id": 1413, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1395, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1785:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1396, + "modifierName": { + "argumentTypes": null, + "id": 1394, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "1774:10:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1774:23:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1398, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "1825:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1399, + "modifierName": { + "argumentTypes": null, + "id": 1397, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "1806:18:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1806:29:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1401, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "1866:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1402, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1877:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1403, + "modifierName": { + "argumentTypes": null, + "id": 1400, + "name": "isNaturalUnitMultiple", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2637, + "src": "1844:21:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1844:45:10" + } + ], + "name": "issue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1390, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1413, + "src": "1699:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1699:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1392, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1413, + "src": "1728:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1391, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1728:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1689:59:10" + }, + "payable": false, + "returnParameters": { + "id": 1404, + "nodeType": "ParameterList", + "parameters": [], + "src": "1894:0:10" + }, + "scope": 1696, + "src": "1675:314:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1521, + "nodeType": "Block", + "src": "2419:1162:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1434, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2531:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2531:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1436, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2543:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1431, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2513:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1430, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2503:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2503:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 2503, + "src": "2503:27:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2503:50:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1438, + "nodeType": "ExpressionStatement", + "src": "2503:50:10" + }, + { + "assignments": [ + 1440 + ], + "declarations": [ + { + "constant": false, + "id": 1440, + "name": "naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2564:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1439, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2564:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1446, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1442, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2593:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1441, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2583:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2583:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "naturalUnit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "2583:34:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2583:36:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2564:55:10" + }, + { + "assignments": [ + 1450 + ], + "declarations": [ + { + "constant": false, + "id": 1450, + "name": "components", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2708:27:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1448, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2708:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1449, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2708:9:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1456, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1452, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2748:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1451, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2738:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2738:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getComponents", + "nodeType": "MemberAccess", + "referencedDeclaration": 2483, + "src": "2738:36:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function () external returns (address[] memory)" + } + }, + "id": 1455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2738:38:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2708:68:10" + }, + { + "assignments": [ + 1460 + ], + "declarations": [ + { + "constant": false, + "id": 1460, + "name": "units", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2786:19:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1458, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2786:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1459, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2786:6:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1466, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1462, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2818:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1461, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2808:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2808:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUnits", + "nodeType": "MemberAccess", + "referencedDeclaration": 2489, + "src": "2808:31:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function () external returns (uint256[] memory)" + } + }, + "id": 1465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2808:33:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2786:55:10" + }, + { + "body": { + "id": 1519, + "nodeType": "Block", + "src": "2898:677:10", + "statements": [ + { + "assignments": [ + 1479 + ], + "declarations": [ + { + "constant": false, + "id": 1479, + "name": "currentComponent", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2912:24:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1478, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2912:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1483, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1480, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "2939:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1482, + "indexExpression": { + "argumentTypes": null, + "id": 1481, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2950:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2939:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2912:40:10" + }, + { + "assignments": [ + 1485 + ], + "declarations": [ + { + "constant": false, + "id": 1485, + "name": "currentUnit", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2966:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1484, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2966:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1489, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1486, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "2985:5:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1488, + "indexExpression": { + "argumentTypes": null, + "id": 1487, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2991:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2985:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2966:27:10" + }, + { + "assignments": [ + 1491 + ], + "declarations": [ + { + "constant": false, + "id": 1491, + "name": "tokenValue", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "3008:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1490, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3008:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1493, + "name": "currentUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1485, + "src": "3066:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1494, + "name": "naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1440, + "src": "3095:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1495, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "3124:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1492, + "name": "calculateTransferValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "3026:22:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3026:121:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3008:139:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1503, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "3266:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1504, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "3295:16:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1505, + "name": "tokenValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "3329:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1499, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "3209:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1500, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "3209:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1498, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3202:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3202:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "3202:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3202:151:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1507, + "nodeType": "ExpressionStatement", + "src": "3202:151:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1513, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "3478:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3478:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1515, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "3506:16:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1516, + "name": "tokenValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "3540:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1509, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "3421:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "3421:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1508, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3414:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "incrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2536, + "src": "3414:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:150:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1518, + "nodeType": "ExpressionStatement", + "src": "3414:150:10" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1471, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2870:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1472, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "2874:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2874:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2870:21:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1520, + "initializationExpression": { + "assignments": [ + 1468 + ], + "declarations": [ + { + "constant": false, + "id": 1468, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2856:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1467, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2856:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1470, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2867:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2856:12:10" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2893:3:10", + "subExpression": { + "argumentTypes": null, + "id": 1475, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2893:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 1477, + "nodeType": "ExpressionStatement", + "src": "2893:3:10" + }, + "nodeType": "ForStatement", + "src": "2851:724:10" + } + ] + }, + "documentation": "Function to convert Set Tokens into underlying components\n * @param _setAddress The address of the Set token\n@param _quantity The number of tokens to redeem", + "id": 1522, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1420, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2310:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1421, + "modifierName": { + "argumentTypes": null, + "id": 1419, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "2299:10:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2299:23:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1423, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2350:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1424, + "modifierName": { + "argumentTypes": null, + "id": 1422, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "2331:18:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2331:29:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1426, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2391:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1427, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2402:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1428, + "modifierName": { + "argumentTypes": null, + "id": 1425, + "name": "isNaturalUnitMultiple", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2637, + "src": "2369:21:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2369:45:10" + } + ], + "name": "redeem", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1415, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2224:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2224:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1417, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2253:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1416, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2253:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2214:59:10" + }, + "payable": false, + "returnParameters": { + "id": 1429, + "nodeType": "ParameterList", + "parameters": [], + "src": "2419:0:10" + }, + "scope": 1696, + "src": "2199:1382:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1541, + "nodeType": "Block", + "src": "4122:72:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1538, + "name": "_componentUnits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1524, + "src": "4171:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1535, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1526, + "src": "4153:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1533, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1528, + "src": "4139:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 4693, + "src": "4139:13:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4139:27:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4679, + "src": "4139:31:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4139:48:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1532, + "id": 1540, + "nodeType": "Return", + "src": "4132:55:10" + } + ] + }, + "documentation": "Function to calculate the transfer value of a component given quantity of Set\n * @param _componentUnits The units of the component token\n@param _naturalUnit The natural unit of the Set token\n@param _quantity The number of tokens being redeem", + "id": 1542, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "calculateTransferValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1524, + "name": "_componentUnits", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "3988:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3988:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1526, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "4018:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1525, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4018:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1528, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "4045:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1527, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4045:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:87:10" + }, + "payable": false, + "returnParameters": { + "id": 1532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1531, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "4112:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1530, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4112:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4111:6:10" + }, + "scope": 1696, + "src": "3947:247:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1694, + "nodeType": "Block", + "src": "4630:2530:10", + "statements": [ + { + "assignments": [ + 1554 + ], + "declarations": [ + { + "constant": false, + "id": 1554, + "name": "components", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4678:27:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1552, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4678:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1553, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4678:9:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1560, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1556, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "4718:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1555, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "4708:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4708:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getComponents", + "nodeType": "MemberAccess", + "referencedDeclaration": 2483, + "src": "4708:36:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function () external returns (address[] memory)" + } + }, + "id": 1559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4708:38:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4678:68:10" + }, + { + "assignments": [ + 1564 + ], + "declarations": [ + { + "constant": false, + "id": 1564, + "name": "units", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4799:19:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1562, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4799:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1563, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4799:6:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1570, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1566, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "4831:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1565, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "4821:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4821:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUnits", + "nodeType": "MemberAccess", + "referencedDeclaration": 2489, + "src": "4821:31:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function () external returns (uint256[] memory)" + } + }, + "id": 1569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4821:33:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4799:55:10" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "4969:2101:10", + "statements": [ + { + "assignments": [ + 1583 + ], + "declarations": [ + { + "constant": false, + "id": 1583, + "name": "component", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4983:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1582, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4983:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1587, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1584, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "5003:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1586, + "indexExpression": { + "argumentTypes": null, + "id": 1585, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "5014:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5003:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4983:33:10" + }, + { + "assignments": [ + 1589 + ], + "declarations": [ + { + "constant": false, + "id": 1589, + "name": "unit", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "5030:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1588, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5030:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1593, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1590, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "5042:5:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1592, + "indexExpression": { + "argumentTypes": null, + "id": 1591, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "5048:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5042:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5030:20:10" + }, + { + "assignments": [ + 1595 + ], + "declarations": [ + { + "constant": false, + "id": 1595, + "name": "requiredComponentQuantity", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "5118:30:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1594, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5118:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1605, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1597, + "name": "unit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1589, + "src": "5191:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1599, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "5223:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1598, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "5213:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5213:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "naturalUnit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "5213:34:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 1602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5213:36:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1603, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1548, + "src": "5267:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1596, + "name": "calculateTransferValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "5151:22:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5151:139:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5118:172:10" + }, + { + "assignments": [ + 1607 + ], + "declarations": [ + { + "constant": false, + "id": 1607, + "name": "vaultBalance", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "5354:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1606, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5354:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1616, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1613, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "5417:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1614, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "5425:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1609, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5381:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1610, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5381:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1608, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5374:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5374:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getOwnerBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2554, + "src": "5374:42:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) external returns (uint256)" + } + }, + "id": 1615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5374:61:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5354:81:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1617, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "5453:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1618, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "5469:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5453:41:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1672, + "nodeType": "Block", + "src": "5783:1025:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1631, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "5896:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5911:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5896:16:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1645, + "nodeType": "IfStatement", + "src": "5892:236:10", + "trueBody": { + "id": 1644, + "nodeType": "Block", + "src": "5914:214:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1639, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "6008:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1640, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6040:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1641, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "6075:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1635, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5943:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1636, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5943:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1634, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5936:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5936:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "5936:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5936:173:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1643, + "nodeType": "ExpressionStatement", + "src": "5936:173:10" + } + ] + } + }, + { + "assignments": [ + 1647 + ], + "declarations": [ + { + "constant": false, + "id": 1647, + "name": "amountToDeposit", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "6196:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1646, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6196:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1652, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1650, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "6249:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1648, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "6219:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "6219:29:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6219:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6196:66:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1658, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "6440:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1659, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6468:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1662, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "6529:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1660, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "6499:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "6499:29:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6499:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1654, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "6375:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "6375:26:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1653, + "name": "ITransferProxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "6360:14:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ITransferProxy_$2516_$", + "typeString": "type(contract ITransferProxy)" + } + }, + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6360:42:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITransferProxy_$2516", + "typeString": "contract ITransferProxy" + } + }, + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferToVault", + "nodeType": "MemberAccess", + "referencedDeclaration": 2515, + "src": "6360:58:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6360:200:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1665, + "nodeType": "ExpressionStatement", + "src": "6360:200:10" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1667, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "6696:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1668, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6729:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1669, + "name": "amountToDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1647, + "src": "6760:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1666, + "name": "IssuanceComponentDeposited", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1388, + "src": "6648:26:10", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6648:145:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1671, + "nodeType": "EmitStatement", + "src": "6643:150:10" + } + ] + }, + "id": 1673, + "nodeType": "IfStatement", + "src": "5449:1359:10", + "trueBody": { + "id": 1630, + "nodeType": "Block", + "src": "5496:281:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1625, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "5660:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1626, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "5688:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1627, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "5719:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1621, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5599:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1622, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5599:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1620, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5592:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5592:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "5592:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5592:170:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1629, + "nodeType": "ExpressionStatement", + "src": "5592:170:10" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1679, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "6964:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1680, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6993:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1681, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "7020:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1675, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "6907:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1676, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "6907:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1674, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "6900:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6900:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "incrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2536, + "src": "6900:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6900:159:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1683, + "nodeType": "ExpressionStatement", + "src": "6900:159:10" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1575, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "4941:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1576, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "4945:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4945:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4941:21:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1685, + "initializationExpression": { + "assignments": [ + 1572 + ], + "declarations": [ + { + "constant": false, + "id": 1572, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4927:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1571, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4927:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1574, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4938:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4927:12:10" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4964:3:10", + "subExpression": { + "argumentTypes": null, + "id": 1579, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "4964:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 1581, + "nodeType": "ExpressionStatement", + "src": "4964:3:10" + }, + "nodeType": "ForStatement", + "src": "4922:2148:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1690, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "7135:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1691, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1548, + "src": "7143:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1687, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "7117:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1686, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "7107:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7107:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 2496, + "src": "7107:27:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7107:46:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1693, + "nodeType": "ExpressionStatement", + "src": "7107:46:10" + } + ] + }, + "documentation": "Exchanges components for Set Tokens, accepting any owner\n * @param _owner Address to issue set to\n@param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue", + "id": 1695, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "issueInternal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1544, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4535:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1543, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4535:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1546, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4559:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4559:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1548, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4588:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1547, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4588:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4525:83:10" + }, + "payable": false, + "returnParameters": { + "id": 1550, + "nodeType": "ParameterList", + "parameters": [], + "src": "4630:0:10" + }, + "scope": 1696, + "src": "4503:2657:10", + "stateMutability": "nonpayable", + "superFunction": 2434, + "visibility": "internal" + } + ], + "scope": 1697, + "src": "1112:6050:10" + } + ], + "src": "597:6566:10" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.897Z" +} \ No newline at end of file diff --git a/artifacts/json/CoreIssuanceOrder.json b/artifacts/json/CoreIssuanceOrder.json new file mode 100644 index 000000000..5d181aacc --- /dev/null +++ b/artifacts/json/CoreIssuanceOrder.json @@ -0,0 +1,10315 @@ +{ + "contractName": "CoreIssuanceOrder", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_addresses", + "type": "address[4]" + }, + { + "name": "_values", + "type": "uint256[5]" + }, + { + "name": "_fillQuantity", + "type": "uint256" + }, + { + "name": "_v", + "type": "uint8" + }, + { + "name": "_r", + "type": "bytes32" + }, + { + "name": "_s", + "type": "bytes32" + }, + { + "name": "_orderData", + "type": "bytes" + } + ], + "name": "fillOrder", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_addresses", + "type": "address[4]" + }, + { + "name": "_values", + "type": "uint256[5]" + }, + { + "name": "_cancelQuantity", + "type": "uint256" + } + ], + "name": "cancelOrder", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\npragma experimental \"ABIEncoderV2\";\n\n\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { CoreModifiers } from \"../lib/CoreSharedModifiers.sol\";\nimport { CoreState } from \"../lib/CoreState.sol\";\nimport { ExchangeHandler } from \"../lib/ExchangeHandler.sol\";\nimport { ICoreIssuance } from \"../interfaces/ICoreIssuance.sol\";\nimport { LibBytes } from \"../../external/LibBytes.sol\";\nimport { OrderLibrary } from \"../lib/OrderLibrary.sol\";\n\n\n/**\n * @title CoreIssuanceOrder\n * @author Set Protocol\n *\n * The Core Issuance Order extension houses all functions related to the filling and\n * canceling issuance orders.\n *\n */\ncontract CoreIssuanceOrder is\n ICoreIssuance,\n CoreState,\n CoreModifiers\n{\n using SafeMath for uint256;\n\n /* ============ Constants ============ */\n\n uint256 constant HEADER_LENGTH = 64;\n\n string constant INVALID_EXCHANGE = \"Exchange does not exist.\";\n string constant INVALID_CANCEL_ORDER = \"Only maker can cancel order.\";\n string constant INVALID_SIGNATURE = \"Invalid order signature.\";\n string constant INVALID_TOKEN_AMOUNTS = \"Quantity and makerTokenAmount should be greater than 0.\";\n string constant ORDER_EXPIRED = \"This order has expired.\";\n\n /* ============ External Functions ============ */\n\n /**\n * Fill an issuance order\n *\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n * @param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]\n * @param _fillQuantity Quantity of set to be filled\n * @param _v v element of ECDSA signature\n * @param _r r element of ECDSA signature\n * @param _s s element of ECDSA signature\n * @param _orderData Bytes array containing the exchange orders to execute\n */\n function fillOrder(\n address[4] _addresses,\n uint[5] _values,\n uint _fillQuantity,\n uint8 _v,\n bytes32 _r,\n bytes32 _s,\n bytes _orderData\n )\n external\n isValidSet(_addresses[0])\n isPositiveQuantity(_fillQuantity)\n isNaturalUnitMultiple(_fillQuantity, _addresses[0])\n {\n OrderLibrary.IssuanceOrder memory order = OrderLibrary.IssuanceOrder({\n setAddress: _addresses[0],\n quantity: _values[0],\n makerAddress: _addresses[1],\n makerToken: _addresses[2],\n makerTokenAmount: _values[1],\n expiration: _values[2],\n relayerToken: _addresses[3],\n relayerTokenAmount: _values[3],\n salt: _values[4],\n orderHash: OrderLibrary.generateOrderHash(\n _addresses,\n _values\n )\n });\n\n // Verify order is valid and return amount to be filled\n validateOrder(\n order,\n _fillQuantity\n );\n\n // Verify signature is authentic\n require(\n OrderLibrary.validateSignature(\n order.orderHash,\n order.makerAddress,\n _v,\n _r,\n _s\n ),\n INVALID_SIGNATURE\n );\n\n // Execute exchange orders\n executeExchangeOrders(_orderData);\n\n // TO DO: When openOrder amount functionality added these must change\n // Tally fill in orderFills mapping\n state.orderFills[order.orderHash] = state.orderFills[order.orderHash].add(_fillQuantity);\n\n //Issue Set\n issueInternal(\n order.makerAddress,\n order.setAddress,\n _fillQuantity\n );\n }\n\n /**\n * Cancel an issuance order\n *\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n * @param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]\n * @param _cancelQuantity Quantity of set to be filled\n */\n function cancelOrder(\n address[4] _addresses,\n uint[5] _values,\n uint _cancelQuantity\n )\n external\n isPositiveQuantity(_cancelQuantity)\n {\n OrderLibrary.IssuanceOrder memory order = OrderLibrary.IssuanceOrder({\n setAddress: _addresses[0],\n quantity: _values[0],\n makerAddress: _addresses[1],\n makerToken: _addresses[2],\n makerTokenAmount: _values[1],\n expiration: _values[2],\n relayerToken: _addresses[3],\n relayerTokenAmount: _values[3],\n salt: _values[4],\n orderHash: OrderLibrary.generateOrderHash(\n _addresses,\n _values\n )\n });\n\n // Make sure cancel order comes from maker\n require(order.makerAddress == msg.sender, INVALID_CANCEL_ORDER);\n\n // Verify order is valid and return amount to be cancelled\n validateOrder(\n order,\n _cancelQuantity\n );\n\n // TO DO: When openOrder amount functionality added these must change\n // Tally cancel in orderCancels mapping\n state.orderCancels[order.orderHash] = state.orderCancels[order.orderHash].add(_cancelQuantity);\n }\n\n /* ============ Private Functions ============ */\n\n /**\n * Execute the exchange orders by parsing the order data and facilitating the transfers\n *\n * @param _orderData Bytes array containing the exchange orders to execute\n */\n function executeExchangeOrders(\n bytes _orderData\n )\n private\n {\n uint256 scannedBytes;\n while (scannedBytes < _orderData.length) {\n // Read the next exchange order header\n bytes memory headerData = LibBytes.slice(\n _orderData,\n scannedBytes,\n scannedBytes.add(HEADER_LENGTH)\n );\n ExchangeHandler.OrderHeader memory header = ExchangeHandler.parseOrderHeader(\n headerData\n );\n\n // Get exchange address from state mapping based on header exchange info\n address exchange = state.exchanges[header.exchange];\n\n // Verify exchange address is registered\n require(\n exchange != address(0),\n INVALID_EXCHANGE\n );\n\n // Read the order body based on header order length info\n uint256 orderLength = header.orderLength.add(HEADER_LENGTH);\n bytes memory orderBody = LibBytes.slice(\n _orderData,\n scannedBytes.add(HEADER_LENGTH),\n scannedBytes.add(orderLength)\n );\n\n // TODO: Call Exchange\n\n // Update scanned bytes with header and body lengths\n scannedBytes = scannedBytes.add(orderLength);\n }\n }\n\n /**\n * Validate order params are still valid\n *\n * @param _order IssuanceOrder object containing order params\n * @param _fillQuantity Quantity of Set to be filled\n */\n function validateOrder(\n OrderLibrary.IssuanceOrder _order,\n uint _fillQuantity\n )\n private\n view\n {\n // Make sure makerTokenAmount and Set Token to issue is greater than 0.\n require(\n _order.makerTokenAmount > 0 && _order.quantity > 0,\n INVALID_TOKEN_AMOUNTS\n );\n // Make sure the order hasn't expired\n require(\n block.timestamp <= _order.expiration,\n ORDER_EXPIRED\n );\n // TO DO: Check to make sure quantity is multiple of natural unit\n // TO DO: Check to see if filled\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuanceOrder.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuanceOrder.sol", + "exportedSymbols": { + "CoreIssuanceOrder": [ + 2064 + ] + }, + "id": 2065, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1698, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:11" + }, + { + "id": 1699, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:11" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 1701, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 4739, + "src": "659:73:11", + "symbolAliases": [ + { + "foreign": 1700, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1703, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2639, + "src": "733:63:11", + "symbolAliases": [ + { + "foreign": 1702, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1705, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2752, + "src": "797:49:11", + "symbolAliases": [ + { + "foreign": 1704, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ExchangeHandler.sol", + "file": "../lib/ExchangeHandler.sol", + "id": 1707, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2869, + "src": "847:61:11", + "symbolAliases": [ + { + "foreign": 1706, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICoreIssuance.sol", + "file": "../interfaces/ICoreIssuance.sol", + "id": 1709, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2436, + "src": "909:64:11", + "symbolAliases": [ + { + "foreign": 1708, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "file": "../../external/LibBytes.sol", + "id": 1711, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 3108, + "src": "974:55:11", + "symbolAliases": [ + { + "foreign": 1710, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/OrderLibrary.sol", + "file": "../lib/OrderLibrary.sol", + "id": 1713, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2982, + "src": "1030:55:11", + "symbolAliases": [ + { + "foreign": 1712, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1714, + "name": "ICoreIssuance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2435, + "src": "1303:13:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICoreIssuance_$2435", + "typeString": "contract ICoreIssuance" + } + }, + "id": 1715, + "nodeType": "InheritanceSpecifier", + "src": "1303:13:11" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1716, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1322:9:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1717, + "nodeType": "InheritanceSpecifier", + "src": "1322:9:11" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1718, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1337:13:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1719, + "nodeType": "InheritanceSpecifier", + "src": "1337:13:11" + } + ], + "contractDependencies": [ + 2435, + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title CoreIssuanceOrder\n@author Set Protocol\n * The Core Issuance Order extension houses all functions related to the filling and\ncanceling issuance orders.\n ", + "fullyImplemented": false, + "id": 2064, + "linearizedBaseContracts": [ + 2064, + 2638, + 2751, + 2435 + ], + "name": "CoreIssuanceOrder", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1722, + "libraryName": { + "contractScope": null, + "id": 1720, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1363:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1357:27:11", + "typeName": { + "id": 1721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1376:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 1725, + "name": "HEADER_LENGTH", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1437:35:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1723, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3634", + "id": 1724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1470:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1728, + "name": "INVALID_EXCHANGE", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1479:61:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1726, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1479:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "45786368616e676520646f6573206e6f742065786973742e", + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1514:26:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10f19557f33751b7359fb90801bc276162b3bec07df01ad819ebdc88cb6b9ba9", + "typeString": "literal_string \"Exchange does not exist.\"" + }, + "value": "Exchange does not exist." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1731, + "name": "INVALID_CANCEL_ORDER", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1546:69:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1729, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1546:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "4f6e6c79206d616b65722063616e2063616e63656c206f726465722e", + "id": 1730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1585:30:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_20dfea250c19728ad7708562ddd39d1aeb6ed3c7b91b9fcf939ae806695fbec0", + "typeString": "literal_string \"Only maker can cancel order.\"" + }, + "value": "Only maker can cancel order." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1734, + "name": "INVALID_SIGNATURE", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1621:62:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1732, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1621:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "496e76616c6964206f72646572207369676e61747572652e", + "id": 1733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1657:26:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0bd9264828df20222816a7b62c45b8acdadb1a4d88a71d7b8927310b19371298", + "typeString": "literal_string \"Invalid order signature.\"" + }, + "value": "Invalid order signature." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1737, + "name": "INVALID_TOKEN_AMOUNTS", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1689:97:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1735, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1689:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e7469747920616e64206d616b6572546f6b656e416d6f756e742073686f756c642062652067726561746572207468616e20302e", + "id": 1736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1729:57:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1257ba6c150a3f09d68043a4396003cea2846a7fb783030e7fe366f0b3057763", + "typeString": "literal_string \"Quantity and makerTokenAmount should be greater than 0.\"" + }, + "value": "Quantity and makerTokenAmount should be greater than 0." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1740, + "name": "ORDER_EXPIRED", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1792:57:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1792:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "54686973206f726465722068617320657870697265642e", + "id": 1739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1824:25:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f81dc39ed5b9833b941e5d3d7c8154be2e213143256d344f6e98febd45c490c6", + "typeString": "literal_string \"This order has expired.\"" + }, + "value": "This order has expired." + }, + "visibility": "internal" + }, + { + "body": { + "id": 1862, + "nodeType": "Block", + "src": "2822:1439:11", + "statements": [ + { + "assignments": [ + 1778 + ], + "declarations": [ + { + "constant": false, + "id": 1778, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2832:39:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + }, + "typeName": { + "contractScope": null, + "id": 1777, + "name": "OrderLibrary.IssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2891, + "src": "2832:26:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_storage_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1814, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1781, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "2927:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1783, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2938:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2927:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1784, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "2964:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1786, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2972:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2964:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1787, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3002:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1789, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3013:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3002:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1790, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3041:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1792, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3052:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3041:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1793, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3086:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1795, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3094:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3086:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1796, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3122:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1798, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3130:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3122:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1799, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3160:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1801, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3171:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3160:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1802, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3207:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1804, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1803, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3215:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3207:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1805, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3237:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1807, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 1806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3245:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3237:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1810, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3320:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + { + "argumentTypes": null, + "id": 1811, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3348:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + ], + "expression": { + "argumentTypes": null, + "id": 1808, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "3272:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "generateOrderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2938, + "src": "3272:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$5_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address[4] memory,uint256[5] memory) pure returns (bytes32)" + } + }, + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3272:97:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1779, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "2874:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "IssuanceOrder", + "nodeType": "MemberAccess", + "referencedDeclaration": 2891, + "src": "2874:26:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_IssuanceOrder_$2891_storage_ptr_$", + "typeString": "type(struct OrderLibrary.IssuanceOrder storage pointer)" + } + }, + "id": 1813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "setAddress", + "quantity", + "makerAddress", + "makerToken", + "makerTokenAmount", + "expiration", + "relayerToken", + "relayerTokenAmount", + "salt", + "orderHash" + ], + "nodeType": "FunctionCall", + "src": "2874:506:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2832:548:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1816, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "3482:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + { + "argumentTypes": null, + "id": 1817, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "3501:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1815, + "name": "validateOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2063, + "src": "3455:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_IssuanceOrder_$2891_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct OrderLibrary.IssuanceOrder memory,uint256) view" + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3455:69:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1819, + "nodeType": "ExpressionStatement", + "src": "3455:69:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1823, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "3645:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1824, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "3645:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1825, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "3678:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2876, + "src": "3678:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1827, + "name": "_v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "3714:2:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 1828, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1754, + "src": "3734:2:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1829, + "name": "_s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1756, + "src": "3754:2:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 1821, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "3597:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "validateSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 2980, + "src": "3597:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32,address,uint8,bytes32,bytes32) pure returns (bool)" + } + }, + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3597:173:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1831, + "name": "INVALID_SIGNATURE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "3784:17:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 1820, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "3576:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3576:235:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1833, + "nodeType": "ExpressionStatement", + "src": "3576:235:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1835, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1758, + "src": "3879:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "id": 1834, + "name": "executeExchangeOrders", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "3857:21:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" + } + }, + "id": 1836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3857:33:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1837, + "nodeType": "ExpressionStatement", + "src": "3857:33:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1838, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4023:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderFills", + "nodeType": "MemberAccess", + "referencedDeclaration": 2660, + "src": "4023:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1843, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1840, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4040:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1841, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "4040:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4023:33:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1850, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "4097:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1844, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4059:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1845, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderFills", + "nodeType": "MemberAccess", + "referencedDeclaration": 2660, + "src": "4059:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1848, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1846, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4076:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1847, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "4076:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4059:33:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4059:37:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4059:52:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4023:88:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1853, + "nodeType": "ExpressionStatement", + "src": "4023:88:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1855, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4169:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1856, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2876, + "src": "4169:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1857, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4201:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "setAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2872, + "src": "4201:16:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1859, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "4231:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1854, + "name": "issueInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2434, + "src": "4142:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4142:112:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1861, + "nodeType": "ExpressionStatement", + "src": "4142:112:11" + } + ] + }, + "documentation": "Fill an issuance order\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n@param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]\n@param _fillQuantity Quantity of set to be filled\n@param _v v element of ECDSA signature\n@param _r r element of ECDSA signature\n@param _s s element of ECDSA signature\n@param _orderData Bytes array containing the exchange orders to execute", + "id": 1863, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1761, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "2701:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1763, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2712:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2701:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1764, + "modifierName": { + "argumentTypes": null, + "id": 1760, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "2690:10:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2690:25:11" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1766, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "2743:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1767, + "modifierName": { + "argumentTypes": null, + "id": 1765, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "2724:18:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2724:33:11" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1769, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "2788:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1770, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "2803:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1772, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2814:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2803:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1773, + "modifierName": { + "argumentTypes": null, + "id": 1768, + "name": "isNaturalUnitMultiple", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2637, + "src": "2766:21:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2766:51:11" + } + ], + "name": "fillOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1759, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1744, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2500:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 1741, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2500:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1743, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 1742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2508:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "2500:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1748, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2531:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 1745, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2531:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1747, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2536:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "2531:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1750, + "name": "_fillQuantity", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2556:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1749, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2556:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1752, + "name": "_v", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2584:8:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1751, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2584:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1754, + "name": "_r", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2602:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1753, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2602:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1756, + "name": "_s", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2622:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1755, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2622:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1758, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2642:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1757, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2642:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2490:174:11" + }, + "payable": false, + "returnParameters": { + "id": 1774, + "nodeType": "ParameterList", + "parameters": [], + "src": "2822:0:11" + }, + "scope": 2064, + "src": "2472:1789:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1949, + "nodeType": "Block", + "src": "4742:1070:11", + "statements": [ + { + "assignments": [ + 1882 + ], + "declarations": [ + { + "constant": false, + "id": 1882, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4752:39:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + }, + "typeName": { + "contractScope": null, + "id": 1881, + "name": "OrderLibrary.IssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2891, + "src": "4752:26:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_storage_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1918, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1885, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "4847:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1887, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4858:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4847:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1888, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "4884:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1890, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4892:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4884:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1891, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "4922:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1893, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4933:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4922:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1894, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "4961:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1896, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4972:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4961:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1897, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5006:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1899, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5014:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5006:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1900, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5042:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1902, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1901, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5050:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5042:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1903, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "5080:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1905, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5091:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5080:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1906, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5127:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1908, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5135:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5127:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1909, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5157:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1911, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5165:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5157:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1914, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "5240:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + { + "argumentTypes": null, + "id": 1915, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5268:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + ], + "expression": { + "argumentTypes": null, + "id": 1912, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "5192:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "generateOrderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2938, + "src": "5192:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$5_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address[4] memory,uint256[5] memory) pure returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5192:97:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1883, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "4794:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "IssuanceOrder", + "nodeType": "MemberAccess", + "referencedDeclaration": 2891, + "src": "4794:26:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_IssuanceOrder_$2891_storage_ptr_$", + "typeString": "type(struct OrderLibrary.IssuanceOrder storage pointer)" + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "setAddress", + "quantity", + "makerAddress", + "makerToken", + "makerTokenAmount", + "expiration", + "relayerToken", + "relayerTokenAmount", + "salt", + "orderHash" + ], + "nodeType": "FunctionCall", + "src": "4794:506:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4752:548:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1920, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5370:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1921, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2876, + "src": "5370:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1922, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5392:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5392:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5370:32:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1925, + "name": "INVALID_CANCEL_ORDER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "5404:20:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 1919, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "5362:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5362:63:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1927, + "nodeType": "ExpressionStatement", + "src": "5362:63:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1929, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5530:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + { + "argumentTypes": null, + "id": 1930, + "name": "_cancelQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "5549:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1928, + "name": "validateOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2063, + "src": "5503:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_IssuanceOrder_$2891_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct OrderLibrary.IssuanceOrder memory,uint256) view" + } + }, + "id": 1931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5503:71:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1932, + "nodeType": "ExpressionStatement", + "src": "5503:71:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1933, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5711:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1937, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderCancels", + "nodeType": "MemberAccess", + "referencedDeclaration": 2664, + "src": "5711:18:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1938, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1935, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5730:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1936, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "5730:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5711:35:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1945, + "name": "_cancelQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "5789:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1939, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5749:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1940, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderCancels", + "nodeType": "MemberAccess", + "referencedDeclaration": 2664, + "src": "5749:18:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1943, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1941, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5768:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1942, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "5768:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5749:35:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "5749:39:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5749:56:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5711:94:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1948, + "nodeType": "ExpressionStatement", + "src": "5711:94:11" + } + ] + }, + "documentation": "Cancel an issuance order\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n@param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]\n@param _cancelQuantity Quantity of set to be filled", + "id": 1950, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1876, + "name": "_cancelQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "4721:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1877, + "modifierName": { + "argumentTypes": null, + "id": 1875, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "4702:18:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4702:35:11" + } + ], + "name": "cancelOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1867, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4594:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 1864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4594:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1866, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4602:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "4594:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4625:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 1868, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4625:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1870, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 1869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4630:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "4625:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1873, + "name": "_cancelQuantity", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4650:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1872, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4650:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4584:92:11" + }, + "payable": false, + "returnParameters": { + "id": 1878, + "nodeType": "ParameterList", + "parameters": [], + "src": "4742:0:11" + }, + "scope": 2064, + "src": "4564:1248:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2032, + "nodeType": "Block", + "src": "6152:1264:11", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 1956, + "name": "scannedBytes", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6162:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6162:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1957, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6162:20:11" + }, + { + "body": { + "id": 2030, + "nodeType": "Block", + "src": "6233:1177:11", + "statements": [ + { + "assignments": [ + 1963 + ], + "declarations": [ + { + "constant": false, + "id": 1963, + "name": "headerData", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6298:23:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1962, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6298:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1973, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1966, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1952, + "src": "6356:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 1967, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "6384:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1970, + "name": "HEADER_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "6431:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1968, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "6414:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "6414:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6414:31:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1964, + "name": "LibBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3107, + "src": "6324:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibBytes_$3107_$", + "typeString": "type(library LibBytes)" + } + }, + "id": 1965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "6324:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6324:135:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6298:161:11" + }, + { + "assignments": [ + 1977 + ], + "declarations": [ + { + "constant": false, + "id": 1977, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6473:41:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + }, + "typeName": { + "contractScope": null, + "id": 1976, + "name": "ExchangeHandler.OrderHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2853, + "src": "6473:27:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_storage_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1982, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1980, + "name": "headerData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1963, + "src": "6567:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1978, + "name": "ExchangeHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2868, + "src": "6517:15:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ExchangeHandler_$2868_$", + "typeString": "type(library ExchangeHandler)" + } + }, + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseOrderHeader", + "nodeType": "MemberAccess", + "referencedDeclaration": 2867, + "src": "6517:32:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_OrderHeader_$2853_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ExchangeHandler.OrderHeader memory)" + } + }, + "id": 1981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6517:74:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6473:118:11" + }, + { + "assignments": [ + 1984 + ], + "declarations": [ + { + "constant": false, + "id": 1984, + "name": "exchange", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6691:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1983, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6691:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1990, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1985, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "6710:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1986, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchanges", + "nodeType": "MemberAccess", + "referencedDeclaration": 2644, + "src": "6710:15:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 1989, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1987, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1977, + "src": "6726:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "id": 1988, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchange", + "nodeType": "MemberAccess", + "referencedDeclaration": 2850, + "src": "6726:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6710:32:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6691:51:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1992, + "name": "exchange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1984, + "src": "6835:8:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6855:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6847:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6847:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6835:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1997, + "name": "INVALID_EXCHANGE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1728, + "src": "6875:16:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 1991, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "6810:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6810:95:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1999, + "nodeType": "ExpressionStatement", + "src": "6810:95:11" + }, + { + "assignments": [ + 2001 + ], + "declarations": [ + { + "constant": false, + "id": 2001, + "name": "orderLength", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6989:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6989:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2007, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2005, + "name": "HEADER_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "7034:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2002, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1977, + "src": "7011:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "id": 2003, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2852, + "src": "7011:18:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7011:22:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7011:37:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6989:59:11" + }, + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "name": "orderBody", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "7062:22:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2008, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7062:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2022, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2012, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1952, + "src": "7119:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2015, + "name": "HEADER_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "7164:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2013, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7147:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7147:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7147:31:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2019, + "name": "orderLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "7213:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2017, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7196:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7196:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7196:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2010, + "name": "LibBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3107, + "src": "7087:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibBytes_$3107_$", + "typeString": "type(library LibBytes)" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "7087:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7087:152:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7062:177:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2023, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7355:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2026, + "name": "orderLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "7387:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2024, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7370:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7370:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7370:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7355:44:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2029, + "nodeType": "ExpressionStatement", + "src": "7355:44:11" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1958, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "6199:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1959, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1952, + "src": "6214:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6214:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6199:32:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2031, + "nodeType": "WhileStatement", + "src": "6192:1218:11" + } + ] + }, + "documentation": "Execute the exchange orders by parsing the order data and facilitating the transfers\n * @param _orderData Bytes array containing the exchange orders to execute", + "id": 2033, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "executeExchangeOrders", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1953, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1952, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6109:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1951, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6109:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6099:32:11" + }, + "payable": false, + "returnParameters": { + "id": 1954, + "nodeType": "ParameterList", + "parameters": [], + "src": "6152:0:11" + }, + "scope": 2064, + "src": "6069:1347:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 2062, + "nodeType": "Block", + "src": "7761:478:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2041, + "name": "_order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "7872:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerTokenAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2880, + "src": "7872:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7898:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7872:27:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2045, + "name": "_order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "7903:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 2046, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "quantity", + "nodeType": "MemberAccess", + "referencedDeclaration": 2874, + "src": "7903:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7921:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7903:19:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7872:50:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2050, + "name": "INVALID_TOKEN_AMOUNTS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "7936:21:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2040, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "7851:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7851:116:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2052, + "nodeType": "ExpressionStatement", + "src": "7851:116:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2054, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "8044:5:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8044:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2056, + "name": "_order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "8063:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 2057, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 2882, + "src": "8063:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8044:36:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2059, + "name": "ORDER_EXPIRED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1740, + "src": "8094:13:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2053, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "8023:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8023:94:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2061, + "nodeType": "ExpressionStatement", + "src": "8023:94:11" + } + ] + }, + "documentation": "Validate order params are still valid\n * @param _order IssuanceOrder object containing order params\n@param _fillQuantity Quantity of Set to be filled", + "id": 2063, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validateOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2035, + "name": "_order", + "nodeType": "VariableDeclaration", + "scope": 2063, + "src": "7660:33:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + }, + "typeName": { + "contractScope": null, + "id": 2034, + "name": "OrderLibrary.IssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2891, + "src": "7660:26:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_storage_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2037, + "name": "_fillQuantity", + "nodeType": "VariableDeclaration", + "scope": 2063, + "src": "7703:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2036, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7703:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7650:77:11" + }, + "payable": false, + "returnParameters": { + "id": 2039, + "nodeType": "ParameterList", + "parameters": [], + "src": "7761:0:11" + }, + "scope": 2064, + "src": "7628:611:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 2065, + "src": "1269:6972:11" + } + ], + "src": "597:7645:11" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuanceOrder.sol", + "exportedSymbols": { + "CoreIssuanceOrder": [ + 2064 + ] + }, + "id": 2065, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1698, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:11" + }, + { + "id": 1699, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:11" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 1701, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 4739, + "src": "659:73:11", + "symbolAliases": [ + { + "foreign": 1700, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1703, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2639, + "src": "733:63:11", + "symbolAliases": [ + { + "foreign": 1702, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1705, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2752, + "src": "797:49:11", + "symbolAliases": [ + { + "foreign": 1704, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ExchangeHandler.sol", + "file": "../lib/ExchangeHandler.sol", + "id": 1707, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2869, + "src": "847:61:11", + "symbolAliases": [ + { + "foreign": 1706, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICoreIssuance.sol", + "file": "../interfaces/ICoreIssuance.sol", + "id": 1709, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2436, + "src": "909:64:11", + "symbolAliases": [ + { + "foreign": 1708, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "file": "../../external/LibBytes.sol", + "id": 1711, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 3108, + "src": "974:55:11", + "symbolAliases": [ + { + "foreign": 1710, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/OrderLibrary.sol", + "file": "../lib/OrderLibrary.sol", + "id": 1713, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2982, + "src": "1030:55:11", + "symbolAliases": [ + { + "foreign": 1712, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1714, + "name": "ICoreIssuance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2435, + "src": "1303:13:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICoreIssuance_$2435", + "typeString": "contract ICoreIssuance" + } + }, + "id": 1715, + "nodeType": "InheritanceSpecifier", + "src": "1303:13:11" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1716, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1322:9:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1717, + "nodeType": "InheritanceSpecifier", + "src": "1322:9:11" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1718, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1337:13:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1719, + "nodeType": "InheritanceSpecifier", + "src": "1337:13:11" + } + ], + "contractDependencies": [ + 2435, + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title CoreIssuanceOrder\n@author Set Protocol\n * The Core Issuance Order extension houses all functions related to the filling and\ncanceling issuance orders.\n ", + "fullyImplemented": false, + "id": 2064, + "linearizedBaseContracts": [ + 2064, + 2638, + 2751, + 2435 + ], + "name": "CoreIssuanceOrder", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1722, + "libraryName": { + "contractScope": null, + "id": 1720, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1363:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1357:27:11", + "typeName": { + "id": 1721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1376:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 1725, + "name": "HEADER_LENGTH", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1437:35:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1723, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3634", + "id": 1724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1470:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1728, + "name": "INVALID_EXCHANGE", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1479:61:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1726, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1479:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "45786368616e676520646f6573206e6f742065786973742e", + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1514:26:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10f19557f33751b7359fb90801bc276162b3bec07df01ad819ebdc88cb6b9ba9", + "typeString": "literal_string \"Exchange does not exist.\"" + }, + "value": "Exchange does not exist." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1731, + "name": "INVALID_CANCEL_ORDER", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1546:69:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1729, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1546:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "4f6e6c79206d616b65722063616e2063616e63656c206f726465722e", + "id": 1730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1585:30:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_20dfea250c19728ad7708562ddd39d1aeb6ed3c7b91b9fcf939ae806695fbec0", + "typeString": "literal_string \"Only maker can cancel order.\"" + }, + "value": "Only maker can cancel order." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1734, + "name": "INVALID_SIGNATURE", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1621:62:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1732, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1621:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "496e76616c6964206f72646572207369676e61747572652e", + "id": 1733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1657:26:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0bd9264828df20222816a7b62c45b8acdadb1a4d88a71d7b8927310b19371298", + "typeString": "literal_string \"Invalid order signature.\"" + }, + "value": "Invalid order signature." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1737, + "name": "INVALID_TOKEN_AMOUNTS", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1689:97:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1735, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1689:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e7469747920616e64206d616b6572546f6b656e416d6f756e742073686f756c642062652067726561746572207468616e20302e", + "id": 1736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1729:57:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1257ba6c150a3f09d68043a4396003cea2846a7fb783030e7fe366f0b3057763", + "typeString": "literal_string \"Quantity and makerTokenAmount should be greater than 0.\"" + }, + "value": "Quantity and makerTokenAmount should be greater than 0." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1740, + "name": "ORDER_EXPIRED", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1792:57:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1792:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "54686973206f726465722068617320657870697265642e", + "id": 1739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1824:25:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f81dc39ed5b9833b941e5d3d7c8154be2e213143256d344f6e98febd45c490c6", + "typeString": "literal_string \"This order has expired.\"" + }, + "value": "This order has expired." + }, + "visibility": "internal" + }, + { + "body": { + "id": 1862, + "nodeType": "Block", + "src": "2822:1439:11", + "statements": [ + { + "assignments": [ + 1778 + ], + "declarations": [ + { + "constant": false, + "id": 1778, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2832:39:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + }, + "typeName": { + "contractScope": null, + "id": 1777, + "name": "OrderLibrary.IssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2891, + "src": "2832:26:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_storage_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1814, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1781, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "2927:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1783, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2938:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2927:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1784, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "2964:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1786, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2972:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2964:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1787, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3002:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1789, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3013:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3002:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1790, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3041:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1792, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3052:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3041:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1793, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3086:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1795, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3094:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3086:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1796, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3122:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1798, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3130:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3122:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1799, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3160:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1801, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3171:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3160:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1802, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3207:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1804, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1803, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3215:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3207:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1805, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3237:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1807, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 1806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3245:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3237:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1810, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3320:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + { + "argumentTypes": null, + "id": 1811, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3348:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + ], + "expression": { + "argumentTypes": null, + "id": 1808, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "3272:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "generateOrderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2938, + "src": "3272:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$5_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address[4] memory,uint256[5] memory) pure returns (bytes32)" + } + }, + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3272:97:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1779, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "2874:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "IssuanceOrder", + "nodeType": "MemberAccess", + "referencedDeclaration": 2891, + "src": "2874:26:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_IssuanceOrder_$2891_storage_ptr_$", + "typeString": "type(struct OrderLibrary.IssuanceOrder storage pointer)" + } + }, + "id": 1813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "setAddress", + "quantity", + "makerAddress", + "makerToken", + "makerTokenAmount", + "expiration", + "relayerToken", + "relayerTokenAmount", + "salt", + "orderHash" + ], + "nodeType": "FunctionCall", + "src": "2874:506:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2832:548:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1816, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "3482:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + { + "argumentTypes": null, + "id": 1817, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "3501:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1815, + "name": "validateOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2063, + "src": "3455:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_IssuanceOrder_$2891_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct OrderLibrary.IssuanceOrder memory,uint256) view" + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3455:69:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1819, + "nodeType": "ExpressionStatement", + "src": "3455:69:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1823, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "3645:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1824, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "3645:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1825, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "3678:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2876, + "src": "3678:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1827, + "name": "_v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "3714:2:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 1828, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1754, + "src": "3734:2:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1829, + "name": "_s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1756, + "src": "3754:2:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 1821, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "3597:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "validateSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 2980, + "src": "3597:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32,address,uint8,bytes32,bytes32) pure returns (bool)" + } + }, + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3597:173:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1831, + "name": "INVALID_SIGNATURE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "3784:17:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 1820, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "3576:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3576:235:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1833, + "nodeType": "ExpressionStatement", + "src": "3576:235:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1835, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1758, + "src": "3879:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "id": 1834, + "name": "executeExchangeOrders", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "3857:21:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" + } + }, + "id": 1836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3857:33:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1837, + "nodeType": "ExpressionStatement", + "src": "3857:33:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1838, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4023:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderFills", + "nodeType": "MemberAccess", + "referencedDeclaration": 2660, + "src": "4023:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1843, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1840, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4040:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1841, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "4040:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4023:33:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1850, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "4097:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1844, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4059:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1845, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderFills", + "nodeType": "MemberAccess", + "referencedDeclaration": 2660, + "src": "4059:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1848, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1846, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4076:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1847, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "4076:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4059:33:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4059:37:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4059:52:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4023:88:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1853, + "nodeType": "ExpressionStatement", + "src": "4023:88:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1855, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4169:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1856, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2876, + "src": "4169:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1857, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4201:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "setAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2872, + "src": "4201:16:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1859, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "4231:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1854, + "name": "issueInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2434, + "src": "4142:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4142:112:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1861, + "nodeType": "ExpressionStatement", + "src": "4142:112:11" + } + ] + }, + "documentation": "Fill an issuance order\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n@param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]\n@param _fillQuantity Quantity of set to be filled\n@param _v v element of ECDSA signature\n@param _r r element of ECDSA signature\n@param _s s element of ECDSA signature\n@param _orderData Bytes array containing the exchange orders to execute", + "id": 1863, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1761, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "2701:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1763, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2712:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2701:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1764, + "modifierName": { + "argumentTypes": null, + "id": 1760, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "2690:10:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2690:25:11" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1766, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "2743:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1767, + "modifierName": { + "argumentTypes": null, + "id": 1765, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "2724:18:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2724:33:11" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1769, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "2788:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1770, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "2803:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1772, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2814:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2803:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1773, + "modifierName": { + "argumentTypes": null, + "id": 1768, + "name": "isNaturalUnitMultiple", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2637, + "src": "2766:21:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2766:51:11" + } + ], + "name": "fillOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1759, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1744, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2500:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 1741, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2500:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1743, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 1742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2508:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "2500:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1748, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2531:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 1745, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2531:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1747, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2536:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "2531:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1750, + "name": "_fillQuantity", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2556:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1749, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2556:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1752, + "name": "_v", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2584:8:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1751, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2584:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1754, + "name": "_r", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2602:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1753, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2602:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1756, + "name": "_s", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2622:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1755, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2622:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1758, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2642:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1757, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2642:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2490:174:11" + }, + "payable": false, + "returnParameters": { + "id": 1774, + "nodeType": "ParameterList", + "parameters": [], + "src": "2822:0:11" + }, + "scope": 2064, + "src": "2472:1789:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1949, + "nodeType": "Block", + "src": "4742:1070:11", + "statements": [ + { + "assignments": [ + 1882 + ], + "declarations": [ + { + "constant": false, + "id": 1882, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4752:39:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + }, + "typeName": { + "contractScope": null, + "id": 1881, + "name": "OrderLibrary.IssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2891, + "src": "4752:26:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_storage_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1918, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1885, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "4847:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1887, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4858:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4847:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1888, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "4884:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1890, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4892:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4884:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1891, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "4922:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1893, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4933:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4922:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1894, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "4961:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1896, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4972:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4961:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1897, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5006:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1899, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5014:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5006:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1900, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5042:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1902, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1901, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5050:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5042:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1903, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "5080:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1905, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5091:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5080:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1906, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5127:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1908, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5135:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5127:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1909, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5157:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1911, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5165:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5157:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1914, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "5240:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + { + "argumentTypes": null, + "id": 1915, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5268:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + ], + "expression": { + "argumentTypes": null, + "id": 1912, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "5192:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "generateOrderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2938, + "src": "5192:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$5_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address[4] memory,uint256[5] memory) pure returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5192:97:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1883, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "4794:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "IssuanceOrder", + "nodeType": "MemberAccess", + "referencedDeclaration": 2891, + "src": "4794:26:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_IssuanceOrder_$2891_storage_ptr_$", + "typeString": "type(struct OrderLibrary.IssuanceOrder storage pointer)" + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "setAddress", + "quantity", + "makerAddress", + "makerToken", + "makerTokenAmount", + "expiration", + "relayerToken", + "relayerTokenAmount", + "salt", + "orderHash" + ], + "nodeType": "FunctionCall", + "src": "4794:506:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4752:548:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1920, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5370:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1921, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2876, + "src": "5370:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1922, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5392:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5392:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5370:32:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1925, + "name": "INVALID_CANCEL_ORDER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "5404:20:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 1919, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "5362:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5362:63:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1927, + "nodeType": "ExpressionStatement", + "src": "5362:63:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1929, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5530:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + { + "argumentTypes": null, + "id": 1930, + "name": "_cancelQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "5549:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1928, + "name": "validateOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2063, + "src": "5503:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_IssuanceOrder_$2891_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct OrderLibrary.IssuanceOrder memory,uint256) view" + } + }, + "id": 1931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5503:71:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1932, + "nodeType": "ExpressionStatement", + "src": "5503:71:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1933, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5711:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1937, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderCancels", + "nodeType": "MemberAccess", + "referencedDeclaration": 2664, + "src": "5711:18:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1938, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1935, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5730:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1936, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "5730:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5711:35:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1945, + "name": "_cancelQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "5789:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1939, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5749:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1940, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderCancels", + "nodeType": "MemberAccess", + "referencedDeclaration": 2664, + "src": "5749:18:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1943, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1941, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5768:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1942, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "5768:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5749:35:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "5749:39:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5749:56:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5711:94:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1948, + "nodeType": "ExpressionStatement", + "src": "5711:94:11" + } + ] + }, + "documentation": "Cancel an issuance order\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n@param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]\n@param _cancelQuantity Quantity of set to be filled", + "id": 1950, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1876, + "name": "_cancelQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "4721:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1877, + "modifierName": { + "argumentTypes": null, + "id": 1875, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "4702:18:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4702:35:11" + } + ], + "name": "cancelOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1867, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4594:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 1864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4594:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1866, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4602:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "4594:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4625:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 1868, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4625:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1870, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 1869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4630:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "4625:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1873, + "name": "_cancelQuantity", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4650:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1872, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4650:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4584:92:11" + }, + "payable": false, + "returnParameters": { + "id": 1878, + "nodeType": "ParameterList", + "parameters": [], + "src": "4742:0:11" + }, + "scope": 2064, + "src": "4564:1248:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2032, + "nodeType": "Block", + "src": "6152:1264:11", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 1956, + "name": "scannedBytes", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6162:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6162:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1957, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6162:20:11" + }, + { + "body": { + "id": 2030, + "nodeType": "Block", + "src": "6233:1177:11", + "statements": [ + { + "assignments": [ + 1963 + ], + "declarations": [ + { + "constant": false, + "id": 1963, + "name": "headerData", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6298:23:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1962, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6298:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1973, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1966, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1952, + "src": "6356:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 1967, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "6384:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1970, + "name": "HEADER_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "6431:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1968, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "6414:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "6414:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6414:31:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1964, + "name": "LibBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3107, + "src": "6324:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibBytes_$3107_$", + "typeString": "type(library LibBytes)" + } + }, + "id": 1965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "6324:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6324:135:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6298:161:11" + }, + { + "assignments": [ + 1977 + ], + "declarations": [ + { + "constant": false, + "id": 1977, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6473:41:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + }, + "typeName": { + "contractScope": null, + "id": 1976, + "name": "ExchangeHandler.OrderHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2853, + "src": "6473:27:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_storage_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1982, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1980, + "name": "headerData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1963, + "src": "6567:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1978, + "name": "ExchangeHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2868, + "src": "6517:15:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ExchangeHandler_$2868_$", + "typeString": "type(library ExchangeHandler)" + } + }, + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseOrderHeader", + "nodeType": "MemberAccess", + "referencedDeclaration": 2867, + "src": "6517:32:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_OrderHeader_$2853_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ExchangeHandler.OrderHeader memory)" + } + }, + "id": 1981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6517:74:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6473:118:11" + }, + { + "assignments": [ + 1984 + ], + "declarations": [ + { + "constant": false, + "id": 1984, + "name": "exchange", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6691:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1983, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6691:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1990, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1985, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "6710:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1986, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchanges", + "nodeType": "MemberAccess", + "referencedDeclaration": 2644, + "src": "6710:15:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 1989, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1987, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1977, + "src": "6726:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "id": 1988, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchange", + "nodeType": "MemberAccess", + "referencedDeclaration": 2850, + "src": "6726:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6710:32:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6691:51:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1992, + "name": "exchange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1984, + "src": "6835:8:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6855:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6847:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6847:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6835:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1997, + "name": "INVALID_EXCHANGE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1728, + "src": "6875:16:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 1991, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "6810:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6810:95:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1999, + "nodeType": "ExpressionStatement", + "src": "6810:95:11" + }, + { + "assignments": [ + 2001 + ], + "declarations": [ + { + "constant": false, + "id": 2001, + "name": "orderLength", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6989:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6989:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2007, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2005, + "name": "HEADER_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "7034:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2002, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1977, + "src": "7011:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "id": 2003, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2852, + "src": "7011:18:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7011:22:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7011:37:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6989:59:11" + }, + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "name": "orderBody", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "7062:22:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2008, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7062:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2022, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2012, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1952, + "src": "7119:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2015, + "name": "HEADER_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "7164:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2013, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7147:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7147:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7147:31:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2019, + "name": "orderLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "7213:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2017, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7196:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7196:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7196:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2010, + "name": "LibBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3107, + "src": "7087:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibBytes_$3107_$", + "typeString": "type(library LibBytes)" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "7087:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7087:152:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7062:177:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2023, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7355:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2026, + "name": "orderLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "7387:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2024, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7370:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7370:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7370:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7355:44:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2029, + "nodeType": "ExpressionStatement", + "src": "7355:44:11" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1958, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "6199:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1959, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1952, + "src": "6214:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6214:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6199:32:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2031, + "nodeType": "WhileStatement", + "src": "6192:1218:11" + } + ] + }, + "documentation": "Execute the exchange orders by parsing the order data and facilitating the transfers\n * @param _orderData Bytes array containing the exchange orders to execute", + "id": 2033, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "executeExchangeOrders", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1953, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1952, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6109:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1951, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6109:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6099:32:11" + }, + "payable": false, + "returnParameters": { + "id": 1954, + "nodeType": "ParameterList", + "parameters": [], + "src": "6152:0:11" + }, + "scope": 2064, + "src": "6069:1347:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 2062, + "nodeType": "Block", + "src": "7761:478:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2041, + "name": "_order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "7872:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerTokenAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2880, + "src": "7872:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7898:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7872:27:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2045, + "name": "_order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "7903:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 2046, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "quantity", + "nodeType": "MemberAccess", + "referencedDeclaration": 2874, + "src": "7903:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7921:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7903:19:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7872:50:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2050, + "name": "INVALID_TOKEN_AMOUNTS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "7936:21:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2040, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "7851:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7851:116:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2052, + "nodeType": "ExpressionStatement", + "src": "7851:116:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2054, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "8044:5:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8044:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2056, + "name": "_order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "8063:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 2057, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 2882, + "src": "8063:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8044:36:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2059, + "name": "ORDER_EXPIRED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1740, + "src": "8094:13:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2053, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "8023:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8023:94:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2061, + "nodeType": "ExpressionStatement", + "src": "8023:94:11" + } + ] + }, + "documentation": "Validate order params are still valid\n * @param _order IssuanceOrder object containing order params\n@param _fillQuantity Quantity of Set to be filled", + "id": 2063, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validateOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2035, + "name": "_order", + "nodeType": "VariableDeclaration", + "scope": 2063, + "src": "7660:33:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + }, + "typeName": { + "contractScope": null, + "id": 2034, + "name": "OrderLibrary.IssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2891, + "src": "7660:26:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_storage_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2037, + "name": "_fillQuantity", + "nodeType": "VariableDeclaration", + "scope": 2063, + "src": "7703:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2036, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7703:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7650:77:11" + }, + "payable": false, + "returnParameters": { + "id": 2039, + "nodeType": "ParameterList", + "parameters": [], + "src": "7761:0:11" + }, + "scope": 2064, + "src": "7628:611:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 2065, + "src": "1269:6972:11" + } + ], + "src": "597:7645:11" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.899Z" +} \ No newline at end of file diff --git a/artifacts/json/CoreModifiers.json b/artifacts/json/CoreModifiers.json new file mode 100644 index 000000000..0ef3b400b --- /dev/null +++ b/artifacts/json/CoreModifiers.json @@ -0,0 +1,2281 @@ +{ + "contractName": "CoreModifiers", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610594806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100935780631e912bd6146100ee578063430bf08a146101335780638ca4daf91461018a578063a003e069146101e1578063c19d93fb14610251578063f7213db6146102db578063fef3ee7314610320575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061037b565b604051808215151515815260200191505060405180910390f35b3480156100fa57600080fd5b5061011d60048036038101908080356000191690602001909291905050506103d3565b6040518082815260200191505060405180910390f35b34801561013f57600080fd5b506101486103fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019657600080fd5b5061019f610426565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101ed57600080fd5b5061020f600480360381019080803560ff169060200190929190505050610452565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025d57600080fd5b50610266610497565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156102e757600080fd5b5061030a60048036038101908080356000191690602001909291905050506104e9565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b50610361600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610510565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058208eb1107700fbaf0e1492bb05c25ec440a1cf01a2699c21bd5220b067c0e7adb80029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100935780631e912bd6146100ee578063430bf08a146101335780638ca4daf91461018a578063a003e069146101e1578063c19d93fb14610251578063f7213db6146102db578063fef3ee7314610320575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061037b565b604051808215151515815260200191505060405180910390f35b3480156100fa57600080fd5b5061011d60048036038101908080356000191690602001909291905050506103d3565b6040518082815260200191505060405180910390f35b34801561013f57600080fd5b506101486103fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019657600080fd5b5061019f610426565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101ed57600080fd5b5061020f600480360381019080803560ff169060200190929190505050610452565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025d57600080fd5b50610266610497565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156102e757600080fd5b5061030a60048036038101908080356000191690602001909291905050506104e9565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b50610361600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610510565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058208eb1107700fbaf0e1492bb05c25ec440a1cf01a2699c21bd5220b067c0e7adb80029", + "sourceMap": "910:1372:21:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;910:1372:21;;;;;;;", + "deployedSourceMap": "910:1372:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;2529:::-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;1954:123::-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;1809:139::-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;1656:147::-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2377:146::-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { CoreState } from \"./CoreState.sol\";\nimport { ISetToken } from \"../interfaces/ISetToken.sol\";\n\n\n/**\n * @title Core Shared Modifiers\n * @author Set Protocol\n *\n * The Core Shared Modifiers library contains the modifiers that are shared across the different\n * Core extensions.\n */\ncontract CoreModifiers is\n CoreState\n{\n\n /* ============ Constants ============ */\n\n string constant INVALID_QUANTITY = \"Quantity must be multiple of the natural unit of the set.\";\n string constant ZERO_QUANTITY = \"Quantity must be greater than zero.\";\n string constant INVALID_SET = \"Set token is disabled or does not exist.\";\n string constant INVALID_FACTORY = \"Factory is disabled or does not exist.\";\n\n /* ============ Modifiers ============ */\n\n // Check that quantity submitted is greater than 0\n modifier isPositiveQuantity(uint _quantity) {\n require(\n _quantity > 0,\n ZERO_QUANTITY\n );\n _;\n }\n\n // Verify Factory is linked to Core\n modifier isValidFactory(address _factoryAddress) {\n require(\n state.validFactories[_factoryAddress],\n INVALID_FACTORY\n );\n _;\n }\n\n // Verify set was created by core and is enabled\n modifier isValidSet(address _setAddress) {\n require(\n state.validSets[_setAddress],\n INVALID_SET\n );\n _;\n }\n\n // Validate quantity is multiple of natural unit\n modifier isNaturalUnitMultiple(uint _quantity, address _setToken) {\n require(\n _quantity % ISetToken(_setToken).naturalUnit() == 0,\n INVALID_QUANTITY\n );\n _;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "exportedSymbols": { + "CoreModifiers": [ + 2638 + ] + }, + "id": 2639, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2557, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:21" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "./CoreState.sol", + "id": 2559, + "nodeType": "ImportDirective", + "scope": 2639, + "sourceUnit": 2752, + "src": "622:44:21", + "symbolAliases": [ + { + "foreign": 2558, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", + "file": "../interfaces/ISetToken.sol", + "id": 2561, + "nodeType": "ImportDirective", + "scope": 2639, + "sourceUnit": 2505, + "src": "667:56:21", + "symbolAliases": [ + { + "foreign": 2560, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2562, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "940:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 2563, + "nodeType": "InheritanceSpecifier", + "src": "940:9:21" + } + ], + "contractDependencies": [ + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Shared Modifiers\n@author Set Protocol\n * The Core Shared Modifiers library contains the modifiers that are shared across the different\nCore extensions.", + "fullyImplemented": true, + "id": 2638, + "linearizedBaseContracts": [ + 2638, + 2751 + ], + "name": "CoreModifiers", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2566, + "name": "INVALID_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1004:94:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2564, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1004:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d757374206265206d756c7469706c65206f6620746865206e61747572616c20756e6974206f6620746865207365742e", + "id": 2565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1039:59:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d07f06b1dbcd0a898f7012f6e92da489627e9127773658e2348a0db0797b8933", + "typeString": "literal_string \"Quantity must be multiple of the natural unit of the set.\"" + }, + "value": "Quantity must be multiple of the natural unit of the set." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2569, + "name": "ZERO_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1104:69:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2567, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1104:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d7573742062652067726561746572207468616e207a65726f2e", + "id": 2568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1136:37:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3da6978e12ad268e4eb66f4a79840b60e48f93e78540f7911187ddd7f0f6f2c7", + "typeString": "literal_string \"Quantity must be greater than zero.\"" + }, + "value": "Quantity must be greater than zero." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2572, + "name": "INVALID_SET", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1179:72:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2570, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1179:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f742065786973742e", + "id": 2571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1209:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c419cd4a3f97d6566703fad16a031bef670efd2b05b54195c4db43ccea0a7e7e", + "typeString": "literal_string \"Set token is disabled or does not exist.\"" + }, + "value": "Set token is disabled or does not exist." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2575, + "name": "INVALID_FACTORY", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1257:74:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2573, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1257:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "466163746f72792069732064697361626c6564206f7220646f6573206e6f742065786973742e", + "id": 2574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1291:40:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ff40c07bf4b1e4d2220e3a6d57631493105b5007aba10b5d8cf1630effb33df5", + "typeString": "literal_string \"Factory is disabled or does not exist.\"" + }, + "value": "Factory is disabled or does not exist." + }, + "visibility": "internal" + }, + { + "body": { + "id": 2587, + "nodeType": "Block", + "src": "1484:99:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2580, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2577, + "src": "1515:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1527:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1515:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2583, + "name": "ZERO_QUANTITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2569, + "src": "1542:13:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2579, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1494:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1494:71:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2585, + "nodeType": "ExpressionStatement", + "src": "1494:71:21" + }, + { + "id": 2586, + "nodeType": "PlaceholderStatement", + "src": "1575:1:21" + } + ] + }, + "documentation": null, + "id": 2588, + "name": "isPositiveQuantity", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2577, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2588, + "src": "1468:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2576, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1468:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1467:16:21" + }, + "src": "1440:143:21", + "visibility": "internal" + }, + { + "body": { + "id": 2601, + "nodeType": "Block", + "src": "1678:125:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2593, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1709:5:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2594, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "1709:20:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2596, + "indexExpression": { + "argumentTypes": null, + "id": 2595, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2590, + "src": "1730:15:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1709:37:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2597, + "name": "INVALID_FACTORY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2575, + "src": "1760:15:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2592, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1688:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1688:97:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2599, + "nodeType": "ExpressionStatement", + "src": "1688:97:21" + }, + { + "id": 2600, + "nodeType": "PlaceholderStatement", + "src": "1795:1:21" + } + ] + }, + "documentation": null, + "id": 2602, + "name": "isValidFactory", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2590, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2602, + "src": "1653:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1652:25:21" + }, + "src": "1629:174:21", + "visibility": "internal" + }, + { + "body": { + "id": 2615, + "nodeType": "Block", + "src": "1903:112:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2607, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2608, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "1934:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2610, + "indexExpression": { + "argumentTypes": null, + "id": 2609, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "1950:11:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1934:28:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2611, + "name": "INVALID_SET", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2572, + "src": "1976:11:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2606, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1913:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1913:84:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2613, + "nodeType": "ExpressionStatement", + "src": "1913:84:21" + }, + { + "id": 2614, + "nodeType": "PlaceholderStatement", + "src": "2007:1:21" + } + ] + }, + "documentation": null, + "id": 2616, + "name": "isValidSet", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2604, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2616, + "src": "1882:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1882:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1881:21:21" + }, + "src": "1862:153:21", + "visibility": "internal" + }, + { + "body": { + "id": 2636, + "nodeType": "Block", + "src": "2140:140:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2623, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2618, + "src": "2171:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2625, + "name": "_setToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "2193:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2624, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2183:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 2626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2183:20:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "naturalUnit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "2183:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2183:34:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2171:46:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2221:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2171:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2632, + "name": "INVALID_QUANTITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2566, + "src": "2236:16:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2622, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2150:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2150:112:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2634, + "nodeType": "ExpressionStatement", + "src": "2150:112:21" + }, + { + "id": 2635, + "nodeType": "PlaceholderStatement", + "src": "2272:1:21" + } + ] + }, + "documentation": null, + "id": 2637, + "name": "isNaturalUnitMultiple", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2618, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2637, + "src": "2105:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2617, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2105:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2620, + "name": "_setToken", + "nodeType": "VariableDeclaration", + "scope": 2637, + "src": "2121:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2619, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2121:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2104:35:21" + }, + "src": "2074:206:21", + "visibility": "internal" + } + ], + "scope": 2639, + "src": "910:1372:21" + } + ], + "src": "597:1686:21" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "exportedSymbols": { + "CoreModifiers": [ + 2638 + ] + }, + "id": 2639, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2557, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:21" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "./CoreState.sol", + "id": 2559, + "nodeType": "ImportDirective", + "scope": 2639, + "sourceUnit": 2752, + "src": "622:44:21", + "symbolAliases": [ + { + "foreign": 2558, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", + "file": "../interfaces/ISetToken.sol", + "id": 2561, + "nodeType": "ImportDirective", + "scope": 2639, + "sourceUnit": 2505, + "src": "667:56:21", + "symbolAliases": [ + { + "foreign": 2560, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2562, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "940:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 2563, + "nodeType": "InheritanceSpecifier", + "src": "940:9:21" + } + ], + "contractDependencies": [ + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Shared Modifiers\n@author Set Protocol\n * The Core Shared Modifiers library contains the modifiers that are shared across the different\nCore extensions.", + "fullyImplemented": true, + "id": 2638, + "linearizedBaseContracts": [ + 2638, + 2751 + ], + "name": "CoreModifiers", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2566, + "name": "INVALID_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1004:94:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2564, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1004:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d757374206265206d756c7469706c65206f6620746865206e61747572616c20756e6974206f6620746865207365742e", + "id": 2565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1039:59:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d07f06b1dbcd0a898f7012f6e92da489627e9127773658e2348a0db0797b8933", + "typeString": "literal_string \"Quantity must be multiple of the natural unit of the set.\"" + }, + "value": "Quantity must be multiple of the natural unit of the set." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2569, + "name": "ZERO_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1104:69:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2567, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1104:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d7573742062652067726561746572207468616e207a65726f2e", + "id": 2568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1136:37:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3da6978e12ad268e4eb66f4a79840b60e48f93e78540f7911187ddd7f0f6f2c7", + "typeString": "literal_string \"Quantity must be greater than zero.\"" + }, + "value": "Quantity must be greater than zero." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2572, + "name": "INVALID_SET", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1179:72:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2570, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1179:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f742065786973742e", + "id": 2571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1209:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c419cd4a3f97d6566703fad16a031bef670efd2b05b54195c4db43ccea0a7e7e", + "typeString": "literal_string \"Set token is disabled or does not exist.\"" + }, + "value": "Set token is disabled or does not exist." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2575, + "name": "INVALID_FACTORY", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1257:74:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2573, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1257:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "466163746f72792069732064697361626c6564206f7220646f6573206e6f742065786973742e", + "id": 2574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1291:40:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ff40c07bf4b1e4d2220e3a6d57631493105b5007aba10b5d8cf1630effb33df5", + "typeString": "literal_string \"Factory is disabled or does not exist.\"" + }, + "value": "Factory is disabled or does not exist." + }, + "visibility": "internal" + }, + { + "body": { + "id": 2587, + "nodeType": "Block", + "src": "1484:99:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2580, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2577, + "src": "1515:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1527:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1515:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2583, + "name": "ZERO_QUANTITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2569, + "src": "1542:13:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2579, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1494:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1494:71:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2585, + "nodeType": "ExpressionStatement", + "src": "1494:71:21" + }, + { + "id": 2586, + "nodeType": "PlaceholderStatement", + "src": "1575:1:21" + } + ] + }, + "documentation": null, + "id": 2588, + "name": "isPositiveQuantity", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2577, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2588, + "src": "1468:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2576, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1468:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1467:16:21" + }, + "src": "1440:143:21", + "visibility": "internal" + }, + { + "body": { + "id": 2601, + "nodeType": "Block", + "src": "1678:125:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2593, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1709:5:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2594, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "1709:20:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2596, + "indexExpression": { + "argumentTypes": null, + "id": 2595, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2590, + "src": "1730:15:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1709:37:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2597, + "name": "INVALID_FACTORY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2575, + "src": "1760:15:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2592, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1688:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1688:97:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2599, + "nodeType": "ExpressionStatement", + "src": "1688:97:21" + }, + { + "id": 2600, + "nodeType": "PlaceholderStatement", + "src": "1795:1:21" + } + ] + }, + "documentation": null, + "id": 2602, + "name": "isValidFactory", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2590, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2602, + "src": "1653:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1652:25:21" + }, + "src": "1629:174:21", + "visibility": "internal" + }, + { + "body": { + "id": 2615, + "nodeType": "Block", + "src": "1903:112:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2607, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2608, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "1934:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2610, + "indexExpression": { + "argumentTypes": null, + "id": 2609, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "1950:11:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1934:28:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2611, + "name": "INVALID_SET", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2572, + "src": "1976:11:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2606, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1913:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1913:84:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2613, + "nodeType": "ExpressionStatement", + "src": "1913:84:21" + }, + { + "id": 2614, + "nodeType": "PlaceholderStatement", + "src": "2007:1:21" + } + ] + }, + "documentation": null, + "id": 2616, + "name": "isValidSet", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2604, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2616, + "src": "1882:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1882:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1881:21:21" + }, + "src": "1862:153:21", + "visibility": "internal" + }, + { + "body": { + "id": 2636, + "nodeType": "Block", + "src": "2140:140:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2623, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2618, + "src": "2171:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2625, + "name": "_setToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "2193:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2624, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2183:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 2626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2183:20:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "naturalUnit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "2183:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2183:34:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2171:46:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2221:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2171:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2632, + "name": "INVALID_QUANTITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2566, + "src": "2236:16:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2622, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2150:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2150:112:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2634, + "nodeType": "ExpressionStatement", + "src": "2150:112:21" + }, + { + "id": 2635, + "nodeType": "PlaceholderStatement", + "src": "2272:1:21" + } + ] + }, + "documentation": null, + "id": 2637, + "name": "isNaturalUnitMultiple", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2618, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2637, + "src": "2105:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2617, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2105:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2620, + "name": "_setToken", + "nodeType": "VariableDeclaration", + "scope": 2637, + "src": "2121:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2619, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2121:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2104:35:21" + }, + "src": "2074:206:21", + "visibility": "internal" + } + ], + "scope": 2639, + "src": "910:1372:21" + } + ], + "src": "597:1686:21" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.904Z" +} \ No newline at end of file diff --git a/artifacts/json/CoreState.json b/artifacts/json/CoreState.json new file mode 100644 index 000000000..7091561c7 --- /dev/null +++ b/artifacts/json/CoreState.json @@ -0,0 +1,2769 @@ +{ + "contractName": "CoreState", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610594806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100935780631e912bd6146100ee578063430bf08a146101335780638ca4daf91461018a578063a003e069146101e1578063c19d93fb14610251578063f7213db6146102db578063fef3ee7314610320575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061037b565b604051808215151515815260200191505060405180910390f35b3480156100fa57600080fd5b5061011d60048036038101908080356000191690602001909291905050506103d3565b6040518082815260200191505060405180910390f35b34801561013f57600080fd5b506101486103fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019657600080fd5b5061019f610426565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101ed57600080fd5b5061020f600480360381019080803560ff169060200190929190505050610452565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025d57600080fd5b50610266610497565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156102e757600080fd5b5061030a60048036038101908080356000191690602001909291905050506104e9565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b50610361600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610510565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058205fff594963aee3f438ac11a5af9b26d7346ef447ef1519fb1e35adcf6c65a6ce0029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100935780631e912bd6146100ee578063430bf08a146101335780638ca4daf91461018a578063a003e069146101e1578063c19d93fb14610251578063f7213db6146102db578063fef3ee7314610320575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061037b565b604051808215151515815260200191505060405180910390f35b3480156100fa57600080fd5b5061011d60048036038101908080356000191690602001909291905050506103d3565b6040518082815260200191505060405180910390f35b34801561013f57600080fd5b506101486103fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019657600080fd5b5061019f610426565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101ed57600080fd5b5061020f600480360381019080803560ff169060200190929190505050610452565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025d57600080fd5b50610266610497565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156102e757600080fd5b5061030a60048036038101908080356000191690602001909291905050506104e9565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b50610361600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610510565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058205fff594963aee3f438ac11a5af9b26d7346ef447ef1519fb1e35adcf6c65a6ce0029", + "sourceMap": "800:1881:22:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;800:1881:22;;;;;;;", + "deployedSourceMap": "800:1881:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;2529:::-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;1954:123::-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;1809:139::-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;1656:147::-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2377:146::-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\n/**\n * @title CoreState\n * @author Set Protocol\n *\n * The CoreState library maintains all state for the Core contract thus\n * allowing it to operate across multiple mixins.\n */\ncontract CoreState {\n\n /* ============ Structs ============ */\n\n struct State {\n // Mapping of exchange enumeration to address\n mapping(uint8 => address) exchanges;\n\n // Address of the TransferProxy contract\n address transferProxyAddress;\n\n // Address of the Vault contract\n address vaultAddress;\n\n // Mapping of tracked SetToken factories\n mapping(address => bool) validFactories;\n\n // Mapping of tracked SetTokens\n mapping(address => bool) validSets;\n\n // Mapping of filled Issuance Orders\n mapping(bytes32 => uint) orderFills;\n\n // Mapping of canceled Issuance Orders\n mapping(bytes32 => uint) orderCancels;\n }\n\n /* ============ State Variables ============ */\n\n State public state;\n\n /* ============ Public Getters ============ */\n\n function exchanges(uint8 _exchangeId)\n public\n view\n returns(address)\n {\n return state.exchanges[_exchangeId];\n }\n\n function transferProxyAddress()\n public\n view\n returns(address)\n {\n return state.transferProxyAddress;\n }\n\n function vaultAddress()\n public\n view\n returns(address)\n {\n return state.vaultAddress;\n }\n\n function validFactories(address _factory)\n public\n view\n returns(bool)\n {\n return state.validFactories[_factory];\n }\n\n function validSets(address _set)\n public\n view\n returns(bool)\n {\n return state.validSets[_set];\n }\n\n function orderFills(bytes32 _orderHash)\n public\n view\n returns(uint)\n {\n return state.orderFills[_orderHash];\n }\n\n function orderCancels(bytes32 _orderHash)\n public\n view\n returns(uint)\n {\n return state.orderCancels[_orderHash];\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "exportedSymbols": { + "CoreState": [ + 2751 + ] + }, + "id": 2752, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2640, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:22" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title CoreState\n@author Set Protocol\n * The CoreState library maintains all state for the Core contract thus\nallowing it to operate across multiple mixins.", + "fullyImplemented": true, + "id": 2751, + "linearizedBaseContracts": [ + 2751 + ], + "name": "CoreState", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "CoreState.State", + "id": 2665, + "members": [ + { + "constant": false, + "id": 2644, + "name": "exchanges", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "948:35:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + }, + "typeName": { + "id": 2643, + "keyType": { + "id": 2641, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "956:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "948:25:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + }, + "valueType": { + "id": 2642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "965:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2646, + "name": "transferProxyAddress", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1043:28:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2645, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1043:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2648, + "name": "vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1123:20:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2647, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1123:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2652, + "name": "validFactories", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1203:39:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 2651, + "keyType": { + "id": 2649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1211:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1203:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2650, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1222:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2656, + "name": "validSets", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1293:34:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 2655, + "keyType": { + "id": 2653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1301:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1293:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2654, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1312:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2660, + "name": "orderFills", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1383:35:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 2659, + "keyType": { + "id": 2657, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1391:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1383:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 2658, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1402:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2664, + "name": "orderCancels", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1476:37:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 2663, + "keyType": { + "id": 2661, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1484:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1476:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 2662, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1495:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "State", + "nodeType": "StructDefinition", + "scope": 2751, + "src": "871:649:22", + "visibility": "public" + }, + { + "constant": false, + "id": 2667, + "name": "state", + "nodeType": "VariableDeclaration", + "scope": 2751, + "src": "1579:18:22", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State" + }, + "typeName": { + "contractScope": null, + "id": 2666, + "name": "State", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2665, + "src": "1579:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage_ptr", + "typeString": "struct CoreState.State" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2679, + "nodeType": "Block", + "src": "1751:52:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2674, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1768:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2675, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchanges", + "nodeType": "MemberAccess", + "referencedDeclaration": 2644, + "src": "1768:15:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 2677, + "indexExpression": { + "argumentTypes": null, + "id": 2676, + "name": "_exchangeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "1784:11:22", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1768:28:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2673, + "id": 2678, + "nodeType": "Return", + "src": "1761:35:22" + } + ] + }, + "documentation": null, + "id": 2680, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "exchanges", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2669, + "name": "_exchangeId", + "nodeType": "VariableDeclaration", + "scope": 2680, + "src": "1675:17:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2668, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1675:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1674:19:22" + }, + "payable": false, + "returnParameters": { + "id": 2673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2672, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2680, + "src": "1738:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1738:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1737:9:22" + }, + "scope": 2751, + "src": "1656:147:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2688, + "nodeType": "Block", + "src": "1898:50:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2685, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1915:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2686, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "1915:26:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2684, + "id": 2687, + "nodeType": "Return", + "src": "1908:33:22" + } + ] + }, + "documentation": null, + "id": 2689, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "transferProxyAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2681, + "nodeType": "ParameterList", + "parameters": [], + "src": "1838:2:22" + }, + "payable": false, + "returnParameters": { + "id": 2684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2683, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "1885:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1885:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1884:9:22" + }, + "scope": 2751, + "src": "1809:139:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2697, + "nodeType": "Block", + "src": "2035:42:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2694, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2052:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2695, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "2052:18:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2693, + "id": 2696, + "nodeType": "Return", + "src": "2045:25:22" + } + ] + }, + "documentation": null, + "id": 2698, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "vaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [], + "src": "1975:2:22" + }, + "payable": false, + "returnParameters": { + "id": 2693, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2692, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2698, + "src": "2022:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2022:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2021:9:22" + }, + "scope": 2751, + "src": "1954:123:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2710, + "nodeType": "Block", + "src": "2179:54:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2705, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2196:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2706, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "2196:20:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2708, + "indexExpression": { + "argumentTypes": null, + "id": 2707, + "name": "_factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2700, + "src": "2217:8:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2196:30:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2704, + "id": 2709, + "nodeType": "Return", + "src": "2189:37:22" + } + ] + }, + "documentation": null, + "id": 2711, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validFactories", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2700, + "name": "_factory", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "2107:16:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2699, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2107:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2106:18:22" + }, + "payable": false, + "returnParameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2703, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "2169:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2702, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2169:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2168:6:22" + }, + "scope": 2751, + "src": "2083:150:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2723, + "nodeType": "Block", + "src": "2326:45:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2718, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2343:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2719, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "2343:15:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2721, + "indexExpression": { + "argumentTypes": null, + "id": 2720, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2713, + "src": "2359:4:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2343:21:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2717, + "id": 2722, + "nodeType": "Return", + "src": "2336:28:22" + } + ] + }, + "documentation": null, + "id": 2724, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validSets", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2713, + "name": "_set", + "nodeType": "VariableDeclaration", + "scope": 2724, + "src": "2258:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2258:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2257:14:22" + }, + "payable": false, + "returnParameters": { + "id": 2717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2716, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2724, + "src": "2316:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2715, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2316:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2315:6:22" + }, + "scope": 2751, + "src": "2239:132:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2736, + "nodeType": "Block", + "src": "2471:52:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2731, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2488:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2732, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderFills", + "nodeType": "MemberAccess", + "referencedDeclaration": 2660, + "src": "2488:16:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2734, + "indexExpression": { + "argumentTypes": null, + "id": 2733, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2726, + "src": "2505:10:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2488:28:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2730, + "id": 2735, + "nodeType": "Return", + "src": "2481:35:22" + } + ] + }, + "documentation": null, + "id": 2737, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "orderFills", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2726, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "2397:18:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2725, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2397:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2396:20:22" + }, + "payable": false, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "2461:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2728, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2461:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2460:6:22" + }, + "scope": 2751, + "src": "2377:146:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2749, + "nodeType": "Block", + "src": "2625:54:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2744, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2642:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2745, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderCancels", + "nodeType": "MemberAccess", + "referencedDeclaration": 2664, + "src": "2642:18:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2747, + "indexExpression": { + "argumentTypes": null, + "id": 2746, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "2661:10:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2642:30:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2743, + "id": 2748, + "nodeType": "Return", + "src": "2635:37:22" + } + ] + }, + "documentation": null, + "id": 2750, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "orderCancels", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2739, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 2750, + "src": "2551:18:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2738, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2551:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2550:20:22" + }, + "payable": false, + "returnParameters": { + "id": 2743, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2742, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2750, + "src": "2615:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2741, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2615:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2614:6:22" + }, + "scope": 2751, + "src": "2529:150:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 2752, + "src": "800:1881:22" + } + ], + "src": "597:2085:22" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "exportedSymbols": { + "CoreState": [ + 2751 + ] + }, + "id": 2752, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2640, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:22" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title CoreState\n@author Set Protocol\n * The CoreState library maintains all state for the Core contract thus\nallowing it to operate across multiple mixins.", + "fullyImplemented": true, + "id": 2751, + "linearizedBaseContracts": [ + 2751 + ], + "name": "CoreState", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "CoreState.State", + "id": 2665, + "members": [ + { + "constant": false, + "id": 2644, + "name": "exchanges", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "948:35:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + }, + "typeName": { + "id": 2643, + "keyType": { + "id": 2641, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "956:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "948:25:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + }, + "valueType": { + "id": 2642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "965:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2646, + "name": "transferProxyAddress", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1043:28:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2645, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1043:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2648, + "name": "vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1123:20:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2647, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1123:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2652, + "name": "validFactories", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1203:39:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 2651, + "keyType": { + "id": 2649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1211:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1203:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2650, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1222:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2656, + "name": "validSets", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1293:34:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 2655, + "keyType": { + "id": 2653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1301:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1293:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2654, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1312:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2660, + "name": "orderFills", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1383:35:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 2659, + "keyType": { + "id": 2657, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1391:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1383:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 2658, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1402:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2664, + "name": "orderCancels", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1476:37:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 2663, + "keyType": { + "id": 2661, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1484:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1476:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 2662, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1495:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "State", + "nodeType": "StructDefinition", + "scope": 2751, + "src": "871:649:22", + "visibility": "public" + }, + { + "constant": false, + "id": 2667, + "name": "state", + "nodeType": "VariableDeclaration", + "scope": 2751, + "src": "1579:18:22", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State" + }, + "typeName": { + "contractScope": null, + "id": 2666, + "name": "State", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2665, + "src": "1579:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage_ptr", + "typeString": "struct CoreState.State" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2679, + "nodeType": "Block", + "src": "1751:52:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2674, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1768:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2675, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchanges", + "nodeType": "MemberAccess", + "referencedDeclaration": 2644, + "src": "1768:15:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 2677, + "indexExpression": { + "argumentTypes": null, + "id": 2676, + "name": "_exchangeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "1784:11:22", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1768:28:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2673, + "id": 2678, + "nodeType": "Return", + "src": "1761:35:22" + } + ] + }, + "documentation": null, + "id": 2680, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "exchanges", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2669, + "name": "_exchangeId", + "nodeType": "VariableDeclaration", + "scope": 2680, + "src": "1675:17:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2668, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1675:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1674:19:22" + }, + "payable": false, + "returnParameters": { + "id": 2673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2672, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2680, + "src": "1738:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1738:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1737:9:22" + }, + "scope": 2751, + "src": "1656:147:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2688, + "nodeType": "Block", + "src": "1898:50:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2685, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1915:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2686, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "1915:26:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2684, + "id": 2687, + "nodeType": "Return", + "src": "1908:33:22" + } + ] + }, + "documentation": null, + "id": 2689, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "transferProxyAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2681, + "nodeType": "ParameterList", + "parameters": [], + "src": "1838:2:22" + }, + "payable": false, + "returnParameters": { + "id": 2684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2683, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "1885:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1885:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1884:9:22" + }, + "scope": 2751, + "src": "1809:139:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2697, + "nodeType": "Block", + "src": "2035:42:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2694, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2052:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2695, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "2052:18:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2693, + "id": 2696, + "nodeType": "Return", + "src": "2045:25:22" + } + ] + }, + "documentation": null, + "id": 2698, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "vaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [], + "src": "1975:2:22" + }, + "payable": false, + "returnParameters": { + "id": 2693, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2692, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2698, + "src": "2022:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2022:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2021:9:22" + }, + "scope": 2751, + "src": "1954:123:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2710, + "nodeType": "Block", + "src": "2179:54:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2705, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2196:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2706, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "2196:20:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2708, + "indexExpression": { + "argumentTypes": null, + "id": 2707, + "name": "_factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2700, + "src": "2217:8:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2196:30:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2704, + "id": 2709, + "nodeType": "Return", + "src": "2189:37:22" + } + ] + }, + "documentation": null, + "id": 2711, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validFactories", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2700, + "name": "_factory", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "2107:16:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2699, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2107:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2106:18:22" + }, + "payable": false, + "returnParameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2703, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "2169:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2702, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2169:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2168:6:22" + }, + "scope": 2751, + "src": "2083:150:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2723, + "nodeType": "Block", + "src": "2326:45:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2718, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2343:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2719, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "2343:15:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2721, + "indexExpression": { + "argumentTypes": null, + "id": 2720, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2713, + "src": "2359:4:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2343:21:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2717, + "id": 2722, + "nodeType": "Return", + "src": "2336:28:22" + } + ] + }, + "documentation": null, + "id": 2724, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validSets", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2713, + "name": "_set", + "nodeType": "VariableDeclaration", + "scope": 2724, + "src": "2258:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2258:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2257:14:22" + }, + "payable": false, + "returnParameters": { + "id": 2717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2716, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2724, + "src": "2316:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2715, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2316:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2315:6:22" + }, + "scope": 2751, + "src": "2239:132:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2736, + "nodeType": "Block", + "src": "2471:52:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2731, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2488:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2732, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderFills", + "nodeType": "MemberAccess", + "referencedDeclaration": 2660, + "src": "2488:16:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2734, + "indexExpression": { + "argumentTypes": null, + "id": 2733, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2726, + "src": "2505:10:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2488:28:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2730, + "id": 2735, + "nodeType": "Return", + "src": "2481:35:22" + } + ] + }, + "documentation": null, + "id": 2737, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "orderFills", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2726, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "2397:18:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2725, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2397:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2396:20:22" + }, + "payable": false, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "2461:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2728, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2461:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2460:6:22" + }, + "scope": 2751, + "src": "2377:146:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2749, + "nodeType": "Block", + "src": "2625:54:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2744, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2642:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2745, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderCancels", + "nodeType": "MemberAccess", + "referencedDeclaration": 2664, + "src": "2642:18:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2747, + "indexExpression": { + "argumentTypes": null, + "id": 2746, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "2661:10:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2642:30:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2743, + "id": 2748, + "nodeType": "Return", + "src": "2635:37:22" + } + ] + }, + "documentation": null, + "id": 2750, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "orderCancels", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2739, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 2750, + "src": "2551:18:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2738, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2551:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2550:20:22" + }, + "payable": false, + "returnParameters": { + "id": 2743, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2742, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2750, + "src": "2615:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2741, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2615:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2614:6:22" + }, + "scope": 2751, + "src": "2529:150:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 2752, + "src": "800:1881:22" + } + ], + "src": "597:2085:22" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.905Z" +} \ No newline at end of file diff --git a/artifacts/json/DetailedERC20.json b/artifacts/json/DetailedERC20.json index 9ed527678..1f110388d 100644 --- a/artifacts/json/DetailedERC20.json +++ b/artifacts/json/DetailedERC20.json @@ -246,14 +246,14 @@ "absolutePath": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", "exportedSymbols": { "DetailedERC20": [ - 2371 + 1099 ] }, - "id": 2372, + "id": 1100, "nodeType": "SourceUnit", "nodes": [ { - "id": 2339, + "id": 1067, "literals": [ "solidity", "^", @@ -261,16 +261,16 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:13" + "src": "0:24:7" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "./ERC20.sol", - "id": 2340, + "id": 1068, "nodeType": "ImportDirective", - "scope": 2372, - "sourceUnit": 2415, - "src": "26:21:13", + "scope": 1100, + "sourceUnit": 1143, + "src": "26:21:7", "symbolAliases": [], "unitAlias": "" }, @@ -280,44 +280,44 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2341, + "id": 1069, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "309:5:13", + "referencedDeclaration": 1142, + "src": "309:5:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", + "typeIdentifier": "t_contract$_ERC20_$1142", "typeString": "contract ERC20" } }, - "id": 2342, + "id": 1070, "nodeType": "InheritanceSpecifier", - "src": "309:5:13" + "src": "309:5:7" } ], "contractDependencies": [ - 2414, - 2446 + 1142, + 1174 ], "contractKind": "contract", "documentation": "@title DetailedERC20 token\n@dev The decimals are only for visualization purposes.\nAll the operations are done using the smallest and indivisible token unit,\njust as on Ethereum all the operations are done in wei.", "fullyImplemented": false, - "id": 2371, + "id": 1099, "linearizedBaseContracts": [ - 2371, - 2414, - 2446 + 1099, + 1142, + 1174 ], "name": "DetailedERC20", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2344, + "id": 1072, "name": "name", "nodeType": "VariableDeclaration", - "scope": 2371, - "src": "319:18:13", + "scope": 1099, + "src": "319:18:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -325,10 +325,10 @@ "typeString": "string" }, "typeName": { - "id": 2343, + "id": 1071, "name": "string", "nodeType": "ElementaryTypeName", - "src": "319:6:13", + "src": "319:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -339,11 +339,11 @@ }, { "constant": false, - "id": 2346, + "id": 1074, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 2371, - "src": "341:20:13", + "scope": 1099, + "src": "341:20:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -351,10 +351,10 @@ "typeString": "string" }, "typeName": { - "id": 2345, + "id": 1073, "name": "string", "nodeType": "ElementaryTypeName", - "src": "341:6:13", + "src": "341:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -365,11 +365,11 @@ }, { "constant": false, - "id": 2348, + "id": 1076, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 2371, - "src": "365:21:13", + "scope": 1099, + "src": "365:21:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -377,10 +377,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2347, + "id": 1075, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "365:5:13", + "src": "365:5:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -391,26 +391,26 @@ }, { "body": { - "id": 2369, + "id": 1097, "nodeType": "Block", - "src": "457:71:13", + "src": "457:71:7", "statements": [ { "expression": { "argumentTypes": null, - "id": 2359, + "id": 1087, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2357, + "id": 1085, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2344, - "src": "463:4:13", + "referencedDeclaration": 1072, + "src": "463:4:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -420,43 +420,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2358, + "id": 1086, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2350, - "src": "470:5:13", + "referencedDeclaration": 1078, + "src": "470:5:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "463:12:13", + "src": "463:12:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 2360, + "id": 1088, "nodeType": "ExpressionStatement", - "src": "463:12:13" + "src": "463:12:7" }, { "expression": { "argumentTypes": null, - "id": 2363, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2361, + "id": 1089, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2346, - "src": "481:6:13", + "referencedDeclaration": 1074, + "src": "481:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -466,43 +466,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2362, + "id": 1090, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2352, - "src": "490:7:13", + "referencedDeclaration": 1080, + "src": "490:7:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "481:16:13", + "src": "481:16:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 2364, + "id": 1092, "nodeType": "ExpressionStatement", - "src": "481:16:13" + "src": "481:16:7" }, { "expression": { "argumentTypes": null, - "id": 2367, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2365, + "id": 1093, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2348, - "src": "503:8:13", + "referencedDeclaration": 1076, + "src": "503:8:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -512,31 +512,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2366, + "id": 1094, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2354, - "src": "514:9:13", + "referencedDeclaration": 1082, + "src": "514:9:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "503:20:13", + "src": "503:20:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2368, + "id": 1096, "nodeType": "ExpressionStatement", - "src": "503:20:13" + "src": "503:20:7" } ] }, "documentation": null, - "id": 2370, + "id": 1098, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -544,16 +544,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2355, + "id": 1083, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2350, + "id": 1078, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "403:12:13", + "scope": 1098, + "src": "403:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -561,10 +561,10 @@ "typeString": "string" }, "typeName": { - "id": 2349, + "id": 1077, "name": "string", "nodeType": "ElementaryTypeName", - "src": "403:6:13", + "src": "403:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -575,11 +575,11 @@ }, { "constant": false, - "id": 2352, + "id": 1080, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "417:14:13", + "scope": 1098, + "src": "417:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -587,10 +587,10 @@ "typeString": "string" }, "typeName": { - "id": 2351, + "id": 1079, "name": "string", "nodeType": "ElementaryTypeName", - "src": "417:6:13", + "src": "417:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -601,11 +601,11 @@ }, { "constant": false, - "id": 2354, + "id": 1082, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "433:15:13", + "scope": 1098, + "src": "433:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -613,10 +613,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2353, + "id": 1081, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "433:5:13", + "src": "433:5:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -626,40 +626,40 @@ "visibility": "internal" } ], - "src": "402:47:13" + "src": "402:47:7" }, "payable": false, "returnParameters": { - "id": 2356, + "id": 1084, "nodeType": "ParameterList", "parameters": [], - "src": "457:0:13" + "src": "457:0:7" }, - "scope": 2371, - "src": "391:137:13", + "scope": 1099, + "src": "391:137:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2372, - "src": "283:247:13" + "scope": 1100, + "src": "283:247:7" } ], - "src": "0:531:13" + "src": "0:531:7" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", "exportedSymbols": { "DetailedERC20": [ - 2371 + 1099 ] }, - "id": 2372, + "id": 1100, "nodeType": "SourceUnit", "nodes": [ { - "id": 2339, + "id": 1067, "literals": [ "solidity", "^", @@ -667,16 +667,16 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:13" + "src": "0:24:7" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "./ERC20.sol", - "id": 2340, + "id": 1068, "nodeType": "ImportDirective", - "scope": 2372, - "sourceUnit": 2415, - "src": "26:21:13", + "scope": 1100, + "sourceUnit": 1143, + "src": "26:21:7", "symbolAliases": [], "unitAlias": "" }, @@ -686,44 +686,44 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2341, + "id": 1069, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "309:5:13", + "referencedDeclaration": 1142, + "src": "309:5:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", + "typeIdentifier": "t_contract$_ERC20_$1142", "typeString": "contract ERC20" } }, - "id": 2342, + "id": 1070, "nodeType": "InheritanceSpecifier", - "src": "309:5:13" + "src": "309:5:7" } ], "contractDependencies": [ - 2414, - 2446 + 1142, + 1174 ], "contractKind": "contract", "documentation": "@title DetailedERC20 token\n@dev The decimals are only for visualization purposes.\nAll the operations are done using the smallest and indivisible token unit,\njust as on Ethereum all the operations are done in wei.", "fullyImplemented": false, - "id": 2371, + "id": 1099, "linearizedBaseContracts": [ - 2371, - 2414, - 2446 + 1099, + 1142, + 1174 ], "name": "DetailedERC20", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2344, + "id": 1072, "name": "name", "nodeType": "VariableDeclaration", - "scope": 2371, - "src": "319:18:13", + "scope": 1099, + "src": "319:18:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -731,10 +731,10 @@ "typeString": "string" }, "typeName": { - "id": 2343, + "id": 1071, "name": "string", "nodeType": "ElementaryTypeName", - "src": "319:6:13", + "src": "319:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -745,11 +745,11 @@ }, { "constant": false, - "id": 2346, + "id": 1074, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 2371, - "src": "341:20:13", + "scope": 1099, + "src": "341:20:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -757,10 +757,10 @@ "typeString": "string" }, "typeName": { - "id": 2345, + "id": 1073, "name": "string", "nodeType": "ElementaryTypeName", - "src": "341:6:13", + "src": "341:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -771,11 +771,11 @@ }, { "constant": false, - "id": 2348, + "id": 1076, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 2371, - "src": "365:21:13", + "scope": 1099, + "src": "365:21:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -783,10 +783,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2347, + "id": 1075, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "365:5:13", + "src": "365:5:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -797,26 +797,26 @@ }, { "body": { - "id": 2369, + "id": 1097, "nodeType": "Block", - "src": "457:71:13", + "src": "457:71:7", "statements": [ { "expression": { "argumentTypes": null, - "id": 2359, + "id": 1087, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2357, + "id": 1085, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2344, - "src": "463:4:13", + "referencedDeclaration": 1072, + "src": "463:4:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -826,43 +826,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2358, + "id": 1086, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2350, - "src": "470:5:13", + "referencedDeclaration": 1078, + "src": "470:5:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "463:12:13", + "src": "463:12:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 2360, + "id": 1088, "nodeType": "ExpressionStatement", - "src": "463:12:13" + "src": "463:12:7" }, { "expression": { "argumentTypes": null, - "id": 2363, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2361, + "id": 1089, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2346, - "src": "481:6:13", + "referencedDeclaration": 1074, + "src": "481:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -872,43 +872,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2362, + "id": 1090, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2352, - "src": "490:7:13", + "referencedDeclaration": 1080, + "src": "490:7:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "481:16:13", + "src": "481:16:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 2364, + "id": 1092, "nodeType": "ExpressionStatement", - "src": "481:16:13" + "src": "481:16:7" }, { "expression": { "argumentTypes": null, - "id": 2367, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2365, + "id": 1093, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2348, - "src": "503:8:13", + "referencedDeclaration": 1076, + "src": "503:8:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -918,31 +918,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2366, + "id": 1094, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2354, - "src": "514:9:13", + "referencedDeclaration": 1082, + "src": "514:9:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "503:20:13", + "src": "503:20:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2368, + "id": 1096, "nodeType": "ExpressionStatement", - "src": "503:20:13" + "src": "503:20:7" } ] }, "documentation": null, - "id": 2370, + "id": 1098, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -950,16 +950,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2355, + "id": 1083, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2350, + "id": 1078, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "403:12:13", + "scope": 1098, + "src": "403:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -967,10 +967,10 @@ "typeString": "string" }, "typeName": { - "id": 2349, + "id": 1077, "name": "string", "nodeType": "ElementaryTypeName", - "src": "403:6:13", + "src": "403:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -981,11 +981,11 @@ }, { "constant": false, - "id": 2352, + "id": 1080, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "417:14:13", + "scope": 1098, + "src": "417:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -993,10 +993,10 @@ "typeString": "string" }, "typeName": { - "id": 2351, + "id": 1079, "name": "string", "nodeType": "ElementaryTypeName", - "src": "417:6:13", + "src": "417:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1007,11 +1007,11 @@ }, { "constant": false, - "id": 2354, + "id": 1082, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "433:15:13", + "scope": 1098, + "src": "433:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1019,10 +1019,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2353, + "id": 1081, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "433:5:13", + "src": "433:5:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1032,33 +1032,33 @@ "visibility": "internal" } ], - "src": "402:47:13" + "src": "402:47:7" }, "payable": false, "returnParameters": { - "id": 2356, + "id": 1084, "nodeType": "ParameterList", "parameters": [], - "src": "457:0:13" + "src": "457:0:7" }, - "scope": 2371, - "src": "391:137:13", + "scope": 1099, + "src": "391:137:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2372, - "src": "283:247:13" + "scope": 1100, + "src": "283:247:7" } ], - "src": "0:531:13" + "src": "0:531:7" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.587Z" + "updatedAt": "2018-07-07T15:28:53.733Z" } \ No newline at end of file diff --git a/artifacts/json/DummyToken.json b/artifacts/json/DummyToken.json index 2577959b8..cf4236848 100644 --- a/artifacts/json/DummyToken.json +++ b/artifacts/json/DummyToken.json @@ -444,62 +444,62 @@ "type": "function" } ], - "bytecode": "0x60806040526000600360146101000a81548160ff0219169083151502179055503480156200002c57600080fd5b5060405162001d5b38038062001d5b8339810180604052810190808051820192919060200180518201929190602001805190602001909291908051906020019092919050505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360049080519060200190620000cb92919062000140565b508260059080519060200190620000e492919062000140565b508160068190555080600181905550806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050620001ef565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018357805160ff1916838001178555620001b4565b82800160010185558215620001b4579182015b82811115620001b357825182559160200191906001019062000196565b5b509050620001c39190620001c7565b5090565b620001ec91905b80821115620001e8576000816000905550600101620001ce565b5090565b90565b611b5c80620001ff6000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010157806306fdde0314610130578063095ea7b3146101c057806318160ddd1461022557806323b872dd14610250578063313ce567146102d557806340c10f1914610300578063661884631461036557806370a08231146103ca578063715018a6146104215780637d64bcb4146104385780638da5cb5b1461046757806395d89b41146104be578063a9059cbb1461054e578063d73dd623146105b3578063dd62ed3e14610618578063e30443bc1461068f578063f2fde38b146106dc575b600080fd5b34801561010d57600080fd5b5061011661071f565b604051808215151515815260200191505060405180910390f35b34801561013c57600080fd5b50610145610732565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018557808201518184015260208101905061016a565b50505050905090810190601f1680156101b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cc57600080fd5b5061020b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107d0565b604051808215151515815260200191505060405180910390f35b34801561023157600080fd5b5061023a6108c2565b6040518082815260200191505060405180910390f35b34801561025c57600080fd5b506102bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108cc565b604051808215151515815260200191505060405180910390f35b3480156102e157600080fd5b506102ea610c86565b6040518082815260200191505060405180910390f35b34801561030c57600080fd5b5061034b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c8c565b604051808215151515815260200191505060405180910390f35b34801561037157600080fd5b506103b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e72565b604051808215151515815260200191505060405180910390f35b3480156103d657600080fd5b5061040b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611103565b6040518082815260200191505060405180910390f35b34801561042d57600080fd5b5061043661114b565b005b34801561044457600080fd5b5061044d611250565b604051808215151515815260200191505060405180910390f35b34801561047357600080fd5b5061047c611318565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ca57600080fd5b506104d361133e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105135780820151818401526020810190506104f8565b50505050905090810190601f1680156105405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561055a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113dc565b604051808215151515815260200191505060405180910390f35b3480156105bf57600080fd5b506105fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115fb565b604051808215151515815260200191505060405180910390f35b34801561062457600080fd5b50610679600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117f7565b6040518082815260200191505060405180910390f35b34801561069b57600080fd5b506106da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061187e565b005b3480156106e857600080fd5b5061071d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611997565b005b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107c85780601f1061079d576101008083540402835291602001916107c8565b820191906000526020600020905b8154815290600101906020018083116107ab57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561090957600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561095657600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156109e157600080fd5b610a32826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ac5826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b9682600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60065481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cea57600080fd5b600360149054906101000a900460ff16151515610d0657600080fd5b610d1b82600154611a1890919063ffffffff16565b600181905550610d72826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610f83576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611017565b610f9683826119ff90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112ae57600080fd5b600360149054906101000a900460ff161515156112ca57600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d45780601f106113a9576101008083540402835291602001916113d4565b820191906000526020600020905b8154815290600101906020018083116113b757829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561141957600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561146657600080fd5b6114b7826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061154a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061168c82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118dc57600080fd5b6118e583611103565b9050808210156119215761191661190583836119ff90919063ffffffff16565b6001546119ff90919063ffffffff16565b60018190555061194f565b61194861193782846119ff90919063ffffffff16565b600154611a1890919063ffffffff16565b6001819055505b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119f357600080fd5b6119fc81611a34565b50565b6000828211151515611a0d57fe5b818303905092915050565b60008183019050828110151515611a2b57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a7057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582066bfafd74ab0efc0b5d896a8b2bf257c575387f5dc4d73712d4ff3a34507e7080029", - "deployedBytecode": "0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010157806306fdde0314610130578063095ea7b3146101c057806318160ddd1461022557806323b872dd14610250578063313ce567146102d557806340c10f1914610300578063661884631461036557806370a08231146103ca578063715018a6146104215780637d64bcb4146104385780638da5cb5b1461046757806395d89b41146104be578063a9059cbb1461054e578063d73dd623146105b3578063dd62ed3e14610618578063e30443bc1461068f578063f2fde38b146106dc575b600080fd5b34801561010d57600080fd5b5061011661071f565b604051808215151515815260200191505060405180910390f35b34801561013c57600080fd5b50610145610732565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018557808201518184015260208101905061016a565b50505050905090810190601f1680156101b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cc57600080fd5b5061020b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107d0565b604051808215151515815260200191505060405180910390f35b34801561023157600080fd5b5061023a6108c2565b6040518082815260200191505060405180910390f35b34801561025c57600080fd5b506102bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108cc565b604051808215151515815260200191505060405180910390f35b3480156102e157600080fd5b506102ea610c86565b6040518082815260200191505060405180910390f35b34801561030c57600080fd5b5061034b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c8c565b604051808215151515815260200191505060405180910390f35b34801561037157600080fd5b506103b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e72565b604051808215151515815260200191505060405180910390f35b3480156103d657600080fd5b5061040b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611103565b6040518082815260200191505060405180910390f35b34801561042d57600080fd5b5061043661114b565b005b34801561044457600080fd5b5061044d611250565b604051808215151515815260200191505060405180910390f35b34801561047357600080fd5b5061047c611318565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ca57600080fd5b506104d361133e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105135780820151818401526020810190506104f8565b50505050905090810190601f1680156105405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561055a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113dc565b604051808215151515815260200191505060405180910390f35b3480156105bf57600080fd5b506105fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115fb565b604051808215151515815260200191505060405180910390f35b34801561062457600080fd5b50610679600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117f7565b6040518082815260200191505060405180910390f35b34801561069b57600080fd5b506106da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061187e565b005b3480156106e857600080fd5b5061071d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611997565b005b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107c85780601f1061079d576101008083540402835291602001916107c8565b820191906000526020600020905b8154815290600101906020018083116107ab57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561090957600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561095657600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156109e157600080fd5b610a32826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ac5826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b9682600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60065481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cea57600080fd5b600360149054906101000a900460ff16151515610d0657600080fd5b610d1b82600154611a1890919063ffffffff16565b600181905550610d72826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610f83576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611017565b610f9683826119ff90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112ae57600080fd5b600360149054906101000a900460ff161515156112ca57600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d45780601f106113a9576101008083540402835291602001916113d4565b820191906000526020600020905b8154815290600101906020018083116113b757829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561141957600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561146657600080fd5b6114b7826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061154a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061168c82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118dc57600080fd5b6118e583611103565b9050808210156119215761191661190583836119ff90919063ffffffff16565b6001546119ff90919063ffffffff16565b60018190555061194f565b61194861193782846119ff90919063ffffffff16565b600154611a1890919063ffffffff16565b6001819055505b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119f357600080fd5b6119fc81611a34565b50565b6000828211151515611a0d57fe5b818303905092915050565b60008183019050828110151515611a2b57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a7057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582066bfafd74ab0efc0b5d896a8b2bf257c575387f5dc4d73712d4ff3a34507e7080029", - "sourceMap": "210:727:7:-;;;548:5:16;518:35;;;;;;;;;;;;;;;;;;;;349:252:7;8:9:-1;5:2;;;30:1;27;20:12;5:2;349:252:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:10:11;567:5;;:18;;;;;;;;;;;;;;;;;;469:5:7;462:4;:12;;;;;;;;;;;;:::i;:::-;;489:7;480:6;:16;;;;;;;;;;;;:::i;:::-;;513:9;502:8;:20;;;;543:12;528;:27;;;;584:12;561:8;:20;570:10;561:20;;;;;;;;;;;;;;;:35;;;;349:252;;;;210:727;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "210:727:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;518:35:16;;;;;;;;;;;;;;;;;;;;;;;;;;;278:18:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;278:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;278:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:12;;;;;;;;;;;;;;;;;;;;;;;736:470:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;324:20:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;324:20:7;;;;;;;;;;;;;;;;;;;;;;;936:312:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;936:312:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:425:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:11;;;;;;1362:140:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1362:140:16;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:11;;;;;;;;;;;;;;;;;;;;;;;;;;;300::7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;300:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;300:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;605:330:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;605:330:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35:16;;;;;;;;;;;;;:::o;278:18:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:17:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;371:83:12:-;415:7;437:12;;430:19;;371:83;:::o;736:470:17:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;324:20:7:-;;;;:::o;936:312:16:-;1050:4;682:5;;;;;;;;;;;668:19;;:10;:19;;;660:28;;;;;;;;593:15;;;;;;;;;;;592:16;584:25;;;;;;;;1079;1096:7;1079:12;;:16;;:25;;;;:::i;:::-;1064:12;:40;;;;1126:26;1144:7;1126:8;:13;1135:3;1126:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;1110:8;:13;1119:3;1110:13;;;;;;;;;;;;;;;:42;;;;1168:3;1163:18;;;1173:7;1163:18;;;;;;;;;;;;;;;;;;1213:3;1192:34;;1209:1;1192:34;;;1218:7;1192:34;;;;;;;;;;;;;;;;;;1239:4;1232:11;;936:312;;;;:::o;3701:425:17:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:12:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;827:111:11:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;1362:140:16:-;1421:4;719:5:11;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;593:15:16;;;;;;;;;;;592:16;584:25;;;;;;;;1451:4;1433:15;;:22;;;;;;;;;;;;;;;;;;1466:14;;;;;;;;;;1493:4;1486:11;;1362:140;:::o;238:20:11:-;;;;;;;;;;;;;:::o;300::7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;608:321:12:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:17:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;605:330:7:-;678:16;719:5:11;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;:18:7;707:7;697:9;:18::i;:::-;678:37;;734:11;725:6;:20;721:178;;;772:41;789:23;805:6;789:11;:15;;:23;;;;:::i;:::-;772:12;;:16;;:41;;;;:::i;:::-;757:12;:56;;;;721:178;;;851:41;868:23;879:11;868:6;:10;;:23;;;;:::i;:::-;851:12;;:16;;:41;;;;:::i;:::-;836:12;:56;;;;721:178;924:6;904:8;:17;913:7;904:17;;;;;;;;;;;;;;;:26;;;;605:330;;;:::o;1100:103:11:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1042:110:10:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;1338:171:11:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", - "source": "pragma solidity 0.4.23;\n\nimport \"zeppelin-solidity/contracts/token/ERC20/MintableToken.sol\";\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\n\ncontract DummyToken is MintableToken {\n using SafeMath for uint;\n string public name;\n string public symbol;\n uint public decimals;\n\n constructor(\n string _name,\n string _symbol,\n uint _decimals,\n uint _totalSupply)\n public\n {\n name = _name;\n symbol = _symbol;\n decimals = _decimals;\n totalSupply_ = _totalSupply;\n balances[msg.sender] = _totalSupply;\n }\n\n function setBalance(address _target, uint _value) public onlyOwner {\n uint currBalance = balanceOf(_target);\n if (_value < currBalance) {\n totalSupply_ = totalSupply_.sub(currBalance.sub(_value));\n } else {\n totalSupply_ = totalSupply_.add(_value.sub(currBalance));\n }\n balances[_target] = _value;\n }\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/DummyToken.sol", + "bytecode": "0x60806040526000600360146101000a81548160ff0219169083151502179055503480156200002c57600080fd5b5060405162001d5b38038062001d5b8339810180604052810190808051820192919060200180518201929190602001805190602001909291908051906020019092919050505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360049080519060200190620000cb92919062000140565b508260059080519060200190620000e492919062000140565b508160068190555080600181905550806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050620001ef565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018357805160ff1916838001178555620001b4565b82800160010185558215620001b4579182015b82811115620001b357825182559160200191906001019062000196565b5b509050620001c39190620001c7565b5090565b620001ec91905b80821115620001e8576000816000905550600101620001ce565b5090565b90565b611b5c80620001ff6000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010157806306fdde0314610130578063095ea7b3146101c057806318160ddd1461022557806323b872dd14610250578063313ce567146102d557806340c10f1914610300578063661884631461036557806370a08231146103ca578063715018a6146104215780637d64bcb4146104385780638da5cb5b1461046757806395d89b41146104be578063a9059cbb1461054e578063d73dd623146105b3578063dd62ed3e14610618578063e30443bc1461068f578063f2fde38b146106dc575b600080fd5b34801561010d57600080fd5b5061011661071f565b604051808215151515815260200191505060405180910390f35b34801561013c57600080fd5b50610145610732565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018557808201518184015260208101905061016a565b50505050905090810190601f1680156101b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cc57600080fd5b5061020b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107d0565b604051808215151515815260200191505060405180910390f35b34801561023157600080fd5b5061023a6108c2565b6040518082815260200191505060405180910390f35b34801561025c57600080fd5b506102bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108cc565b604051808215151515815260200191505060405180910390f35b3480156102e157600080fd5b506102ea610c86565b6040518082815260200191505060405180910390f35b34801561030c57600080fd5b5061034b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c8c565b604051808215151515815260200191505060405180910390f35b34801561037157600080fd5b506103b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e72565b604051808215151515815260200191505060405180910390f35b3480156103d657600080fd5b5061040b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611103565b6040518082815260200191505060405180910390f35b34801561042d57600080fd5b5061043661114b565b005b34801561044457600080fd5b5061044d611250565b604051808215151515815260200191505060405180910390f35b34801561047357600080fd5b5061047c611318565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ca57600080fd5b506104d361133e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105135780820151818401526020810190506104f8565b50505050905090810190601f1680156105405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561055a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113dc565b604051808215151515815260200191505060405180910390f35b3480156105bf57600080fd5b506105fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115fb565b604051808215151515815260200191505060405180910390f35b34801561062457600080fd5b50610679600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117f7565b6040518082815260200191505060405180910390f35b34801561069b57600080fd5b506106da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061187e565b005b3480156106e857600080fd5b5061071d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611997565b005b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107c85780601f1061079d576101008083540402835291602001916107c8565b820191906000526020600020905b8154815290600101906020018083116107ab57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561090957600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561095657600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156109e157600080fd5b610a32826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ac5826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b9682600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60065481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cea57600080fd5b600360149054906101000a900460ff16151515610d0657600080fd5b610d1b82600154611a1890919063ffffffff16565b600181905550610d72826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610f83576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611017565b610f9683826119ff90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112ae57600080fd5b600360149054906101000a900460ff161515156112ca57600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d45780601f106113a9576101008083540402835291602001916113d4565b820191906000526020600020905b8154815290600101906020018083116113b757829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561141957600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561146657600080fd5b6114b7826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061154a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061168c82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118dc57600080fd5b6118e583611103565b9050808210156119215761191661190583836119ff90919063ffffffff16565b6001546119ff90919063ffffffff16565b60018190555061194f565b61194861193782846119ff90919063ffffffff16565b600154611a1890919063ffffffff16565b6001819055505b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119f357600080fd5b6119fc81611a34565b50565b6000828211151515611a0d57fe5b818303905092915050565b60008183019050828110151515611a2b57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a7057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820d88c96738891f635e5407516722f191c6b523221bd7e012d60abeaa88793ccfe0029", + "deployedBytecode": "0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010157806306fdde0314610130578063095ea7b3146101c057806318160ddd1461022557806323b872dd14610250578063313ce567146102d557806340c10f1914610300578063661884631461036557806370a08231146103ca578063715018a6146104215780637d64bcb4146104385780638da5cb5b1461046757806395d89b41146104be578063a9059cbb1461054e578063d73dd623146105b3578063dd62ed3e14610618578063e30443bc1461068f578063f2fde38b146106dc575b600080fd5b34801561010d57600080fd5b5061011661071f565b604051808215151515815260200191505060405180910390f35b34801561013c57600080fd5b50610145610732565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018557808201518184015260208101905061016a565b50505050905090810190601f1680156101b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cc57600080fd5b5061020b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107d0565b604051808215151515815260200191505060405180910390f35b34801561023157600080fd5b5061023a6108c2565b6040518082815260200191505060405180910390f35b34801561025c57600080fd5b506102bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108cc565b604051808215151515815260200191505060405180910390f35b3480156102e157600080fd5b506102ea610c86565b6040518082815260200191505060405180910390f35b34801561030c57600080fd5b5061034b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c8c565b604051808215151515815260200191505060405180910390f35b34801561037157600080fd5b506103b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e72565b604051808215151515815260200191505060405180910390f35b3480156103d657600080fd5b5061040b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611103565b6040518082815260200191505060405180910390f35b34801561042d57600080fd5b5061043661114b565b005b34801561044457600080fd5b5061044d611250565b604051808215151515815260200191505060405180910390f35b34801561047357600080fd5b5061047c611318565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ca57600080fd5b506104d361133e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105135780820151818401526020810190506104f8565b50505050905090810190601f1680156105405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561055a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113dc565b604051808215151515815260200191505060405180910390f35b3480156105bf57600080fd5b506105fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115fb565b604051808215151515815260200191505060405180910390f35b34801561062457600080fd5b50610679600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117f7565b6040518082815260200191505060405180910390f35b34801561069b57600080fd5b506106da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061187e565b005b3480156106e857600080fd5b5061071d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611997565b005b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107c85780601f1061079d576101008083540402835291602001916107c8565b820191906000526020600020905b8154815290600101906020018083116107ab57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561090957600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561095657600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156109e157600080fd5b610a32826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ac5826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b9682600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60065481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cea57600080fd5b600360149054906101000a900460ff16151515610d0657600080fd5b610d1b82600154611a1890919063ffffffff16565b600181905550610d72826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610f83576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611017565b610f9683826119ff90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112ae57600080fd5b600360149054906101000a900460ff161515156112ca57600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d45780601f106113a9576101008083540402835291602001916113d4565b820191906000526020600020905b8154815290600101906020018083116113b757829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561141957600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561146657600080fd5b6114b7826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061154a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061168c82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118dc57600080fd5b6118e583611103565b9050808210156119215761191661190583836119ff90919063ffffffff16565b6001546119ff90919063ffffffff16565b60018190555061194f565b61194861193782846119ff90919063ffffffff16565b600154611a1890919063ffffffff16565b6001819055505b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119f357600080fd5b6119fc81611a34565b50565b6000828211151515611a0d57fe5b818303905092915050565b60008183019050828110151515611a2b57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a7057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820d88c96738891f635e5407516722f191c6b523221bd7e012d60abeaa88793ccfe0029", + "sourceMap": "210:727:30:-;;;548:5:44;518:35;;;;;;;;;;;;;;;;;;;;349:252:30;8:9:-1;5:2;;;30:1;27;20:12;5:2;349:252:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;469:5:30;462:4;:12;;;;;;;;;;;;:::i;:::-;;489:7;480:6;:16;;;;;;;;;;;;:::i;:::-;;513:9;502:8;:20;;;;543:12;528;:27;;;;584:12;561:8;:20;570:10;561:20;;;;;;;;;;;;;;;:35;;;;349:252;;;;210:727;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "210:727:30:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;518:35:44;;;;;;;;;;;;;;;;;;;;;;;;;;;278:18:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;278:18:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;278:18:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:40;;;;;;;;;;;;;;;;;;;;;;;736:470:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;324:20:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;324:20:30;;;;;;;;;;;;;;;;;;;;;;;936:312:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;936:312:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:425:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:39;;;;;;1362:140:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1362:140:44;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;300::30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;300:20:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;300:20:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;605:330:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;605:330:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35:44;;;;;;;;;;;;;:::o;278:18:30:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:45:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;371:83:40:-;415:7;437:12;;430:19;;371:83;:::o;736:470:45:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;324:20:30:-;;;;:::o;936:312:44:-;1050:4;682:5;;;;;;;;;;;668:19;;:10;:19;;;660:28;;;;;;;;593:15;;;;;;;;;;;592:16;584:25;;;;;;;;1079;1096:7;1079:12;;:16;;:25;;;;:::i;:::-;1064:12;:40;;;;1126:26;1144:7;1126:8;:13;1135:3;1126:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;1110:8;:13;1119:3;1110:13;;;;;;;;;;;;;;;:42;;;;1168:3;1163:18;;;1173:7;1163:18;;;;;;;;;;;;;;;;;;1213:3;1192:34;;1209:1;1192:34;;;1218:7;1192:34;;;;;;;;;;;;;;;;;;1239:4;1232:11;;936:312;;;;:::o;3701:425:45:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:40:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;827:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;1362:140:44:-;1421:4;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;593:15:44;;;;;;;;;;;592:16;584:25;;;;;;;;1451:4;1433:15;;:22;;;;;;;;;;;;;;;;;;1466:14;;;;;;;;;;1493:4;1486:11;;1362:140;:::o;238:20:39:-;;;;;;;;;;;;;:::o;300::30:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;608:321:40:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:45:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;605:330:30:-;678:16;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;:18:30;707:7;697:9;:18::i;:::-;678:37;;734:11;725:6;:20;721:178;;;772:41;789:23;805:6;789:11;:15;;:23;;;;:::i;:::-;772:12;;:16;;:41;;;;:::i;:::-;757:12;:56;;;;721:178;;;851:41;868:23;879:11;868:6;:10;;:23;;;;:::i;:::-;851:12;;:16;;:41;;;;:::i;:::-;836:12;:56;;;;721:178;924:6;904:8;:17;913:7;904:17;;;;;;;;;;;;;;;:26;;;;605:330;;;:::o;1100:103:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;1338:171:39:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", + "source": "pragma solidity 0.4.24;\n\nimport \"zeppelin-solidity/contracts/token/ERC20/MintableToken.sol\";\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\n\ncontract DummyToken is MintableToken {\n using SafeMath for uint;\n string public name;\n string public symbol;\n uint public decimals;\n\n constructor(\n string _name,\n string _symbol,\n uint _decimals,\n uint _totalSupply)\n public\n {\n name = _name;\n symbol = _symbol;\n decimals = _decimals;\n totalSupply_ = _totalSupply;\n balances[msg.sender] = _totalSupply;\n }\n\n function setBalance(address _target, uint _value) public onlyOwner {\n uint currBalance = balanceOf(_target);\n if (_value < currBalance) {\n totalSupply_ = totalSupply_.sub(currBalance.sub(_value));\n } else {\n totalSupply_ = totalSupply_.add(_value.sub(currBalance));\n }\n balances[_target] = _value;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/DummyToken.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/DummyToken.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/DummyToken.sol", "exportedSymbols": { "DummyToken": [ - 1787 + 3529 ] }, - "id": 1788, + "id": 3530, "nodeType": "SourceUnit", "nodes": [ { - "id": 1689, + "id": 3431, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:7" + "src": "0:23:30" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", "file": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", - "id": 1690, + "id": 3432, "nodeType": "ImportDirective", - "scope": 1788, - "sourceUnit": 2553, - "src": "25:67:7", + "scope": 3530, + "sourceUnit": 5136, + "src": "25:67:30", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "zeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1691, + "id": 3433, "nodeType": "ImportDirective", - "scope": 1788, - "sourceUnit": 2156, - "src": "93:55:7", + "scope": 3530, + "sourceUnit": 4739, + "src": "93:55:30", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1692, + "id": 3434, "nodeType": "ImportDirective", - "scope": 1788, - "sourceUnit": 2242, - "src": "149:59:7", + "scope": 3530, + "sourceUnit": 4825, + "src": "149:59:30", "symbolAliases": [], "unitAlias": "" }, @@ -509,66 +509,66 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1693, + "id": 3435, "name": "MintableToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2552, - "src": "233:13:7", + "referencedDeclaration": 5135, + "src": "233:13:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_MintableToken_$2552", + "typeIdentifier": "t_contract$_MintableToken_$5135", "typeString": "contract MintableToken" } }, - "id": 1694, + "id": 3436, "nodeType": "InheritanceSpecifier", - "src": "233:13:7" + "src": "233:13:30" } ], "contractDependencies": [ - 2241, - 2337, - 2414, - 2446, - 2552, - 2799 + 4824, + 4920, + 4997, + 5029, + 5135, + 5382 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1787, + "id": 3529, "linearizedBaseContracts": [ - 1787, - 2552, - 2241, - 2799, - 2337, - 2414, - 2446 + 3529, + 5135, + 4824, + 5382, + 4920, + 4997, + 5029 ], "name": "DummyToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1697, + "id": 3439, "libraryName": { "contractScope": null, - "id": 1695, + "id": 3437, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "257:8:7", + "referencedDeclaration": 4738, + "src": "257:8:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", + "typeIdentifier": "t_contract$_SafeMath_$4738", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "251:24:7", + "src": "251:24:30", "typeName": { - "id": 1696, + "id": 3438, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "270:4:7", + "src": "270:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -577,11 +577,11 @@ }, { "constant": false, - "id": 1699, + "id": 3441, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1787, - "src": "278:18:7", + "scope": 3529, + "src": "278:18:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -589,10 +589,10 @@ "typeString": "string" }, "typeName": { - "id": 1698, + "id": 3440, "name": "string", "nodeType": "ElementaryTypeName", - "src": "278:6:7", + "src": "278:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -603,11 +603,11 @@ }, { "constant": false, - "id": 1701, + "id": 3443, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1787, - "src": "300:20:7", + "scope": 3529, + "src": "300:20:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -615,10 +615,10 @@ "typeString": "string" }, "typeName": { - "id": 1700, + "id": 3442, "name": "string", "nodeType": "ElementaryTypeName", - "src": "300:6:7", + "src": "300:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -629,11 +629,11 @@ }, { "constant": false, - "id": 1703, + "id": 3445, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 1787, - "src": "324:20:7", + "scope": 3529, + "src": "324:20:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -641,10 +641,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1702, + "id": 3444, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "324:4:7", + "src": "324:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -655,26 +655,26 @@ }, { "body": { - "id": 1737, + "id": 3479, "nodeType": "Block", - "src": "456:145:7", + "src": "456:145:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 1716, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1714, + "id": 3456, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1699, - "src": "462:4:7", + "referencedDeclaration": 3441, + "src": "462:4:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -684,43 +684,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1715, + "id": 3457, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "469:5:7", + "referencedDeclaration": 3447, + "src": "469:5:30", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "462:12:7", + "src": "462:12:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1717, + "id": 3459, "nodeType": "ExpressionStatement", - "src": "462:12:7" + "src": "462:12:30" }, { "expression": { "argumentTypes": null, - "id": 1720, + "id": 3462, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1718, + "id": 3460, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1701, - "src": "480:6:7", + "referencedDeclaration": 3443, + "src": "480:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -730,43 +730,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1719, + "id": 3461, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1707, - "src": "489:7:7", + "referencedDeclaration": 3449, + "src": "489:7:30", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "480:16:7", + "src": "480:16:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1721, + "id": 3463, "nodeType": "ExpressionStatement", - "src": "480:16:7" + "src": "480:16:30" }, { "expression": { "argumentTypes": null, - "id": 1724, + "id": 3466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1722, + "id": 3464, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1703, - "src": "502:8:7", + "referencedDeclaration": 3445, + "src": "502:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -776,43 +776,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1723, + "id": 3465, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1709, - "src": "513:9:7", + "referencedDeclaration": 3451, + "src": "513:9:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "502:20:7", + "src": "502:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1725, + "id": 3467, "nodeType": "ExpressionStatement", - "src": "502:20:7" + "src": "502:20:30" }, { "expression": { "argumentTypes": null, - "id": 1728, + "id": 3470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1726, + "id": 3468, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "528:12:7", + "referencedDeclaration": 4839, + "src": "528:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -822,31 +822,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1727, + "id": 3469, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1711, - "src": "543:12:7", + "referencedDeclaration": 3453, + "src": "543:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "528:27:7", + "src": "528:27:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1729, + "id": 3471, "nodeType": "ExpressionStatement", - "src": "528:27:7" + "src": "528:27:30" }, { "expression": { "argumentTypes": null, - "id": 1735, + "id": 3477, "isConstant": false, "isLValue": false, "isPure": false, @@ -855,34 +855,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1730, + "id": 3472, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "561:8:7", + "referencedDeclaration": 4837, + "src": "561:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1733, + "id": 3475, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1731, + "id": 3473, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "570:3:7", + "referencedDeclaration": 5397, + "src": "570:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1732, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, @@ -890,7 +890,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "570:10:7", + "src": "570:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -901,7 +901,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "561:20:7", + "src": "561:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -911,31 +911,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1734, + "id": 3476, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1711, - "src": "584:12:7", + "referencedDeclaration": 3453, + "src": "584:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "561:35:7", + "src": "561:35:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1736, + "id": 3478, "nodeType": "ExpressionStatement", - "src": "561:35:7" + "src": "561:35:30" } ] }, "documentation": null, - "id": 1738, + "id": 3480, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -943,16 +943,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1712, + "id": 3454, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1705, + "id": 3447, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "366:12:7", + "scope": 3480, + "src": "366:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -960,10 +960,10 @@ "typeString": "string" }, "typeName": { - "id": 1704, + "id": 3446, "name": "string", "nodeType": "ElementaryTypeName", - "src": "366:6:7", + "src": "366:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -974,11 +974,11 @@ }, { "constant": false, - "id": 1707, + "id": 3449, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "384:14:7", + "scope": 3480, + "src": "384:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -986,10 +986,10 @@ "typeString": "string" }, "typeName": { - "id": 1706, + "id": 3448, "name": "string", "nodeType": "ElementaryTypeName", - "src": "384:6:7", + "src": "384:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1000,11 +1000,11 @@ }, { "constant": false, - "id": 1709, + "id": 3451, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "404:14:7", + "scope": 3480, + "src": "404:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1012,10 +1012,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1708, + "id": 3450, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "404:4:7", + "src": "404:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1026,11 +1026,11 @@ }, { "constant": false, - "id": 1711, + "id": 3453, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "424:17:7", + "scope": 3480, + "src": "424:17:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1038,10 +1038,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1710, + "id": 3452, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "424:4:7", + "src": "424:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1051,39 +1051,39 @@ "visibility": "internal" } ], - "src": "360:82:7" + "src": "360:82:30" }, "payable": false, "returnParameters": { - "id": 1713, + "id": 3455, "nodeType": "ParameterList", "parameters": [], - "src": "456:0:7" + "src": "456:0:30" }, - "scope": 1787, - "src": "349:252:7", + "scope": 3529, + "src": "349:252:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1785, + "id": 3527, "nodeType": "Block", - "src": "672:263:7", + "src": "672:263:30", "statements": [ { "assignments": [ - 1748 + 3490 ], "declarations": [ { "constant": false, - "id": 1748, + "id": 3490, "name": "currBalance", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "678:16:7", + "scope": 3528, + "src": "678:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1091,10 +1091,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1747, + "id": 3489, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "678:4:7", + "src": "678:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1104,18 +1104,18 @@ "visibility": "internal" } ], - "id": 1752, + "id": 3494, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1750, + "id": 3492, "name": "_target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1740, - "src": "707:7:7", + "referencedDeclaration": 3482, + "src": "707:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1129,20 +1129,20 @@ "typeString": "address" } ], - "id": 1749, + "id": 3491, "name": "balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [ - 2336 + 4919 ], - "referencedDeclaration": 2336, - "src": "697:9:7", + "referencedDeclaration": 4919, + "src": "697:9:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 1751, + "id": 3493, "isConstant": false, "isLValue": false, "isPure": false, @@ -1150,14 +1150,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "697:18:7", + "src": "697:18:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "678:37:7" + "src": "678:37:30" }, { "condition": { @@ -1166,19 +1166,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1755, + "id": 3497, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1753, + "id": 3495, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "725:6:7", + "referencedDeclaration": 3484, + "src": "725:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1188,44 +1188,44 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1754, + "id": 3496, "name": "currBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "734:11:7", + "referencedDeclaration": 3490, + "src": "734:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "725:20:7", + "src": "725:20:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1777, + "id": 3519, "nodeType": "Block", - "src": "826:73:7", + "src": "826:73:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 1775, + "id": 3517, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1767, + "id": 3509, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "836:12:7", + "referencedDeclaration": 4839, + "src": "836:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1241,12 +1241,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1772, + "id": 3514, "name": "currBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "879:11:7", + "referencedDeclaration": 3490, + "src": "879:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1262,32 +1262,32 @@ ], "expression": { "argumentTypes": null, - "id": 1770, + "id": 3512, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "868:6:7", + "referencedDeclaration": 3484, + "src": "868:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1771, + "id": 3513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "868:10:7", + "referencedDeclaration": 4713, + "src": "868:10:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1773, + "id": 3515, "isConstant": false, "isLValue": false, "isPure": false, @@ -1295,7 +1295,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "868:23:7", + "src": "868:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1311,32 +1311,32 @@ ], "expression": { "argumentTypes": null, - "id": 1768, + "id": 3510, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "851:12:7", + "referencedDeclaration": 4839, + "src": "851:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1769, + "id": 3511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "851:16:7", + "referencedDeclaration": 4737, + "src": "851:16:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1774, + "id": 3516, "isConstant": false, "isLValue": false, "isPure": false, @@ -1344,48 +1344,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "851:41:7", + "src": "851:41:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "836:56:7", + "src": "836:56:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1776, + "id": 3518, "nodeType": "ExpressionStatement", - "src": "836:56:7" + "src": "836:56:30" } ] }, - "id": 1778, + "id": 3520, "nodeType": "IfStatement", - "src": "721:178:7", + "src": "721:178:30", "trueBody": { - "id": 1766, + "id": 3508, "nodeType": "Block", - "src": "747:73:7", + "src": "747:73:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 1764, + "id": 3506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1756, + "id": 3498, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "757:12:7", + "referencedDeclaration": 4839, + "src": "757:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1401,12 +1401,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1761, + "id": 3503, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "805:6:7", + "referencedDeclaration": 3484, + "src": "805:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1422,32 +1422,32 @@ ], "expression": { "argumentTypes": null, - "id": 1759, + "id": 3501, "name": "currBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "789:11:7", + "referencedDeclaration": 3490, + "src": "789:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1760, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "789:15:7", + "referencedDeclaration": 4713, + "src": "789:15:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1762, + "id": 3504, "isConstant": false, "isLValue": false, "isPure": false, @@ -1455,7 +1455,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "789:23:7", + "src": "789:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1471,32 +1471,32 @@ ], "expression": { "argumentTypes": null, - "id": 1757, + "id": 3499, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "772:12:7", + "referencedDeclaration": 4839, + "src": "772:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1758, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "772:16:7", + "referencedDeclaration": 4713, + "src": "772:16:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1763, + "id": 3505, "isConstant": false, "isLValue": false, "isPure": false, @@ -1504,21 +1504,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "772:41:7", + "src": "772:41:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "757:56:7", + "src": "757:56:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1765, + "id": 3507, "nodeType": "ExpressionStatement", - "src": "757:56:7" + "src": "757:56:30" } ] } @@ -1526,7 +1526,7 @@ { "expression": { "argumentTypes": null, - "id": 1783, + "id": 3525, "isConstant": false, "isLValue": false, "isPure": false, @@ -1535,26 +1535,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1779, + "id": 3521, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "904:8:7", + "referencedDeclaration": 4837, + "src": "904:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1781, + "id": 3523, "indexExpression": { "argumentTypes": null, - "id": 1780, + "id": 3522, "name": "_target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1740, - "src": "913:7:7", + "referencedDeclaration": 3482, + "src": "913:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1565,7 +1565,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "904:17:7", + "src": "904:17:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1575,68 +1575,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1782, + "id": 3524, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "924:6:7", + "referencedDeclaration": 3484, + "src": "924:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "904:26:7", + "src": "904:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1784, + "id": 3526, "nodeType": "ExpressionStatement", - "src": "904:26:7" + "src": "904:26:30" } ] }, "documentation": null, - "id": 1786, + "id": 3528, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1745, + "id": 3487, "modifierName": { "argumentTypes": null, - "id": 1744, + "id": 3486, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "662:9:7", + "referencedDeclaration": 4772, + "src": "662:9:30", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "662:9:7" + "src": "662:9:30" } ], "name": "setBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1743, + "id": 3485, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1740, + "id": 3482, "name": "_target", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "625:15:7", + "scope": 3528, + "src": "625:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1644,10 +1644,10 @@ "typeString": "address" }, "typeName": { - "id": 1739, + "id": 3481, "name": "address", "nodeType": "ElementaryTypeName", - "src": "625:7:7", + "src": "625:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1658,11 +1658,11 @@ }, { "constant": false, - "id": 1742, + "id": 3484, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "642:11:7", + "scope": 3528, + "src": "642:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1670,10 +1670,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1741, + "id": 3483, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "642:4:7", + "src": "642:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1683,78 +1683,78 @@ "visibility": "internal" } ], - "src": "624:30:7" + "src": "624:30:30" }, "payable": false, "returnParameters": { - "id": 1746, + "id": 3488, "nodeType": "ParameterList", "parameters": [], - "src": "672:0:7" + "src": "672:0:30" }, - "scope": 1787, - "src": "605:330:7", + "scope": 3529, + "src": "605:330:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1788, - "src": "210:727:7" + "scope": 3530, + "src": "210:727:30" } ], - "src": "0:938:7" + "src": "0:938:30" }, "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/DummyToken.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/DummyToken.sol", "exportedSymbols": { "DummyToken": [ - 1787 + 3529 ] }, - "id": 1788, + "id": 3530, "nodeType": "SourceUnit", "nodes": [ { - "id": 1689, + "id": 3431, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:7" + "src": "0:23:30" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", "file": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", - "id": 1690, + "id": 3432, "nodeType": "ImportDirective", - "scope": 1788, - "sourceUnit": 2553, - "src": "25:67:7", + "scope": 3530, + "sourceUnit": 5136, + "src": "25:67:30", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "zeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1691, + "id": 3433, "nodeType": "ImportDirective", - "scope": 1788, - "sourceUnit": 2156, - "src": "93:55:7", + "scope": 3530, + "sourceUnit": 4739, + "src": "93:55:30", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1692, + "id": 3434, "nodeType": "ImportDirective", - "scope": 1788, - "sourceUnit": 2242, - "src": "149:59:7", + "scope": 3530, + "sourceUnit": 4825, + "src": "149:59:30", "symbolAliases": [], "unitAlias": "" }, @@ -1764,66 +1764,66 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1693, + "id": 3435, "name": "MintableToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2552, - "src": "233:13:7", + "referencedDeclaration": 5135, + "src": "233:13:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_MintableToken_$2552", + "typeIdentifier": "t_contract$_MintableToken_$5135", "typeString": "contract MintableToken" } }, - "id": 1694, + "id": 3436, "nodeType": "InheritanceSpecifier", - "src": "233:13:7" + "src": "233:13:30" } ], "contractDependencies": [ - 2241, - 2337, - 2414, - 2446, - 2552, - 2799 + 4824, + 4920, + 4997, + 5029, + 5135, + 5382 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1787, + "id": 3529, "linearizedBaseContracts": [ - 1787, - 2552, - 2241, - 2799, - 2337, - 2414, - 2446 + 3529, + 5135, + 4824, + 5382, + 4920, + 4997, + 5029 ], "name": "DummyToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1697, + "id": 3439, "libraryName": { "contractScope": null, - "id": 1695, + "id": 3437, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "257:8:7", + "referencedDeclaration": 4738, + "src": "257:8:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", + "typeIdentifier": "t_contract$_SafeMath_$4738", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "251:24:7", + "src": "251:24:30", "typeName": { - "id": 1696, + "id": 3438, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "270:4:7", + "src": "270:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1832,11 +1832,11 @@ }, { "constant": false, - "id": 1699, + "id": 3441, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1787, - "src": "278:18:7", + "scope": 3529, + "src": "278:18:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1844,10 +1844,10 @@ "typeString": "string" }, "typeName": { - "id": 1698, + "id": 3440, "name": "string", "nodeType": "ElementaryTypeName", - "src": "278:6:7", + "src": "278:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1858,11 +1858,11 @@ }, { "constant": false, - "id": 1701, + "id": 3443, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1787, - "src": "300:20:7", + "scope": 3529, + "src": "300:20:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1870,10 +1870,10 @@ "typeString": "string" }, "typeName": { - "id": 1700, + "id": 3442, "name": "string", "nodeType": "ElementaryTypeName", - "src": "300:6:7", + "src": "300:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1884,11 +1884,11 @@ }, { "constant": false, - "id": 1703, + "id": 3445, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 1787, - "src": "324:20:7", + "scope": 3529, + "src": "324:20:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1896,10 +1896,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1702, + "id": 3444, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "324:4:7", + "src": "324:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1910,26 +1910,26 @@ }, { "body": { - "id": 1737, + "id": 3479, "nodeType": "Block", - "src": "456:145:7", + "src": "456:145:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 1716, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1714, + "id": 3456, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1699, - "src": "462:4:7", + "referencedDeclaration": 3441, + "src": "462:4:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -1939,43 +1939,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1715, + "id": 3457, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "469:5:7", + "referencedDeclaration": 3447, + "src": "469:5:30", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "462:12:7", + "src": "462:12:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1717, + "id": 3459, "nodeType": "ExpressionStatement", - "src": "462:12:7" + "src": "462:12:30" }, { "expression": { "argumentTypes": null, - "id": 1720, + "id": 3462, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1718, + "id": 3460, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1701, - "src": "480:6:7", + "referencedDeclaration": 3443, + "src": "480:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -1985,43 +1985,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1719, + "id": 3461, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1707, - "src": "489:7:7", + "referencedDeclaration": 3449, + "src": "489:7:30", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "480:16:7", + "src": "480:16:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1721, + "id": 3463, "nodeType": "ExpressionStatement", - "src": "480:16:7" + "src": "480:16:30" }, { "expression": { "argumentTypes": null, - "id": 1724, + "id": 3466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1722, + "id": 3464, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1703, - "src": "502:8:7", + "referencedDeclaration": 3445, + "src": "502:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2031,43 +2031,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1723, + "id": 3465, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1709, - "src": "513:9:7", + "referencedDeclaration": 3451, + "src": "513:9:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "502:20:7", + "src": "502:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1725, + "id": 3467, "nodeType": "ExpressionStatement", - "src": "502:20:7" + "src": "502:20:30" }, { "expression": { "argumentTypes": null, - "id": 1728, + "id": 3470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1726, + "id": 3468, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "528:12:7", + "referencedDeclaration": 4839, + "src": "528:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2077,31 +2077,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1727, + "id": 3469, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1711, - "src": "543:12:7", + "referencedDeclaration": 3453, + "src": "543:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "528:27:7", + "src": "528:27:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1729, + "id": 3471, "nodeType": "ExpressionStatement", - "src": "528:27:7" + "src": "528:27:30" }, { "expression": { "argumentTypes": null, - "id": 1735, + "id": 3477, "isConstant": false, "isLValue": false, "isPure": false, @@ -2110,34 +2110,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1730, + "id": 3472, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "561:8:7", + "referencedDeclaration": 4837, + "src": "561:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1733, + "id": 3475, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1731, + "id": 3473, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "570:3:7", + "referencedDeclaration": 5397, + "src": "570:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1732, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, @@ -2145,7 +2145,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "570:10:7", + "src": "570:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2156,7 +2156,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "561:20:7", + "src": "561:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2166,31 +2166,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1734, + "id": 3476, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1711, - "src": "584:12:7", + "referencedDeclaration": 3453, + "src": "584:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "561:35:7", + "src": "561:35:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1736, + "id": 3478, "nodeType": "ExpressionStatement", - "src": "561:35:7" + "src": "561:35:30" } ] }, "documentation": null, - "id": 1738, + "id": 3480, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2198,16 +2198,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1712, + "id": 3454, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1705, + "id": 3447, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "366:12:7", + "scope": 3480, + "src": "366:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2215,10 +2215,10 @@ "typeString": "string" }, "typeName": { - "id": 1704, + "id": 3446, "name": "string", "nodeType": "ElementaryTypeName", - "src": "366:6:7", + "src": "366:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2229,11 +2229,11 @@ }, { "constant": false, - "id": 1707, + "id": 3449, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "384:14:7", + "scope": 3480, + "src": "384:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2241,10 +2241,10 @@ "typeString": "string" }, "typeName": { - "id": 1706, + "id": 3448, "name": "string", "nodeType": "ElementaryTypeName", - "src": "384:6:7", + "src": "384:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2255,11 +2255,11 @@ }, { "constant": false, - "id": 1709, + "id": 3451, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "404:14:7", + "scope": 3480, + "src": "404:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2267,10 +2267,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1708, + "id": 3450, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "404:4:7", + "src": "404:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2281,11 +2281,11 @@ }, { "constant": false, - "id": 1711, + "id": 3453, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "424:17:7", + "scope": 3480, + "src": "424:17:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2293,10 +2293,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1710, + "id": 3452, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "424:4:7", + "src": "424:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2306,39 +2306,39 @@ "visibility": "internal" } ], - "src": "360:82:7" + "src": "360:82:30" }, "payable": false, "returnParameters": { - "id": 1713, + "id": 3455, "nodeType": "ParameterList", "parameters": [], - "src": "456:0:7" + "src": "456:0:30" }, - "scope": 1787, - "src": "349:252:7", + "scope": 3529, + "src": "349:252:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1785, + "id": 3527, "nodeType": "Block", - "src": "672:263:7", + "src": "672:263:30", "statements": [ { "assignments": [ - 1748 + 3490 ], "declarations": [ { "constant": false, - "id": 1748, + "id": 3490, "name": "currBalance", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "678:16:7", + "scope": 3528, + "src": "678:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2346,10 +2346,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1747, + "id": 3489, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "678:4:7", + "src": "678:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2359,18 +2359,18 @@ "visibility": "internal" } ], - "id": 1752, + "id": 3494, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1750, + "id": 3492, "name": "_target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1740, - "src": "707:7:7", + "referencedDeclaration": 3482, + "src": "707:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2384,20 +2384,20 @@ "typeString": "address" } ], - "id": 1749, + "id": 3491, "name": "balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [ - 2336 + 4919 ], - "referencedDeclaration": 2336, - "src": "697:9:7", + "referencedDeclaration": 4919, + "src": "697:9:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 1751, + "id": 3493, "isConstant": false, "isLValue": false, "isPure": false, @@ -2405,14 +2405,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "697:18:7", + "src": "697:18:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "678:37:7" + "src": "678:37:30" }, { "condition": { @@ -2421,19 +2421,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1755, + "id": 3497, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1753, + "id": 3495, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "725:6:7", + "referencedDeclaration": 3484, + "src": "725:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2443,44 +2443,44 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1754, + "id": 3496, "name": "currBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "734:11:7", + "referencedDeclaration": 3490, + "src": "734:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "725:20:7", + "src": "725:20:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1777, + "id": 3519, "nodeType": "Block", - "src": "826:73:7", + "src": "826:73:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 1775, + "id": 3517, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1767, + "id": 3509, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "836:12:7", + "referencedDeclaration": 4839, + "src": "836:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2496,12 +2496,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1772, + "id": 3514, "name": "currBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "879:11:7", + "referencedDeclaration": 3490, + "src": "879:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2517,32 +2517,32 @@ ], "expression": { "argumentTypes": null, - "id": 1770, + "id": 3512, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "868:6:7", + "referencedDeclaration": 3484, + "src": "868:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1771, + "id": 3513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "868:10:7", + "referencedDeclaration": 4713, + "src": "868:10:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1773, + "id": 3515, "isConstant": false, "isLValue": false, "isPure": false, @@ -2550,7 +2550,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "868:23:7", + "src": "868:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2566,32 +2566,32 @@ ], "expression": { "argumentTypes": null, - "id": 1768, + "id": 3510, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "851:12:7", + "referencedDeclaration": 4839, + "src": "851:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1769, + "id": 3511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "851:16:7", + "referencedDeclaration": 4737, + "src": "851:16:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1774, + "id": 3516, "isConstant": false, "isLValue": false, "isPure": false, @@ -2599,48 +2599,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "851:41:7", + "src": "851:41:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "836:56:7", + "src": "836:56:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1776, + "id": 3518, "nodeType": "ExpressionStatement", - "src": "836:56:7" + "src": "836:56:30" } ] }, - "id": 1778, + "id": 3520, "nodeType": "IfStatement", - "src": "721:178:7", + "src": "721:178:30", "trueBody": { - "id": 1766, + "id": 3508, "nodeType": "Block", - "src": "747:73:7", + "src": "747:73:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 1764, + "id": 3506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1756, + "id": 3498, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "757:12:7", + "referencedDeclaration": 4839, + "src": "757:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2656,12 +2656,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1761, + "id": 3503, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "805:6:7", + "referencedDeclaration": 3484, + "src": "805:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2677,32 +2677,32 @@ ], "expression": { "argumentTypes": null, - "id": 1759, + "id": 3501, "name": "currBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "789:11:7", + "referencedDeclaration": 3490, + "src": "789:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1760, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "789:15:7", + "referencedDeclaration": 4713, + "src": "789:15:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1762, + "id": 3504, "isConstant": false, "isLValue": false, "isPure": false, @@ -2710,7 +2710,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "789:23:7", + "src": "789:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2726,32 +2726,32 @@ ], "expression": { "argumentTypes": null, - "id": 1757, + "id": 3499, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "772:12:7", + "referencedDeclaration": 4839, + "src": "772:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1758, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "772:16:7", + "referencedDeclaration": 4713, + "src": "772:16:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1763, + "id": 3505, "isConstant": false, "isLValue": false, "isPure": false, @@ -2759,21 +2759,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "772:41:7", + "src": "772:41:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "757:56:7", + "src": "757:56:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1765, + "id": 3507, "nodeType": "ExpressionStatement", - "src": "757:56:7" + "src": "757:56:30" } ] } @@ -2781,7 +2781,7 @@ { "expression": { "argumentTypes": null, - "id": 1783, + "id": 3525, "isConstant": false, "isLValue": false, "isPure": false, @@ -2790,26 +2790,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1779, + "id": 3521, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "904:8:7", + "referencedDeclaration": 4837, + "src": "904:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1781, + "id": 3523, "indexExpression": { "argumentTypes": null, - "id": 1780, + "id": 3522, "name": "_target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1740, - "src": "913:7:7", + "referencedDeclaration": 3482, + "src": "913:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2820,7 +2820,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "904:17:7", + "src": "904:17:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2830,68 +2830,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1782, + "id": 3524, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "924:6:7", + "referencedDeclaration": 3484, + "src": "924:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "904:26:7", + "src": "904:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1784, + "id": 3526, "nodeType": "ExpressionStatement", - "src": "904:26:7" + "src": "904:26:30" } ] }, "documentation": null, - "id": 1786, + "id": 3528, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1745, + "id": 3487, "modifierName": { "argumentTypes": null, - "id": 1744, + "id": 3486, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "662:9:7", + "referencedDeclaration": 4772, + "src": "662:9:30", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "662:9:7" + "src": "662:9:30" } ], "name": "setBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1743, + "id": 3485, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1740, + "id": 3482, "name": "_target", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "625:15:7", + "scope": 3528, + "src": "625:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2899,10 +2899,10 @@ "typeString": "address" }, "typeName": { - "id": 1739, + "id": 3481, "name": "address", "nodeType": "ElementaryTypeName", - "src": "625:7:7", + "src": "625:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2913,11 +2913,11 @@ }, { "constant": false, - "id": 1742, + "id": 3484, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "642:11:7", + "scope": 3528, + "src": "642:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2925,10 +2925,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1741, + "id": 3483, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "642:4:7", + "src": "642:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2938,33 +2938,33 @@ "visibility": "internal" } ], - "src": "624:30:7" + "src": "624:30:30" }, "payable": false, "returnParameters": { - "id": 1746, + "id": 3488, "nodeType": "ParameterList", "parameters": [], - "src": "672:0:7" + "src": "672:0:30" }, - "scope": 1787, - "src": "605:330:7", + "scope": 3529, + "src": "605:330:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1788, - "src": "210:727:7" + "scope": 3530, + "src": "210:727:30" } ], - "src": "0:938:7" + "src": "0:938:30" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.579Z" + "updatedAt": "2018-07-07T07:45:08.909Z" } \ No newline at end of file diff --git a/artifacts/json/ERC20.json b/artifacts/json/ERC20.json index c3fe00350..9b07c2dec 100644 --- a/artifacts/json/ERC20.json +++ b/artifacts/json/ERC20.json @@ -185,14 +185,14 @@ "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "ERC20": [ - 2414 + 1142 ] }, - "id": 2415, + "id": 1143, "nodeType": "SourceUnit", "nodes": [ { - "id": 2373, + "id": 1101, "literals": [ "solidity", "^", @@ -200,16 +200,16 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:14" + "src": "0:24:8" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "file": "./ERC20Basic.sol", - "id": 2374, + "id": 1102, "nodeType": "ImportDirective", - "scope": 2415, - "sourceUnit": 2447, - "src": "26:26:14", + "scope": 1143, + "sourceUnit": 1175, + "src": "26:26:8", "symbolAliases": [], "unitAlias": "" }, @@ -219,31 +219,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2375, + "id": 1103, "name": "ERC20Basic", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2446, - "src": "162:10:14", + "referencedDeclaration": 1174, + "src": "162:10:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$2446", + "typeIdentifier": "t_contract$_ERC20Basic_$1174", "typeString": "contract ERC20Basic" } }, - "id": 2376, + "id": 1104, "nodeType": "InheritanceSpecifier", - "src": "162:10:14" + "src": "162:10:8" } ], "contractDependencies": [ - 2446 + 1174 ], "contractKind": "contract", "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", "fullyImplemented": false, - "id": 2414, + "id": 1142, "linearizedBaseContracts": [ - 2414, - 2446 + 1142, + 1174 ], "name": "ERC20", "nodeType": "ContractDefinition", @@ -251,7 +251,7 @@ { "body": null, "documentation": null, - "id": 2385, + "id": 1113, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -259,16 +259,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2381, + "id": 1109, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2378, + "id": 1106, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2385, - "src": "196:13:14", + "scope": 1113, + "src": "196:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -276,10 +276,10 @@ "typeString": "address" }, "typeName": { - "id": 2377, + "id": 1105, "name": "address", "nodeType": "ElementaryTypeName", - "src": "196:7:14", + "src": "196:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -290,11 +290,11 @@ }, { "constant": false, - "id": 2380, + "id": 1108, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2385, - "src": "211:15:14", + "scope": 1113, + "src": "211:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -302,10 +302,10 @@ "typeString": "address" }, "typeName": { - "id": 2379, + "id": 1107, "name": "address", "nodeType": "ElementaryTypeName", - "src": "211:7:14", + "src": "211:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -315,20 +315,20 @@ "visibility": "internal" } ], - "src": "195:32:14" + "src": "195:32:8" }, "payable": false, "returnParameters": { - "id": 2384, + "id": 1112, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2383, + "id": 1111, "name": "", "nodeType": "VariableDeclaration", - "scope": 2385, - "src": "253:7:14", + "scope": 1113, + "src": "253:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -336,10 +336,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2382, + "id": 1110, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "253:7:14", + "src": "253:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -349,10 +349,10 @@ "visibility": "internal" } ], - "src": "252:9:14" + "src": "252:9:8" }, - "scope": 2414, - "src": "177:85:14", + "scope": 1142, + "src": "177:85:8", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -360,7 +360,7 @@ { "body": null, "documentation": null, - "id": 2396, + "id": 1124, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -368,16 +368,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 2392, + "id": 1120, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2387, + "id": 1115, "name": "from", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "288:12:14", + "scope": 1124, + "src": "288:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -385,10 +385,10 @@ "typeString": "address" }, "typeName": { - "id": 2386, + "id": 1114, "name": "address", "nodeType": "ElementaryTypeName", - "src": "288:7:14", + "src": "288:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -399,11 +399,11 @@ }, { "constant": false, - "id": 2389, + "id": 1117, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "302:10:14", + "scope": 1124, + "src": "302:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -411,10 +411,10 @@ "typeString": "address" }, "typeName": { - "id": 2388, + "id": 1116, "name": "address", "nodeType": "ElementaryTypeName", - "src": "302:7:14", + "src": "302:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -425,11 +425,11 @@ }, { "constant": false, - "id": 2391, + "id": 1119, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "314:13:14", + "scope": 1124, + "src": "314:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -437,10 +437,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2390, + "id": 1118, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "314:7:14", + "src": "314:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -450,20 +450,20 @@ "visibility": "internal" } ], - "src": "287:41:14" + "src": "287:41:8" }, "payable": false, "returnParameters": { - "id": 2395, + "id": 1123, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2394, + "id": 1122, "name": "", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "349:4:14", + "scope": 1124, + "src": "349:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -471,10 +471,10 @@ "typeString": "bool" }, "typeName": { - "id": 2393, + "id": 1121, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "349:4:14", + "src": "349:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -484,10 +484,10 @@ "visibility": "internal" } ], - "src": "348:6:14" + "src": "348:6:8" }, - "scope": 2414, - "src": "266:89:14", + "scope": 1142, + "src": "266:89:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -495,7 +495,7 @@ { "body": null, "documentation": null, - "id": 2405, + "id": 1133, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -503,16 +503,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 2401, + "id": 1129, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2398, + "id": 1126, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2405, - "src": "376:15:14", + "scope": 1133, + "src": "376:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -520,10 +520,10 @@ "typeString": "address" }, "typeName": { - "id": 2397, + "id": 1125, "name": "address", "nodeType": "ElementaryTypeName", - "src": "376:7:14", + "src": "376:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -534,11 +534,11 @@ }, { "constant": false, - "id": 2400, + "id": 1128, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2405, - "src": "393:13:14", + "scope": 1133, + "src": "393:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -546,10 +546,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2399, + "id": 1127, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "393:7:14", + "src": "393:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -559,20 +559,20 @@ "visibility": "internal" } ], - "src": "375:32:14" + "src": "375:32:8" }, "payable": false, "returnParameters": { - "id": 2404, + "id": 1132, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2403, + "id": 1131, "name": "", "nodeType": "VariableDeclaration", - "scope": 2405, - "src": "424:4:14", + "scope": 1133, + "src": "424:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -580,10 +580,10 @@ "typeString": "bool" }, "typeName": { - "id": 2402, + "id": 1130, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "424:4:14", + "src": "424:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -593,10 +593,10 @@ "visibility": "internal" } ], - "src": "423:6:14" + "src": "423:6:8" }, - "scope": 2414, - "src": "359:71:14", + "scope": 1142, + "src": "359:71:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -604,21 +604,21 @@ { "anonymous": false, "documentation": null, - "id": 2413, + "id": 1141, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 2412, + "id": 1140, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2407, + "id": 1135, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "453:21:14", + "scope": 1141, + "src": "453:21:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -626,10 +626,10 @@ "typeString": "address" }, "typeName": { - "id": 2406, + "id": 1134, "name": "address", "nodeType": "ElementaryTypeName", - "src": "453:7:14", + "src": "453:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -640,12 +640,12 @@ }, { "constant": false, - "id": 2409, + "id": 1137, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "480:23:14", + "scope": 1141, + "src": "480:23:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -653,10 +653,10 @@ "typeString": "address" }, "typeName": { - "id": 2408, + "id": 1136, "name": "address", "nodeType": "ElementaryTypeName", - "src": "480:7:14", + "src": "480:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -667,12 +667,12 @@ }, { "constant": false, - "id": 2411, + "id": 1139, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "509:13:14", + "scope": 1141, + "src": "509:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -680,10 +680,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2410, + "id": 1138, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "509:7:14", + "src": "509:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -693,29 +693,29 @@ "visibility": "internal" } ], - "src": "447:79:14" + "src": "447:79:8" }, - "src": "433:94:14" + "src": "433:94:8" } ], - "scope": 2415, - "src": "144:385:14" + "scope": 1143, + "src": "144:385:8" } ], - "src": "0:530:14" + "src": "0:530:8" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "ERC20": [ - 2414 + 1142 ] }, - "id": 2415, + "id": 1143, "nodeType": "SourceUnit", "nodes": [ { - "id": 2373, + "id": 1101, "literals": [ "solidity", "^", @@ -723,16 +723,16 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:14" + "src": "0:24:8" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "file": "./ERC20Basic.sol", - "id": 2374, + "id": 1102, "nodeType": "ImportDirective", - "scope": 2415, - "sourceUnit": 2447, - "src": "26:26:14", + "scope": 1143, + "sourceUnit": 1175, + "src": "26:26:8", "symbolAliases": [], "unitAlias": "" }, @@ -742,31 +742,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2375, + "id": 1103, "name": "ERC20Basic", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2446, - "src": "162:10:14", + "referencedDeclaration": 1174, + "src": "162:10:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$2446", + "typeIdentifier": "t_contract$_ERC20Basic_$1174", "typeString": "contract ERC20Basic" } }, - "id": 2376, + "id": 1104, "nodeType": "InheritanceSpecifier", - "src": "162:10:14" + "src": "162:10:8" } ], "contractDependencies": [ - 2446 + 1174 ], "contractKind": "contract", "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", "fullyImplemented": false, - "id": 2414, + "id": 1142, "linearizedBaseContracts": [ - 2414, - 2446 + 1142, + 1174 ], "name": "ERC20", "nodeType": "ContractDefinition", @@ -774,7 +774,7 @@ { "body": null, "documentation": null, - "id": 2385, + "id": 1113, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -782,16 +782,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2381, + "id": 1109, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2378, + "id": 1106, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2385, - "src": "196:13:14", + "scope": 1113, + "src": "196:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -799,10 +799,10 @@ "typeString": "address" }, "typeName": { - "id": 2377, + "id": 1105, "name": "address", "nodeType": "ElementaryTypeName", - "src": "196:7:14", + "src": "196:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -813,11 +813,11 @@ }, { "constant": false, - "id": 2380, + "id": 1108, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2385, - "src": "211:15:14", + "scope": 1113, + "src": "211:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -825,10 +825,10 @@ "typeString": "address" }, "typeName": { - "id": 2379, + "id": 1107, "name": "address", "nodeType": "ElementaryTypeName", - "src": "211:7:14", + "src": "211:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -838,20 +838,20 @@ "visibility": "internal" } ], - "src": "195:32:14" + "src": "195:32:8" }, "payable": false, "returnParameters": { - "id": 2384, + "id": 1112, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2383, + "id": 1111, "name": "", "nodeType": "VariableDeclaration", - "scope": 2385, - "src": "253:7:14", + "scope": 1113, + "src": "253:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -859,10 +859,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2382, + "id": 1110, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "253:7:14", + "src": "253:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -872,10 +872,10 @@ "visibility": "internal" } ], - "src": "252:9:14" + "src": "252:9:8" }, - "scope": 2414, - "src": "177:85:14", + "scope": 1142, + "src": "177:85:8", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -883,7 +883,7 @@ { "body": null, "documentation": null, - "id": 2396, + "id": 1124, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -891,16 +891,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 2392, + "id": 1120, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2387, + "id": 1115, "name": "from", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "288:12:14", + "scope": 1124, + "src": "288:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -908,10 +908,10 @@ "typeString": "address" }, "typeName": { - "id": 2386, + "id": 1114, "name": "address", "nodeType": "ElementaryTypeName", - "src": "288:7:14", + "src": "288:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -922,11 +922,11 @@ }, { "constant": false, - "id": 2389, + "id": 1117, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "302:10:14", + "scope": 1124, + "src": "302:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -934,10 +934,10 @@ "typeString": "address" }, "typeName": { - "id": 2388, + "id": 1116, "name": "address", "nodeType": "ElementaryTypeName", - "src": "302:7:14", + "src": "302:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -948,11 +948,11 @@ }, { "constant": false, - "id": 2391, + "id": 1119, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "314:13:14", + "scope": 1124, + "src": "314:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -960,10 +960,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2390, + "id": 1118, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "314:7:14", + "src": "314:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -973,20 +973,20 @@ "visibility": "internal" } ], - "src": "287:41:14" + "src": "287:41:8" }, "payable": false, "returnParameters": { - "id": 2395, + "id": 1123, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2394, + "id": 1122, "name": "", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "349:4:14", + "scope": 1124, + "src": "349:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -994,10 +994,10 @@ "typeString": "bool" }, "typeName": { - "id": 2393, + "id": 1121, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "349:4:14", + "src": "349:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1007,10 +1007,10 @@ "visibility": "internal" } ], - "src": "348:6:14" + "src": "348:6:8" }, - "scope": 2414, - "src": "266:89:14", + "scope": 1142, + "src": "266:89:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1018,7 +1018,7 @@ { "body": null, "documentation": null, - "id": 2405, + "id": 1133, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1026,16 +1026,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 2401, + "id": 1129, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2398, + "id": 1126, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2405, - "src": "376:15:14", + "scope": 1133, + "src": "376:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1043,10 +1043,10 @@ "typeString": "address" }, "typeName": { - "id": 2397, + "id": 1125, "name": "address", "nodeType": "ElementaryTypeName", - "src": "376:7:14", + "src": "376:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1057,11 +1057,11 @@ }, { "constant": false, - "id": 2400, + "id": 1128, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2405, - "src": "393:13:14", + "scope": 1133, + "src": "393:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1069,10 +1069,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2399, + "id": 1127, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "393:7:14", + "src": "393:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1082,20 +1082,20 @@ "visibility": "internal" } ], - "src": "375:32:14" + "src": "375:32:8" }, "payable": false, "returnParameters": { - "id": 2404, + "id": 1132, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2403, + "id": 1131, "name": "", "nodeType": "VariableDeclaration", - "scope": 2405, - "src": "424:4:14", + "scope": 1133, + "src": "424:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1103,10 +1103,10 @@ "typeString": "bool" }, "typeName": { - "id": 2402, + "id": 1130, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "424:4:14", + "src": "424:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1116,10 +1116,10 @@ "visibility": "internal" } ], - "src": "423:6:14" + "src": "423:6:8" }, - "scope": 2414, - "src": "359:71:14", + "scope": 1142, + "src": "359:71:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1127,21 +1127,21 @@ { "anonymous": false, "documentation": null, - "id": 2413, + "id": 1141, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 2412, + "id": 1140, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2407, + "id": 1135, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "453:21:14", + "scope": 1141, + "src": "453:21:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1149,10 +1149,10 @@ "typeString": "address" }, "typeName": { - "id": 2406, + "id": 1134, "name": "address", "nodeType": "ElementaryTypeName", - "src": "453:7:14", + "src": "453:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1163,12 +1163,12 @@ }, { "constant": false, - "id": 2409, + "id": 1137, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "480:23:14", + "scope": 1141, + "src": "480:23:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1176,10 +1176,10 @@ "typeString": "address" }, "typeName": { - "id": 2408, + "id": 1136, "name": "address", "nodeType": "ElementaryTypeName", - "src": "480:7:14", + "src": "480:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1190,12 +1190,12 @@ }, { "constant": false, - "id": 2411, + "id": 1139, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "509:13:14", + "scope": 1141, + "src": "509:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1203,10 +1203,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2410, + "id": 1138, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "509:7:14", + "src": "509:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1216,22 +1216,22 @@ "visibility": "internal" } ], - "src": "447:79:14" + "src": "447:79:8" }, - "src": "433:94:14" + "src": "433:94:8" } ], - "scope": 2415, - "src": "144:385:14" + "scope": 1143, + "src": "144:385:8" } ], - "src": "0:530:14" + "src": "0:530:8" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.588Z" + "updatedAt": "2018-07-07T15:28:53.738Z" } \ No newline at end of file diff --git a/artifacts/json/ERC20Basic.json b/artifacts/json/ERC20Basic.json index 4dadabded..6fae6f728 100644 --- a/artifacts/json/ERC20Basic.json +++ b/artifacts/json/ERC20Basic.json @@ -90,14 +90,14 @@ "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "exportedSymbols": { "ERC20Basic": [ - 2446 + 1174 ] }, - "id": 2447, + "id": 1175, "nodeType": "SourceUnit", "nodes": [ { - "id": 2416, + "id": 1144, "literals": [ "solidity", "^", @@ -105,7 +105,7 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:15" + "src": "0:24:9" }, { "baseContracts": [], @@ -113,9 +113,9 @@ "contractKind": "contract", "documentation": "@title ERC20Basic\n@dev Simpler version of ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/179", "fullyImplemented": false, - "id": 2446, + "id": 1174, "linearizedBaseContracts": [ - 2446 + 1174 ], "name": "ERC20Basic", "nodeType": "ContractDefinition", @@ -123,7 +123,7 @@ { "body": null, "documentation": null, - "id": 2421, + "id": 1149, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -131,23 +131,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 2417, + "id": 1145, "nodeType": "ParameterList", "parameters": [], - "src": "199:2:15" + "src": "199:2:9" }, "payable": false, "returnParameters": { - "id": 2420, + "id": 1148, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2419, + "id": 1147, "name": "", "nodeType": "VariableDeclaration", - "scope": 2421, - "src": "223:7:15", + "scope": 1149, + "src": "223:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -155,10 +155,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2418, + "id": 1146, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "223:7:15", + "src": "223:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -168,10 +168,10 @@ "visibility": "internal" } ], - "src": "222:9:15" + "src": "222:9:9" }, - "scope": 2446, - "src": "179:53:15", + "scope": 1174, + "src": "179:53:9", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -179,7 +179,7 @@ { "body": null, "documentation": null, - "id": 2428, + "id": 1156, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -187,16 +187,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 2424, + "id": 1152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2423, + "id": 1151, "name": "who", "nodeType": "VariableDeclaration", - "scope": 2428, - "src": "254:11:15", + "scope": 1156, + "src": "254:11:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -204,10 +204,10 @@ "typeString": "address" }, "typeName": { - "id": 2422, + "id": 1150, "name": "address", "nodeType": "ElementaryTypeName", - "src": "254:7:15", + "src": "254:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -217,20 +217,20 @@ "visibility": "internal" } ], - "src": "253:13:15" + "src": "253:13:9" }, "payable": false, "returnParameters": { - "id": 2427, + "id": 1155, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2426, + "id": 1154, "name": "", "nodeType": "VariableDeclaration", - "scope": 2428, - "src": "288:7:15", + "scope": 1156, + "src": "288:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -238,10 +238,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2425, + "id": 1153, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "288:7:15", + "src": "288:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -251,10 +251,10 @@ "visibility": "internal" } ], - "src": "287:9:15" + "src": "287:9:9" }, - "scope": 2446, - "src": "235:62:15", + "scope": 1174, + "src": "235:62:9", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -262,7 +262,7 @@ { "body": null, "documentation": null, - "id": 2437, + "id": 1165, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -270,16 +270,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 2433, + "id": 1161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2430, + "id": 1158, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "318:10:15", + "scope": 1165, + "src": "318:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -287,10 +287,10 @@ "typeString": "address" }, "typeName": { - "id": 2429, + "id": 1157, "name": "address", "nodeType": "ElementaryTypeName", - "src": "318:7:15", + "src": "318:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -301,11 +301,11 @@ }, { "constant": false, - "id": 2432, + "id": 1160, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "330:13:15", + "scope": 1165, + "src": "330:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -313,10 +313,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2431, + "id": 1159, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "330:7:15", + "src": "330:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -326,20 +326,20 @@ "visibility": "internal" } ], - "src": "317:27:15" + "src": "317:27:9" }, "payable": false, "returnParameters": { - "id": 2436, + "id": 1164, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2435, + "id": 1163, "name": "", "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "361:4:15", + "scope": 1165, + "src": "361:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -347,10 +347,10 @@ "typeString": "bool" }, "typeName": { - "id": 2434, + "id": 1162, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "361:4:15", + "src": "361:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -360,10 +360,10 @@ "visibility": "internal" } ], - "src": "360:6:15" + "src": "360:6:9" }, - "scope": 2446, - "src": "300:67:15", + "scope": 1174, + "src": "300:67:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -371,21 +371,21 @@ { "anonymous": false, "documentation": null, - "id": 2445, + "id": 1173, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 2444, + "id": 1172, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2439, + "id": 1167, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 2445, - "src": "385:20:15", + "scope": 1173, + "src": "385:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -393,10 +393,10 @@ "typeString": "address" }, "typeName": { - "id": 2438, + "id": 1166, "name": "address", "nodeType": "ElementaryTypeName", - "src": "385:7:15", + "src": "385:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -407,12 +407,12 @@ }, { "constant": false, - "id": 2441, + "id": 1169, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2445, - "src": "407:18:15", + "scope": 1173, + "src": "407:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -420,10 +420,10 @@ "typeString": "address" }, "typeName": { - "id": 2440, + "id": 1168, "name": "address", "nodeType": "ElementaryTypeName", - "src": "407:7:15", + "src": "407:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -434,12 +434,12 @@ }, { "constant": false, - "id": 2443, + "id": 1171, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2445, - "src": "427:13:15", + "scope": 1173, + "src": "427:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -447,10 +447,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2442, + "id": 1170, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "427:7:15", + "src": "427:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -460,29 +460,29 @@ "visibility": "internal" } ], - "src": "384:57:15" + "src": "384:57:9" }, - "src": "370:72:15" + "src": "370:72:9" } ], - "scope": 2447, - "src": "155:289:15" + "scope": 1175, + "src": "155:289:9" } ], - "src": "0:445:15" + "src": "0:445:9" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "exportedSymbols": { "ERC20Basic": [ - 2446 + 1174 ] }, - "id": 2447, + "id": 1175, "nodeType": "SourceUnit", "nodes": [ { - "id": 2416, + "id": 1144, "literals": [ "solidity", "^", @@ -490,7 +490,7 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:15" + "src": "0:24:9" }, { "baseContracts": [], @@ -498,9 +498,9 @@ "contractKind": "contract", "documentation": "@title ERC20Basic\n@dev Simpler version of ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/179", "fullyImplemented": false, - "id": 2446, + "id": 1174, "linearizedBaseContracts": [ - 2446 + 1174 ], "name": "ERC20Basic", "nodeType": "ContractDefinition", @@ -508,7 +508,7 @@ { "body": null, "documentation": null, - "id": 2421, + "id": 1149, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -516,23 +516,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 2417, + "id": 1145, "nodeType": "ParameterList", "parameters": [], - "src": "199:2:15" + "src": "199:2:9" }, "payable": false, "returnParameters": { - "id": 2420, + "id": 1148, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2419, + "id": 1147, "name": "", "nodeType": "VariableDeclaration", - "scope": 2421, - "src": "223:7:15", + "scope": 1149, + "src": "223:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -540,10 +540,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2418, + "id": 1146, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "223:7:15", + "src": "223:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -553,10 +553,10 @@ "visibility": "internal" } ], - "src": "222:9:15" + "src": "222:9:9" }, - "scope": 2446, - "src": "179:53:15", + "scope": 1174, + "src": "179:53:9", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -564,7 +564,7 @@ { "body": null, "documentation": null, - "id": 2428, + "id": 1156, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -572,16 +572,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 2424, + "id": 1152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2423, + "id": 1151, "name": "who", "nodeType": "VariableDeclaration", - "scope": 2428, - "src": "254:11:15", + "scope": 1156, + "src": "254:11:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -589,10 +589,10 @@ "typeString": "address" }, "typeName": { - "id": 2422, + "id": 1150, "name": "address", "nodeType": "ElementaryTypeName", - "src": "254:7:15", + "src": "254:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -602,20 +602,20 @@ "visibility": "internal" } ], - "src": "253:13:15" + "src": "253:13:9" }, "payable": false, "returnParameters": { - "id": 2427, + "id": 1155, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2426, + "id": 1154, "name": "", "nodeType": "VariableDeclaration", - "scope": 2428, - "src": "288:7:15", + "scope": 1156, + "src": "288:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -623,10 +623,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2425, + "id": 1153, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "288:7:15", + "src": "288:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -636,10 +636,10 @@ "visibility": "internal" } ], - "src": "287:9:15" + "src": "287:9:9" }, - "scope": 2446, - "src": "235:62:15", + "scope": 1174, + "src": "235:62:9", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -647,7 +647,7 @@ { "body": null, "documentation": null, - "id": 2437, + "id": 1165, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -655,16 +655,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 2433, + "id": 1161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2430, + "id": 1158, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "318:10:15", + "scope": 1165, + "src": "318:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -672,10 +672,10 @@ "typeString": "address" }, "typeName": { - "id": 2429, + "id": 1157, "name": "address", "nodeType": "ElementaryTypeName", - "src": "318:7:15", + "src": "318:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -686,11 +686,11 @@ }, { "constant": false, - "id": 2432, + "id": 1160, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "330:13:15", + "scope": 1165, + "src": "330:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -698,10 +698,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2431, + "id": 1159, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "330:7:15", + "src": "330:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -711,20 +711,20 @@ "visibility": "internal" } ], - "src": "317:27:15" + "src": "317:27:9" }, "payable": false, "returnParameters": { - "id": 2436, + "id": 1164, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2435, + "id": 1163, "name": "", "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "361:4:15", + "scope": 1165, + "src": "361:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -732,10 +732,10 @@ "typeString": "bool" }, "typeName": { - "id": 2434, + "id": 1162, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "361:4:15", + "src": "361:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -745,10 +745,10 @@ "visibility": "internal" } ], - "src": "360:6:15" + "src": "360:6:9" }, - "scope": 2446, - "src": "300:67:15", + "scope": 1174, + "src": "300:67:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -756,21 +756,21 @@ { "anonymous": false, "documentation": null, - "id": 2445, + "id": 1173, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 2444, + "id": 1172, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2439, + "id": 1167, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 2445, - "src": "385:20:15", + "scope": 1173, + "src": "385:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -778,10 +778,10 @@ "typeString": "address" }, "typeName": { - "id": 2438, + "id": 1166, "name": "address", "nodeType": "ElementaryTypeName", - "src": "385:7:15", + "src": "385:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -792,12 +792,12 @@ }, { "constant": false, - "id": 2441, + "id": 1169, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2445, - "src": "407:18:15", + "scope": 1173, + "src": "407:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -805,10 +805,10 @@ "typeString": "address" }, "typeName": { - "id": 2440, + "id": 1168, "name": "address", "nodeType": "ElementaryTypeName", - "src": "407:7:15", + "src": "407:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -819,12 +819,12 @@ }, { "constant": false, - "id": 2443, + "id": 1171, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2445, - "src": "427:13:15", + "scope": 1173, + "src": "427:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -832,10 +832,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2442, + "id": 1170, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "427:7:15", + "src": "427:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -845,22 +845,22 @@ "visibility": "internal" } ], - "src": "384:57:15" + "src": "384:57:9" }, - "src": "370:72:15" + "src": "370:72:9" } ], - "scope": 2447, - "src": "155:289:15" + "scope": 1175, + "src": "155:289:9" } ], - "src": "0:445:15" + "src": "0:445:9" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.588Z" + "updatedAt": "2018-07-07T15:28:53.739Z" } \ No newline at end of file diff --git a/artifacts/json/ERC20Wrapper.json b/artifacts/json/ERC20Wrapper.json new file mode 100644 index 000000000..0ba2b0374 --- /dev/null +++ b/artifacts/json/ERC20Wrapper.json @@ -0,0 +1,2539 @@ +{ + "contractName": "ERC20Wrapper", + "abi": [], + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820cef480ec71070fcc1f210a6f6e9313951521ccd61304c0368bf1bd6f7fc4f26c0029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820cef480ec71070fcc1f210a6f6e9313951521ccd61304c0368bf1bd6f7fc4f26c0029", + "sourceMap": "969:2273:23:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "969:2273:23:-;;;;;;;;", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { IERC20 } from \"../../lib/IERC20.sol\";\n\n\n/**\n * @title ERC20Wrapper\n * @author Set Protocol\n *\n * This library contains functions for interacting wtih ERC20 tokens, even those not fully compliant.\n * For all functions we will only accept tokens that return a null or true value, any other values will\n * cause the operation to revert.\n */\nlibrary ERC20Wrapper {\n\n // ============ Constants ============\n\n string constant INVALID_RETURN_TRANSFER = \"Transferred token does not return null or true on successful transfer.\";\n string constant INVALID_RETURN_TRANSFERFROM = \"Transferred token does not return null or true on successful transferFrom.\";\n\n // ============ Internal Functions ============\n\n function balanceOf(\n address _tokenAddress,\n address _ownerAddress\n )\n internal\n view\n returns (uint256)\n {\n return IERC20(_tokenAddress).balanceOf(_ownerAddress);\n }\n\n function transfer(\n address _tokenAddress,\n address _to,\n uint256 _quantity\n )\n internal\n {\n IERC20(_tokenAddress).transfer(_to, _quantity);\n\n require(\n checkSuccess(),\n INVALID_RETURN_TRANSFER\n );\n }\n\n function transferFrom(\n address _tokenAddress,\n address _from,\n address _to,\n uint256 _quantity\n )\n internal\n {\n IERC20(_tokenAddress).transferFrom(_from, _to, _quantity);\n\n require(\n checkSuccess(),\n INVALID_RETURN_TRANSFERFROM\n );\n }\n\n // ============ Private Functions ============\n\n /**\n * Checks the return value of the previous function up to 32 bytes. Returns true if the previous\n * function returned 0 bytes or 1.\n */\n function checkSuccess(\n )\n private\n pure\n returns (bool)\n {\n // default to failure\n uint256 returnValue = 0;\n\n assembly {\n // check number of bytes returned from last function call\n switch returndatasize\n\n // no bytes returned: assume success\n case 0x0 {\n returnValue := 1\n }\n\n // 32 bytes returned\n case 0x20 {\n // copy 32 bytes into scratch space\n returndatacopy(0x0, 0x0, 0x20)\n\n // load those bytes into returnValue\n returnValue := mload(0x0)\n }\n\n // not sure what was returned: dont mark as success\n default { }\n }\n\n // check if returned value is one or nothing\n return returnValue == 1;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ERC20Wrapper.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ERC20Wrapper.sol", + "exportedSymbols": { + "ERC20Wrapper": [ + 2845 + ] + }, + "id": 2846, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2753, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:23" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/IERC20.sol", + "file": "../../lib/IERC20.sol", + "id": 2755, + "nodeType": "ImportDirective", + "scope": 2846, + "sourceUnit": 3349, + "src": "622:46:23", + "symbolAliases": [ + { + "foreign": 2754, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title ERC20Wrapper\n@author Set Protocol\n * This library contains functions for interacting wtih ERC20 tokens, even those not fully compliant.\nFor all functions we will only accept tokens that return a null or true value, any other values will\ncause the operation to revert.", + "fullyImplemented": true, + "id": 2845, + "linearizedBaseContracts": [ + 2845 + ], + "name": "ERC20Wrapper", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2758, + "name": "INVALID_RETURN_TRANSFER", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "1041:114:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2756, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1041:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5472616e7366657272656420746f6b656e20646f6573206e6f742072657475726e206e756c6c206f722074727565206f6e207375636365737366756c207472616e736665722e", + "id": 2757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1083:72:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6a28e8cd70cea460f64d888906c14b1e15dd90824bd08d495b1878c7147754b3", + "typeString": "literal_string \"Transferred token does not return null or true on successful transfer.\"" + }, + "value": "Transferred token does not return null or true on successful transfer." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2761, + "name": "INVALID_RETURN_TRANSFERFROM", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "1161:122:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2759, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1161:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5472616e7366657272656420746f6b656e20646f6573206e6f742072657475726e206e756c6c206f722074727565206f6e207375636365737366756c207472616e7366657246726f6d2e", + "id": 2760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1207:76:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4aa4f2ff21e6312a79f309b1750981deb687adeae13f742ac475b55c58e95666", + "typeString": "literal_string \"Transferred token does not return null or true on successful transferFrom.\"" + }, + "value": "Transferred token does not return null or true on successful transferFrom." + }, + "visibility": "internal" + }, + { + "body": { + "id": 2777, + "nodeType": "Block", + "src": "1490:70:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2774, + "name": "_ownerAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2765, + "src": "1539:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2771, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2763, + "src": "1514:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2770, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "1507:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$3348_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1507:21:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$3348", + "typeString": "contract IERC20" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 3331, + "src": "1507:31:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1507:46:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2769, + "id": 2776, + "nodeType": "Return", + "src": "1500:53:23" + } + ] + }, + "documentation": null, + "id": 2778, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2763, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2778, + "src": "1371:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2762, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1371:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2765, + "name": "_ownerAddress", + "nodeType": "VariableDeclaration", + "scope": 2778, + "src": "1402:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2764, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1402:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1361:68:23" + }, + "payable": false, + "returnParameters": { + "id": 2769, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2768, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2778, + "src": "1477:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2767, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1477:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1476:9:23" + }, + "scope": 2845, + "src": "1343:217:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2801, + "nodeType": "Block", + "src": "1690:156:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2791, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2782, + "src": "1731:3:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2792, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2784, + "src": "1736:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2788, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2780, + "src": "1707:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2787, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "1700:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$3348_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1700:21:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$3348", + "typeString": "contract IERC20" + } + }, + "id": 2790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3338, + "src": "1700:30:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 2793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1700:46:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2794, + "nodeType": "ExpressionStatement", + "src": "1700:46:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2796, + "name": "checkSuccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "1778:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bool_$", + "typeString": "function () pure returns (bool)" + } + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1778:14:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2798, + "name": "INVALID_RETURN_TRANSFER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2758, + "src": "1806:23:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2795, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1757:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1757:82:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2800, + "nodeType": "ExpressionStatement", + "src": "1757:82:23" + } + ] + }, + "documentation": null, + "id": 2802, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2780, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2802, + "src": "1593:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2779, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1593:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2782, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2802, + "src": "1624:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2781, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1624:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2784, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2802, + "src": "1645:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2783, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1645:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1583:85:23" + }, + "payable": false, + "returnParameters": { + "id": 2786, + "nodeType": "ParameterList", + "parameters": [], + "src": "1690:0:23" + }, + "scope": 2845, + "src": "1566:280:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2828, + "nodeType": "Block", + "src": "2003:171:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2817, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2806, + "src": "2048:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2818, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2808, + "src": "2055:3:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2819, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2810, + "src": "2060:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2814, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "2020:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2813, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "2013:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$3348_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2013:21:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$3348", + "typeString": "contract IERC20" + } + }, + "id": 2816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 3347, + "src": "2013:34:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 2820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2013:57:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2821, + "nodeType": "ExpressionStatement", + "src": "2013:57:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2823, + "name": "checkSuccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "2102:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bool_$", + "typeString": "function () pure returns (bool)" + } + }, + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2102:14:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2825, + "name": "INVALID_RETURN_TRANSFERFROM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2761, + "src": "2130:27:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2822, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2081:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2081:86:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2827, + "nodeType": "ExpressionStatement", + "src": "2081:86:23" + } + ] + }, + "documentation": null, + "id": 2829, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2804, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1883:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1883:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2806, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1914:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2805, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1914:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2808, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1937:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1937:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2810, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1958:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1958:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1873:108:23" + }, + "payable": false, + "returnParameters": { + "id": 2812, + "nodeType": "ParameterList", + "parameters": [], + "src": "2003:0:23" + }, + "scope": 2845, + "src": "1852:322:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2843, + "nodeType": "Block", + "src": "2473:767:23", + "statements": [ + { + "assignments": [ + 2835 + ], + "declarations": [ + { + "constant": false, + "id": 2835, + "name": "returnValue", + "nodeType": "VariableDeclaration", + "scope": 2844, + "src": "2513:19:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2513:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2837, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2535:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2513:23:23" + }, + { + "externalReferences": [ + { + "returnValue": { + "declaration": 2835, + "isOffset": false, + "isSlot": false, + "src": "3009:11:23", + "valueSize": 1 + } + }, + { + "returnValue": { + "declaration": 2835, + "isOffset": false, + "isSlot": false, + "src": "2751:11:23", + "valueSize": 1 + } + } + ], + "id": 2838, + "nodeType": "InlineAssembly", + "operations": "{\n switch returndatasize()\n case 0x0 {\n returnValue := 1\n }\n case 0x20 {\n returndatacopy(0x0, 0x0, 0x20)\n returnValue := mload(0x0)\n }\n default {\n }\n}", + "src": "2547:669:23" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2839, + "name": "returnValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2835, + "src": "3217:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3232:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3217:16:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2833, + "id": 2842, + "nodeType": "Return", + "src": "3210:23:23" + } + ] + }, + "documentation": "Checks the return value of the previous function up to 32 bytes. Returns true if the previous\nfunction returned 0 bytes or 1.", + "id": 2844, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "checkSuccess", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2830, + "nodeType": "ParameterList", + "parameters": [], + "src": "2409:7:23" + }, + "payable": false, + "returnParameters": { + "id": 2833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2832, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2844, + "src": "2463:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2831, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2463:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2462:6:23" + }, + "scope": 2845, + "src": "2388:852:23", + "stateMutability": "pure", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 2846, + "src": "969:2273:23" + } + ], + "src": "597:2646:23" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ERC20Wrapper.sol", + "exportedSymbols": { + "ERC20Wrapper": [ + 2845 + ] + }, + "id": 2846, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2753, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:23" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/IERC20.sol", + "file": "../../lib/IERC20.sol", + "id": 2755, + "nodeType": "ImportDirective", + "scope": 2846, + "sourceUnit": 3349, + "src": "622:46:23", + "symbolAliases": [ + { + "foreign": 2754, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title ERC20Wrapper\n@author Set Protocol\n * This library contains functions for interacting wtih ERC20 tokens, even those not fully compliant.\nFor all functions we will only accept tokens that return a null or true value, any other values will\ncause the operation to revert.", + "fullyImplemented": true, + "id": 2845, + "linearizedBaseContracts": [ + 2845 + ], + "name": "ERC20Wrapper", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2758, + "name": "INVALID_RETURN_TRANSFER", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "1041:114:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2756, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1041:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5472616e7366657272656420746f6b656e20646f6573206e6f742072657475726e206e756c6c206f722074727565206f6e207375636365737366756c207472616e736665722e", + "id": 2757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1083:72:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6a28e8cd70cea460f64d888906c14b1e15dd90824bd08d495b1878c7147754b3", + "typeString": "literal_string \"Transferred token does not return null or true on successful transfer.\"" + }, + "value": "Transferred token does not return null or true on successful transfer." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2761, + "name": "INVALID_RETURN_TRANSFERFROM", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "1161:122:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2759, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1161:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5472616e7366657272656420746f6b656e20646f6573206e6f742072657475726e206e756c6c206f722074727565206f6e207375636365737366756c207472616e7366657246726f6d2e", + "id": 2760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1207:76:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4aa4f2ff21e6312a79f309b1750981deb687adeae13f742ac475b55c58e95666", + "typeString": "literal_string \"Transferred token does not return null or true on successful transferFrom.\"" + }, + "value": "Transferred token does not return null or true on successful transferFrom." + }, + "visibility": "internal" + }, + { + "body": { + "id": 2777, + "nodeType": "Block", + "src": "1490:70:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2774, + "name": "_ownerAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2765, + "src": "1539:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2771, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2763, + "src": "1514:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2770, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "1507:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$3348_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1507:21:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$3348", + "typeString": "contract IERC20" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 3331, + "src": "1507:31:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1507:46:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2769, + "id": 2776, + "nodeType": "Return", + "src": "1500:53:23" + } + ] + }, + "documentation": null, + "id": 2778, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2763, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2778, + "src": "1371:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2762, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1371:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2765, + "name": "_ownerAddress", + "nodeType": "VariableDeclaration", + "scope": 2778, + "src": "1402:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2764, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1402:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1361:68:23" + }, + "payable": false, + "returnParameters": { + "id": 2769, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2768, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2778, + "src": "1477:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2767, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1477:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1476:9:23" + }, + "scope": 2845, + "src": "1343:217:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2801, + "nodeType": "Block", + "src": "1690:156:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2791, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2782, + "src": "1731:3:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2792, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2784, + "src": "1736:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2788, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2780, + "src": "1707:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2787, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "1700:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$3348_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1700:21:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$3348", + "typeString": "contract IERC20" + } + }, + "id": 2790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3338, + "src": "1700:30:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 2793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1700:46:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2794, + "nodeType": "ExpressionStatement", + "src": "1700:46:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2796, + "name": "checkSuccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "1778:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bool_$", + "typeString": "function () pure returns (bool)" + } + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1778:14:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2798, + "name": "INVALID_RETURN_TRANSFER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2758, + "src": "1806:23:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2795, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1757:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1757:82:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2800, + "nodeType": "ExpressionStatement", + "src": "1757:82:23" + } + ] + }, + "documentation": null, + "id": 2802, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2780, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2802, + "src": "1593:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2779, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1593:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2782, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2802, + "src": "1624:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2781, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1624:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2784, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2802, + "src": "1645:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2783, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1645:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1583:85:23" + }, + "payable": false, + "returnParameters": { + "id": 2786, + "nodeType": "ParameterList", + "parameters": [], + "src": "1690:0:23" + }, + "scope": 2845, + "src": "1566:280:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2828, + "nodeType": "Block", + "src": "2003:171:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2817, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2806, + "src": "2048:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2818, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2808, + "src": "2055:3:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2819, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2810, + "src": "2060:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2814, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "2020:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2813, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "2013:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$3348_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2013:21:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$3348", + "typeString": "contract IERC20" + } + }, + "id": 2816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 3347, + "src": "2013:34:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 2820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2013:57:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2821, + "nodeType": "ExpressionStatement", + "src": "2013:57:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2823, + "name": "checkSuccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "2102:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bool_$", + "typeString": "function () pure returns (bool)" + } + }, + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2102:14:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2825, + "name": "INVALID_RETURN_TRANSFERFROM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2761, + "src": "2130:27:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2822, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2081:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2081:86:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2827, + "nodeType": "ExpressionStatement", + "src": "2081:86:23" + } + ] + }, + "documentation": null, + "id": 2829, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2804, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1883:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1883:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2806, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1914:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2805, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1914:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2808, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1937:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1937:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2810, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1958:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1958:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1873:108:23" + }, + "payable": false, + "returnParameters": { + "id": 2812, + "nodeType": "ParameterList", + "parameters": [], + "src": "2003:0:23" + }, + "scope": 2845, + "src": "1852:322:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2843, + "nodeType": "Block", + "src": "2473:767:23", + "statements": [ + { + "assignments": [ + 2835 + ], + "declarations": [ + { + "constant": false, + "id": 2835, + "name": "returnValue", + "nodeType": "VariableDeclaration", + "scope": 2844, + "src": "2513:19:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2513:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2837, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2535:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2513:23:23" + }, + { + "externalReferences": [ + { + "returnValue": { + "declaration": 2835, + "isOffset": false, + "isSlot": false, + "src": "3009:11:23", + "valueSize": 1 + } + }, + { + "returnValue": { + "declaration": 2835, + "isOffset": false, + "isSlot": false, + "src": "2751:11:23", + "valueSize": 1 + } + } + ], + "id": 2838, + "nodeType": "InlineAssembly", + "operations": "{\n switch returndatasize()\n case 0x0 {\n returnValue := 1\n }\n case 0x20 {\n returndatacopy(0x0, 0x0, 0x20)\n returnValue := mload(0x0)\n }\n default {\n }\n}", + "src": "2547:669:23" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2839, + "name": "returnValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2835, + "src": "3217:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3232:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3217:16:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2833, + "id": 2842, + "nodeType": "Return", + "src": "3210:23:23" + } + ] + }, + "documentation": "Checks the return value of the previous function up to 32 bytes. Returns true if the previous\nfunction returned 0 bytes or 1.", + "id": 2844, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "checkSuccess", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2830, + "nodeType": "ParameterList", + "parameters": [], + "src": "2409:7:23" + }, + "payable": false, + "returnParameters": { + "id": 2833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2832, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2844, + "src": "2463:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2831, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2463:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2462:6:23" + }, + "scope": 2845, + "src": "2388:852:23", + "stateMutability": "pure", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 2846, + "src": "969:2273:23" + } + ], + "src": "597:2646:23" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.905Z" +} \ No newline at end of file diff --git a/artifacts/json/ExchangeHandler.json b/artifacts/json/ExchangeHandler.json new file mode 100644 index 000000000..7f5f77a23 --- /dev/null +++ b/artifacts/json/ExchangeHandler.json @@ -0,0 +1,623 @@ +{ + "contractName": "ExchangeHandler", + "abi": [], + "bytecode": "0x605a602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a265627a7a723058200dab4a360739800d3cc4791c5224568f1774dd6815c1c3c51567a7de55dca9e86c6578706572696d656e74616cf50037", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a265627a7a723058200dab4a360739800d3cc4791c5224568f1774dd6815c1c3c51567a7de55dca9e86c6578706572696d656e74616cf50037", + "sourceMap": "811:960:24:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "811:960:24:-;;;;;;;;", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\npragma experimental \"ABIEncoderV2\";\n\n\n/**\n * @title ExchangeHandler\n * @author Set Protocol\n *\n * This library contains functions and structs to assist with parsing exchange orders data\n */\nlibrary ExchangeHandler {\n\n // ============ Structs ============\n\n struct OrderHeader {\n uint8 exchange;\n uint256 orderLength;\n }\n\n // ============ Internal Functions ============\n\n /**\n * Function to convert bytes into OrderHeader\n *\n * This will always trail an ExchangeOrderHeader, so we don't need to skip\n * the first 32. See Notes in parseExchangeOrdersHeader\n *\n * @param _headerData Bytes representing the order body information\n * @return OrderHeader Struct containing exchange order body data\n */\n function parseOrderHeader(\n bytes _headerData\n )\n internal\n pure\n returns (OrderHeader memory)\n {\n OrderHeader memory header;\n\n assembly {\n mstore(header, mload(add(_headerData, 32))) // exchange\n mstore(add(header, 32), mload(add(_headerData, 64))) // orderLength\n }\n\n return header;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ExchangeHandler.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ExchangeHandler.sol", + "exportedSymbols": { + "ExchangeHandler": [ + 2868 + ] + }, + "id": 2869, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2847, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:24" + }, + { + "id": 2848, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:24" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title ExchangeHandler\n@author Set Protocol\n * This library contains functions and structs to assist with parsing exchange orders data", + "fullyImplemented": true, + "id": 2868, + "linearizedBaseContracts": [ + 2868 + ], + "name": "ExchangeHandler", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ExchangeHandler.OrderHeader", + "id": 2853, + "members": [ + { + "constant": false, + "id": 2850, + "name": "exchange", + "nodeType": "VariableDeclaration", + "scope": 2853, + "src": "913:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2849, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "913:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2852, + "name": "orderLength", + "nodeType": "VariableDeclaration", + "scope": 2853, + "src": "937:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2851, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "937:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "OrderHeader", + "nodeType": "StructDefinition", + "scope": 2868, + "src": "884:79:24", + "visibility": "public" + }, + { + "body": { + "id": 2866, + "nodeType": "Block", + "src": "1516:253:24", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2861, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2867, + "src": "1526:25:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + }, + "typeName": { + "contractScope": null, + "id": 2860, + "name": "OrderHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2853, + "src": "1526:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_storage_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2862, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "1526:25:24" + }, + { + "externalReferences": [ + { + "_headerData": { + "declaration": 2855, + "isOffset": false, + "isSlot": false, + "src": "1619:11:24", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2861, + "isOffset": false, + "isSlot": false, + "src": "1592:6:24", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2861, + "isOffset": false, + "isSlot": false, + "src": "1673:6:24", + "valueSize": 1 + } + }, + { + "_headerData": { + "declaration": 2855, + "isOffset": false, + "isSlot": false, + "src": "1696:11:24", + "valueSize": 1 + } + } + ], + "id": 2863, + "nodeType": "InlineAssembly", + "operations": "{\n mstore(header, mload(add(_headerData, 32)))\n mstore(add(header, 32), mload(add(_headerData, 64)))\n}", + "src": "1562:193:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 2864, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2861, + "src": "1756:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "functionReturnParameters": 2859, + "id": 2865, + "nodeType": "Return", + "src": "1749:13:24" + } + ] + }, + "documentation": "Function to convert bytes into OrderHeader\n * This will always trail an ExchangeOrderHeader, so we don't need to skip\nthe first 32. See Notes in parseExchangeOrdersHeader\n * @param _headerData Bytes representing the order body information\n@return OrderHeader Struct containing exchange order body data", + "id": 2867, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseOrderHeader", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2855, + "name": "_headerData", + "nodeType": "VariableDeclaration", + "scope": 2867, + "src": "1421:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2854, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1421:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1411:33:24" + }, + "payable": false, + "returnParameters": { + "id": 2859, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2858, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2867, + "src": "1492:11:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + }, + "typeName": { + "contractScope": null, + "id": 2857, + "name": "OrderHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2853, + "src": "1492:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_storage_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1491:20:24" + }, + "scope": 2868, + "src": "1386:383:24", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2869, + "src": "811:960:24" + } + ], + "src": "597:1175:24" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ExchangeHandler.sol", + "exportedSymbols": { + "ExchangeHandler": [ + 2868 + ] + }, + "id": 2869, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2847, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:24" + }, + { + "id": 2848, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:24" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title ExchangeHandler\n@author Set Protocol\n * This library contains functions and structs to assist with parsing exchange orders data", + "fullyImplemented": true, + "id": 2868, + "linearizedBaseContracts": [ + 2868 + ], + "name": "ExchangeHandler", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ExchangeHandler.OrderHeader", + "id": 2853, + "members": [ + { + "constant": false, + "id": 2850, + "name": "exchange", + "nodeType": "VariableDeclaration", + "scope": 2853, + "src": "913:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2849, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "913:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2852, + "name": "orderLength", + "nodeType": "VariableDeclaration", + "scope": 2853, + "src": "937:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2851, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "937:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "OrderHeader", + "nodeType": "StructDefinition", + "scope": 2868, + "src": "884:79:24", + "visibility": "public" + }, + { + "body": { + "id": 2866, + "nodeType": "Block", + "src": "1516:253:24", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2861, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2867, + "src": "1526:25:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + }, + "typeName": { + "contractScope": null, + "id": 2860, + "name": "OrderHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2853, + "src": "1526:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_storage_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2862, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "1526:25:24" + }, + { + "externalReferences": [ + { + "_headerData": { + "declaration": 2855, + "isOffset": false, + "isSlot": false, + "src": "1619:11:24", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2861, + "isOffset": false, + "isSlot": false, + "src": "1592:6:24", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2861, + "isOffset": false, + "isSlot": false, + "src": "1673:6:24", + "valueSize": 1 + } + }, + { + "_headerData": { + "declaration": 2855, + "isOffset": false, + "isSlot": false, + "src": "1696:11:24", + "valueSize": 1 + } + } + ], + "id": 2863, + "nodeType": "InlineAssembly", + "operations": "{\n mstore(header, mload(add(_headerData, 32)))\n mstore(add(header, 32), mload(add(_headerData, 64)))\n}", + "src": "1562:193:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 2864, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2861, + "src": "1756:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "functionReturnParameters": 2859, + "id": 2865, + "nodeType": "Return", + "src": "1749:13:24" + } + ] + }, + "documentation": "Function to convert bytes into OrderHeader\n * This will always trail an ExchangeOrderHeader, so we don't need to skip\nthe first 32. See Notes in parseExchangeOrdersHeader\n * @param _headerData Bytes representing the order body information\n@return OrderHeader Struct containing exchange order body data", + "id": 2867, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseOrderHeader", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2855, + "name": "_headerData", + "nodeType": "VariableDeclaration", + "scope": 2867, + "src": "1421:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2854, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1421:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1411:33:24" + }, + "payable": false, + "returnParameters": { + "id": 2859, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2858, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2867, + "src": "1492:11:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + }, + "typeName": { + "contractScope": null, + "id": 2857, + "name": "OrderHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2853, + "src": "1492:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_storage_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1491:20:24" + }, + "scope": 2868, + "src": "1386:383:24", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2869, + "src": "811:960:24" + } + ], + "src": "597:1175:24" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.905Z" +} \ No newline at end of file diff --git a/artifacts/json/ICore.json b/artifacts/json/ICore.json new file mode 100644 index 000000000..abfe3f8c5 --- /dev/null +++ b/artifacts/json/ICore.json @@ -0,0 +1,2405 @@ +{ + "contractName": "ICore", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_vaultAddress", + "type": "address" + } + ], + "name": "setVaultAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_transferProxyAddress", + "type": "address" + } + ], + "name": "setTransferProxyAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + } + ], + "name": "enableFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + } + ], + "name": "disableFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + } + ], + "name": "disableSet", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "issue", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "redeem", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddresses", + "type": "address[]" + }, + { + "name": "_quantities", + "type": "uint256[]" + } + ], + "name": "batchDeposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddresses", + "type": "address[]" + }, + { + "name": "_quantities", + "type": "uint256[]" + } + ], + "name": "batchWithdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + }, + { + "name": "_components", + "type": "address[]" + }, + { + "name": "_units", + "type": "uint256[]" + }, + { + "name": "_naturalUnit", + "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + } + ], + "name": "create", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\n/**\n * @title ICore\n * @author Set Protocol\n *\n * The ICore Contract defines all the functions exposed in the Core through its\n * various extensions and is a light weight way to interact with the contract.\n */\ninterface ICore {\n\n /**\n * Set vaultAddress. Can only be set by owner of Core.\n *\n * @param _vaultAddress The address of the Vault\n */\n function setVaultAddress(\n address _vaultAddress\n )\n external;\n\n /**\n * Set transferProxyAddress. Can only be set by owner of Core.\n *\n * @param _transferProxyAddress The address of the TransferProxy\n */\n function setTransferProxyAddress(\n address _transferProxyAddress\n )\n external;\n\n /**\n * Add a factory to the mapping of tracked factories.\n *\n * @param _factoryAddress The address of the SetTokenFactory to enable\n */\n function enableFactory(\n address _factoryAddress\n )\n external;\n\n /**\n * Disable a factory in the mapping of tracked factories.\n *\n * @param _factoryAddress The address of the SetTokenFactory to disable\n */\n function disableFactory(\n address _factoryAddress\n )\n external;\n\n /**\n * Disable a set token in the mapping of tracked set tokens.\n *\n * @param _setAddress The address of the SetToken to remove\n */\n function disableSet(\n address _setAddress\n )\n external;\n\n /**\n * Issue\n *\n * @param _setAddress Address of set to issue\n * @param _quantity Quantity of set to issue. Should be multiple of natural unit.\n */\n function issue(\n address _setAddress,\n uint _quantity\n )\n external;\n\n /**\n * Function to convert Set Tokens into underlying components\n *\n * @param _setAddress The address of the Set token\n * @param _quantity The number of tokens to redeem. Should be multiple of natural unit.\n */\n function redeem(\n address _setAddress,\n uint _quantity\n )\n external;\n\n /**\n * Deposit multiple tokens to the vault. Quantities should be in the\n * order of the addresses of the tokens being deposited.\n *\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n * @param _quantities Array of the number of tokens to deposit\n */\n function batchDeposit(\n address[] _tokenAddresses,\n uint[] _quantities\n )\n external;\n\n /**\n * Withdraw multiple tokens from the vault. Quantities should be in the\n * order of the addresses of the tokens being withdrawn.\n *\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n * @param _quantities Array of the number of tokens to withdraw\n */\n function batchWithdraw(\n address[] _tokenAddresses,\n uint[] _quantities\n )\n external;\n\n /**\n * Deposit any quantity of tokens into the vault.\n *\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to deposit\n */\n function deposit(\n address _tokenAddress,\n uint _quantity\n )\n public;\n\n /**\n * Withdraw a quantity of tokens from the vault.\n *\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to withdraw\n */\n function withdraw(\n address _tokenAddress,\n uint _quantity\n )\n public;\n\n /**\n * Deploys a new Set Token and adds it to the valid list of SetTokens\n *\n * @param _factoryAddress address The address of the Factory to create from\n * @param _components address[] The address of component tokens\n * @param _units uint[] The units of each component token\n * @param _naturalUnit uint The minimum unit to be issued or redeemed\n * @param _name string The name of the new Set\n * @param _symbol string The symbol of the new Set\n * @return setTokenAddress address The address of the new Set\n */\n function create(\n address _factoryAddress,\n address[] _components,\n uint[] _units,\n uint _naturalUnit,\n string _name,\n string _symbol\n )\n external\n returns(address);\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICore.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICore.sol", + "exportedSymbols": { + "ICore": [ + 2423 + ] + }, + "id": 2424, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2332, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:14" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ICore\n@author Set Protocol\n * The ICore Contract defines all the functions exposed in the Core through its\nvarious extensions and is a light weight way to interact with the contract.", + "fullyImplemented": false, + "id": 2423, + "linearizedBaseContracts": [ + 2423 + ], + "name": "ICore", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Set vaultAddress. Can only be set by owner of Core.\n * @param _vaultAddress The address of the Vault", + "id": 2337, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setVaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2334, + "name": "_vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 2337, + "src": "1028:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2333, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1028:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1018:37:14" + }, + "payable": false, + "returnParameters": { + "id": 2336, + "nodeType": "ParameterList", + "parameters": [], + "src": "1072:0:14" + }, + "scope": 2423, + "src": "994:79:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Set transferProxyAddress. Can only be set by owner of Core.\n * @param _transferProxyAddress The address of the TransferProxy", + "id": 2342, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setTransferProxyAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2339, + "name": "_transferProxyAddress", + "nodeType": "VariableDeclaration", + "scope": 2342, + "src": "1283:29:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1283:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1273:45:14" + }, + "payable": false, + "returnParameters": { + "id": 2341, + "nodeType": "ParameterList", + "parameters": [], + "src": "1335:0:14" + }, + "scope": 2423, + "src": "1241:95:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Add a factory to the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to enable", + "id": 2347, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "enableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2344, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2347, + "src": "1533:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1533:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1523:39:14" + }, + "payable": false, + "returnParameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [], + "src": "1579:0:14" + }, + "scope": 2423, + "src": "1501:79:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Disable a factory in the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to disable", + "id": 2352, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "disableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2349, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2352, + "src": "1783:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1783:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1773:39:14" + }, + "payable": false, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [], + "src": "1829:0:14" + }, + "scope": 2423, + "src": "1750:80:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Disable a set token in the mapping of tracked set tokens.\n * @param _setAddress The address of the SetToken to remove", + "id": 2357, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "disableSet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2354, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2357, + "src": "2020:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2353, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2020:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2010:35:14" + }, + "payable": false, + "returnParameters": { + "id": 2356, + "nodeType": "ParameterList", + "parameters": [], + "src": "2062:0:14" + }, + "scope": 2423, + "src": "1991:72:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Issue\n * @param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue. Should be multiple of natural unit.", + "id": 2364, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "issue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2359, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2364, + "src": "2273:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2358, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2273:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2361, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2364, + "src": "2302:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2302:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2263:59:14" + }, + "payable": false, + "returnParameters": { + "id": 2363, + "nodeType": "ParameterList", + "parameters": [], + "src": "2339:0:14" + }, + "scope": 2423, + "src": "2249:91:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Function to convert Set Tokens into underlying components\n * @param _setAddress The address of the Set token\n@param _quantity The number of tokens to redeem. Should be multiple of natural unit.", + "id": 2371, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "redeem", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2366, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2371, + "src": "2612:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2612:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2368, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2371, + "src": "2641:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2641:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2602:59:14" + }, + "payable": false, + "returnParameters": { + "id": 2370, + "nodeType": "ParameterList", + "parameters": [], + "src": "2678:0:14" + }, + "scope": 2423, + "src": "2587:92:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Deposit multiple tokens to the vault. Quantities should be in the\norder of the addresses of the tokens being deposited.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to deposit", + "id": 2380, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "batchDeposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2374, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 2380, + "src": "3023:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3023:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2373, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3023:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2377, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 2380, + "src": "3058:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2375, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3058:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2376, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3058:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3013:69:14" + }, + "payable": false, + "returnParameters": { + "id": 2379, + "nodeType": "ParameterList", + "parameters": [], + "src": "3099:0:14" + }, + "scope": 2423, + "src": "2992:108:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Withdraw multiple tokens from the vault. Quantities should be in the\norder of the addresses of the tokens being withdrawn.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to withdraw", + "id": 2389, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "batchWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2383, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 2389, + "src": "3451:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2381, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3451:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2382, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3451:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2386, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 2389, + "src": "3486:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2384, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3486:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2385, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3486:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3441:69:14" + }, + "payable": false, + "returnParameters": { + "id": 2388, + "nodeType": "ParameterList", + "parameters": [], + "src": "3527:0:14" + }, + "scope": 2423, + "src": "3419:109:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Deposit any quantity of tokens into the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to deposit", + "id": 2396, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "deposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2391, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2396, + "src": "3764:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2390, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3764:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2393, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2396, + "src": "3795:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2392, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3795:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3754:61:14" + }, + "payable": false, + "returnParameters": { + "id": 2395, + "nodeType": "ParameterList", + "parameters": [], + "src": "3830:0:14" + }, + "scope": 2423, + "src": "3738:93:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "Withdraw a quantity of tokens from the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to withdraw", + "id": 2403, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2398, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2403, + "src": "4068:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2397, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4068:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2400, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2403, + "src": "4099:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2399, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4099:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4058:61:14" + }, + "payable": false, + "returnParameters": { + "id": 2402, + "nodeType": "ParameterList", + "parameters": [], + "src": "4134:0:14" + }, + "scope": 2423, + "src": "4041:94:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "Deploys a new Set Token and adds it to the valid list of SetTokens\n * @param _factoryAddress address The address of the Factory to create from\n@param _components address[] The address of component tokens\n@param _units uint[] The units of each component token\n@param _naturalUnit uint The minimum unit to be issued or redeemed\n@param _name string The name of the new Set\n@param _symbol string The symbol of the new Set\n@return setTokenAddress address The address of the new Set", + "id": 2422, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "create", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2405, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4812:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2404, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4812:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2408, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4845:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4845:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2407, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4845:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2411, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4876:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2409, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4876:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2410, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4876:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2413, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4899:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2412, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4899:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2415, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4926:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2414, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4926:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2417, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4948:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2416, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4948:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4802:166:14" + }, + "payable": false, + "returnParameters": { + "id": 2421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2420, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "5002:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5002:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5001:9:14" + }, + "scope": 2423, + "src": "4787:224:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2424, + "src": "833:4180:14" + } + ], + "src": "597:4417:14" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICore.sol", + "exportedSymbols": { + "ICore": [ + 2423 + ] + }, + "id": 2424, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2332, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:14" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ICore\n@author Set Protocol\n * The ICore Contract defines all the functions exposed in the Core through its\nvarious extensions and is a light weight way to interact with the contract.", + "fullyImplemented": false, + "id": 2423, + "linearizedBaseContracts": [ + 2423 + ], + "name": "ICore", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Set vaultAddress. Can only be set by owner of Core.\n * @param _vaultAddress The address of the Vault", + "id": 2337, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setVaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2334, + "name": "_vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 2337, + "src": "1028:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2333, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1028:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1018:37:14" + }, + "payable": false, + "returnParameters": { + "id": 2336, + "nodeType": "ParameterList", + "parameters": [], + "src": "1072:0:14" + }, + "scope": 2423, + "src": "994:79:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Set transferProxyAddress. Can only be set by owner of Core.\n * @param _transferProxyAddress The address of the TransferProxy", + "id": 2342, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setTransferProxyAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2339, + "name": "_transferProxyAddress", + "nodeType": "VariableDeclaration", + "scope": 2342, + "src": "1283:29:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1283:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1273:45:14" + }, + "payable": false, + "returnParameters": { + "id": 2341, + "nodeType": "ParameterList", + "parameters": [], + "src": "1335:0:14" + }, + "scope": 2423, + "src": "1241:95:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Add a factory to the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to enable", + "id": 2347, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "enableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2344, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2347, + "src": "1533:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1533:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1523:39:14" + }, + "payable": false, + "returnParameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [], + "src": "1579:0:14" + }, + "scope": 2423, + "src": "1501:79:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Disable a factory in the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to disable", + "id": 2352, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "disableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2349, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2352, + "src": "1783:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1783:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1773:39:14" + }, + "payable": false, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [], + "src": "1829:0:14" + }, + "scope": 2423, + "src": "1750:80:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Disable a set token in the mapping of tracked set tokens.\n * @param _setAddress The address of the SetToken to remove", + "id": 2357, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "disableSet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2354, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2357, + "src": "2020:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2353, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2020:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2010:35:14" + }, + "payable": false, + "returnParameters": { + "id": 2356, + "nodeType": "ParameterList", + "parameters": [], + "src": "2062:0:14" + }, + "scope": 2423, + "src": "1991:72:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Issue\n * @param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue. Should be multiple of natural unit.", + "id": 2364, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "issue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2359, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2364, + "src": "2273:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2358, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2273:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2361, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2364, + "src": "2302:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2302:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2263:59:14" + }, + "payable": false, + "returnParameters": { + "id": 2363, + "nodeType": "ParameterList", + "parameters": [], + "src": "2339:0:14" + }, + "scope": 2423, + "src": "2249:91:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Function to convert Set Tokens into underlying components\n * @param _setAddress The address of the Set token\n@param _quantity The number of tokens to redeem. Should be multiple of natural unit.", + "id": 2371, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "redeem", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2366, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2371, + "src": "2612:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2612:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2368, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2371, + "src": "2641:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2641:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2602:59:14" + }, + "payable": false, + "returnParameters": { + "id": 2370, + "nodeType": "ParameterList", + "parameters": [], + "src": "2678:0:14" + }, + "scope": 2423, + "src": "2587:92:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Deposit multiple tokens to the vault. Quantities should be in the\norder of the addresses of the tokens being deposited.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to deposit", + "id": 2380, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "batchDeposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2374, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 2380, + "src": "3023:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3023:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2373, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3023:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2377, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 2380, + "src": "3058:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2375, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3058:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2376, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3058:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3013:69:14" + }, + "payable": false, + "returnParameters": { + "id": 2379, + "nodeType": "ParameterList", + "parameters": [], + "src": "3099:0:14" + }, + "scope": 2423, + "src": "2992:108:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Withdraw multiple tokens from the vault. Quantities should be in the\norder of the addresses of the tokens being withdrawn.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to withdraw", + "id": 2389, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "batchWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2383, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 2389, + "src": "3451:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2381, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3451:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2382, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3451:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2386, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 2389, + "src": "3486:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2384, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3486:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2385, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3486:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3441:69:14" + }, + "payable": false, + "returnParameters": { + "id": 2388, + "nodeType": "ParameterList", + "parameters": [], + "src": "3527:0:14" + }, + "scope": 2423, + "src": "3419:109:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Deposit any quantity of tokens into the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to deposit", + "id": 2396, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "deposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2391, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2396, + "src": "3764:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2390, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3764:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2393, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2396, + "src": "3795:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2392, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3795:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3754:61:14" + }, + "payable": false, + "returnParameters": { + "id": 2395, + "nodeType": "ParameterList", + "parameters": [], + "src": "3830:0:14" + }, + "scope": 2423, + "src": "3738:93:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "Withdraw a quantity of tokens from the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to withdraw", + "id": 2403, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2398, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2403, + "src": "4068:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2397, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4068:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2400, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2403, + "src": "4099:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2399, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4099:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4058:61:14" + }, + "payable": false, + "returnParameters": { + "id": 2402, + "nodeType": "ParameterList", + "parameters": [], + "src": "4134:0:14" + }, + "scope": 2423, + "src": "4041:94:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "Deploys a new Set Token and adds it to the valid list of SetTokens\n * @param _factoryAddress address The address of the Factory to create from\n@param _components address[] The address of component tokens\n@param _units uint[] The units of each component token\n@param _naturalUnit uint The minimum unit to be issued or redeemed\n@param _name string The name of the new Set\n@param _symbol string The symbol of the new Set\n@return setTokenAddress address The address of the new Set", + "id": 2422, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "create", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2405, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4812:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2404, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4812:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2408, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4845:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4845:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2407, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4845:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2411, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4876:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2409, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4876:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2410, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4876:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2413, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4899:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2412, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4899:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2415, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4926:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2414, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4926:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2417, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4948:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2416, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4948:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4802:166:14" + }, + "payable": false, + "returnParameters": { + "id": 2421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2420, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "5002:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5002:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5001:9:14" + }, + "scope": 2423, + "src": "4787:224:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2424, + "src": "833:4180:14" + } + ], + "src": "597:4417:14" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.903Z" +} \ No newline at end of file diff --git a/artifacts/json/ICoreIssuance.json b/artifacts/json/ICoreIssuance.json new file mode 100644 index 000000000..f8b968fa0 --- /dev/null +++ b/artifacts/json/ICoreIssuance.json @@ -0,0 +1,313 @@ +{ + "contractName": "ICoreIssuance", + "abi": [], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\n/**\n * @title ICoreIssuance\n * @author Set Protocol\n *\n * The ICoreIssuance Contract defines all the functions exposed in the CoreIssuance\n * extension.\n */\ncontract ICoreIssuance {\n\n /**\n * Issue internally. Can define who to issue to.\n *\n * @param _owner Address to issue set to\n * @param _setAddress Address of set to issue\n * @param _quantity Quantity of set to issue\n */\n function issueInternal(\n address _owner,\n address _setAddress,\n uint _quantity\n )\n internal;\n}", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICoreIssuance.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICoreIssuance.sol", + "exportedSymbols": { + "ICoreIssuance": [ + 2435 + ] + }, + "id": 2436, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2425, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:15" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ICoreIssuance\n@author Set Protocol\n * The ICoreIssuance Contract defines all the functions exposed in the CoreIssuance\nextension.", + "fullyImplemented": false, + "id": 2435, + "linearizedBaseContracts": [ + 2435 + ], + "name": "ICoreIssuance", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Issue internally. Can define who to issue to.\n * @param _owner Address to issue set to\n@param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue", + "id": 2434, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "issueInternal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2427, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2434, + "src": "1078:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1078:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2429, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2434, + "src": "1102:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1102:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2431, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2434, + "src": "1131:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2430, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1131:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1068:83:15" + }, + "payable": false, + "returnParameters": { + "id": 2433, + "nodeType": "ParameterList", + "parameters": [], + "src": "1168:0:15" + }, + "scope": 2435, + "src": "1046:123:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2436, + "src": "780:391:15" + } + ], + "src": "597:574:15" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICoreIssuance.sol", + "exportedSymbols": { + "ICoreIssuance": [ + 2435 + ] + }, + "id": 2436, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2425, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:15" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ICoreIssuance\n@author Set Protocol\n * The ICoreIssuance Contract defines all the functions exposed in the CoreIssuance\nextension.", + "fullyImplemented": false, + "id": 2435, + "linearizedBaseContracts": [ + 2435 + ], + "name": "ICoreIssuance", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Issue internally. Can define who to issue to.\n * @param _owner Address to issue set to\n@param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue", + "id": 2434, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "issueInternal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2427, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2434, + "src": "1078:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1078:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2429, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2434, + "src": "1102:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1102:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2431, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2434, + "src": "1131:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2430, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1131:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1068:83:15" + }, + "payable": false, + "returnParameters": { + "id": 2433, + "nodeType": "ParameterList", + "parameters": [], + "src": "1168:0:15" + }, + "scope": 2435, + "src": "1046:123:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2436, + "src": "780:391:15" + } + ], + "src": "597:574:15" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.903Z" +} \ No newline at end of file diff --git a/artifacts/json/IERC20.json b/artifacts/json/IERC20.json new file mode 100644 index 000000000..26d26dd1d --- /dev/null +++ b/artifacts/json/IERC20.json @@ -0,0 +1,703 @@ +{ + "contractName": "IERC20", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\n/**\n * @title GeneralERC20\n * @author Set Protocol\n *\n * Interface for using ERC20 Tokens. This interface is needed to interact with tokens that are not\n * fully ERC20 compliant and return something other than true on successful transfers.\n */\ninterface IERC20 {\n function balanceOf(\n address _owner\n )\n external\n view\n returns (uint256);\n\n function transfer(\n address _to,\n uint256 _quantity\n )\n external;\n\n function transferFrom(\n address _from,\n address _to,\n uint256 _quantity\n )\n external;\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/IERC20.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 3348 + ] + }, + "id": 3349, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3324, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:28" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title GeneralERC20\n@author Set Protocol\n * Interface for using ERC20 Tokens. This interface is needed to interact with tokens that are not\nfully ERC20 compliant and return something other than true on successful transfers.", + "fullyImplemented": false, + "id": 3348, + "linearizedBaseContracts": [ + 3348 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3331, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3327, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3326, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "918:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "918:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "908:30:28" + }, + "payable": false, + "returnParameters": { + "id": 3330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3329, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "986:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "986:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "985:9:28" + }, + "scope": 3348, + "src": "890:105:28", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 3338, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3338, + "src": "1028:11:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1028:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3335, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 3338, + "src": "1049:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1049:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1018:54:28" + }, + "payable": false, + "returnParameters": { + "id": 3337, + "nodeType": "ParameterList", + "parameters": [], + "src": "1089:0:28" + }, + "scope": 3348, + "src": "1001:89:28", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 3347, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3340, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "1127:13:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3339, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1127:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3342, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "1150:11:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3341, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1150:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3344, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "1171:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1171:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1117:77:28" + }, + "payable": false, + "returnParameters": { + "id": 3346, + "nodeType": "ParameterList", + "parameters": [], + "src": "1211:0:28" + }, + "scope": 3348, + "src": "1096:116:28", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 3349, + "src": "867:347:28" + } + ], + "src": "597:618:28" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 3348 + ] + }, + "id": 3349, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3324, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:28" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title GeneralERC20\n@author Set Protocol\n * Interface for using ERC20 Tokens. This interface is needed to interact with tokens that are not\nfully ERC20 compliant and return something other than true on successful transfers.", + "fullyImplemented": false, + "id": 3348, + "linearizedBaseContracts": [ + 3348 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3331, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3327, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3326, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "918:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "918:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "908:30:28" + }, + "payable": false, + "returnParameters": { + "id": 3330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3329, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "986:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "986:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "985:9:28" + }, + "scope": 3348, + "src": "890:105:28", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 3338, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3338, + "src": "1028:11:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1028:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3335, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 3338, + "src": "1049:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1049:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1018:54:28" + }, + "payable": false, + "returnParameters": { + "id": 3337, + "nodeType": "ParameterList", + "parameters": [], + "src": "1089:0:28" + }, + "scope": 3348, + "src": "1001:89:28", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 3347, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3340, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "1127:13:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3339, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1127:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3342, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "1150:11:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3341, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1150:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3344, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "1171:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1171:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1117:77:28" + }, + "payable": false, + "returnParameters": { + "id": 3346, + "nodeType": "ParameterList", + "parameters": [], + "src": "1211:0:28" + }, + "scope": 3348, + "src": "1096:116:28", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 3349, + "src": "867:347:28" + } + ], + "src": "597:618:28" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.908Z" +} \ No newline at end of file diff --git a/artifacts/json/IExchange.json b/artifacts/json/IExchange.json new file mode 100644 index 000000000..8bb347e9c --- /dev/null +++ b/artifacts/json/IExchange.json @@ -0,0 +1,283 @@ +{ + "contractName": "IExchange", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_orderData", + "type": "bytes" + } + ], + "name": "exchange", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\n/**\n * @title IExchange\n * @author Set Protocol\n *\n * Interface for executing an order with an exchange\n */\ninterface IExchange {\n\n /**\n * Exchange some amount of takerToken for makerToken.\n *\n * @param _orderData Arbitrary bytes data for any information to pass to the exchange\n * @return uint256 The amount of makerToken received\n */\n function exchange(\n bytes _orderData\n )\n external\n returns (uint256);\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IExchange.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IExchange.sol", + "exportedSymbols": { + "IExchange": [ + 2445 + ] + }, + "id": 2446, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2437, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:16" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title IExchange\n@author Set Protocol\n * Interface for executing an order with an exchange", + "fullyImplemented": false, + "id": 2445, + "linearizedBaseContracts": [ + 2445 + ], + "name": "IExchange", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Exchange some amount of takerToken for makerToken.\n * @param _orderData Arbitrary bytes data for any information to pass to the exchange\n@return uint256 The amount of makerToken received", + "id": 2444, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "exchange", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2439, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2444, + "src": "1019:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2438, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1019:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1009:32:16" + }, + "payable": false, + "returnParameters": { + "id": 2443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2442, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2444, + "src": "1076:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1076:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1075:9:16" + }, + "scope": 2445, + "src": "992:93:16", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2446, + "src": "731:356:16" + } + ], + "src": "597:491:16" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IExchange.sol", + "exportedSymbols": { + "IExchange": [ + 2445 + ] + }, + "id": 2446, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2437, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:16" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title IExchange\n@author Set Protocol\n * Interface for executing an order with an exchange", + "fullyImplemented": false, + "id": 2445, + "linearizedBaseContracts": [ + 2445 + ], + "name": "IExchange", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Exchange some amount of takerToken for makerToken.\n * @param _orderData Arbitrary bytes data for any information to pass to the exchange\n@return uint256 The amount of makerToken received", + "id": 2444, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "exchange", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2439, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2444, + "src": "1019:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2438, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1019:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1009:32:16" + }, + "payable": false, + "returnParameters": { + "id": 2443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2442, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2444, + "src": "1076:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1076:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1075:9:16" + }, + "scope": 2445, + "src": "992:93:16", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2446, + "src": "731:356:16" + } + ], + "src": "597:491:16" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.903Z" +} \ No newline at end of file diff --git a/artifacts/json/ISetFactory.json b/artifacts/json/ISetFactory.json index 5d323bef9..d5e922ab4 100644 --- a/artifacts/json/ISetFactory.json +++ b/artifacts/json/ISetFactory.json @@ -1,11 +1,25 @@ { "contractName": "ISetFactory", "abi": [ + { + "constant": false, + "inputs": [], + "name": "core", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": false, "inputs": [ { - "name": "_tokens", + "name": "_components", "type": "address[]" }, { @@ -15,9 +29,17 @@ { "name": "_naturalUnit", "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" } ], - "name": "createSet", + "name": "create", "outputs": [ { "name": "", @@ -33,37 +55,37 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity 0.4.23;\n\n\n/**\n * @title Set Factory Interface\n */\ncontract ISetFactory {\n\tfunction createSet(\n\t\taddress[] _tokens,\n\t\tuint[] _units,\n\t\tuint _naturalUnit\n\t)\n\t\tpublic\n\t\treturns (address);\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\n/**\n * @title ISetFactory\n * @author Set Protocol\n *\n * The ITransferProxy interface provides operability for authorized contracts\n * to interact with SetTokenFactory\n */\ninterface ISetFactory {\n function core() external returns (address);\n\n function create(\n address[] _components,\n uint[] _units,\n uint _naturalUnit,\n string _name,\n string _symbol\n )\n external\n returns (address);\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", "exportedSymbols": { "ISetFactory": [ - 1592 + 574 ] }, - "id": 1593, + "id": 575, "nodeType": "SourceUnit", "nodes": [ { - "id": 1578, + "id": 551, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:4" + "src": "597:23:2" }, { "baseContracts": [], "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Set Factory Interface", + "contractKind": "interface", + "documentation": "@title ISetFactory\n@author Set Protocol\n * The ITransferProxy interface provides operability for authorized contracts\nto interact with SetTokenFactory", "fullyImplemented": false, - "id": 1592, + "id": 574, "linearizedBaseContracts": [ - 1592 + 574 ], "name": "ISetFactory", "nodeType": "ContractDefinition", @@ -71,45 +93,101 @@ { "body": null, "documentation": null, - "id": 1591, + "id": 556, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "core", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 552, + "nodeType": "ParameterList", + "parameters": [], + "src": "835:2:2" + }, + "payable": false, + "returnParameters": { + "id": 555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 554, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "856:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 553, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "856:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "855:9:2" + }, + "scope": 574, + "src": "822:43:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 573, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "createSet", + "name": "create", "nodeType": "FunctionDefinition", "parameters": { - "id": 1587, + "id": 569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1581, - "name": "_tokens", + "id": 559, + "name": "_components", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "112:17:4", + "scope": 573, + "src": "896:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 1579, + "id": 557, "name": "address", "nodeType": "ElementaryTypeName", - "src": "112:7:4", + "src": "896:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1580, + "id": 558, "length": null, "nodeType": "ArrayTypeName", - "src": "112:9:4", + "src": "896:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -120,32 +198,32 @@ }, { "constant": false, - "id": 1584, + "id": 562, "name": "_units", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "133:13:4", + "scope": 573, + "src": "927:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { - "id": 1582, + "id": 560, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "133:4:4", + "src": "927:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1583, + "id": 561, "length": null, "nodeType": "ArrayTypeName", - "src": "133:6:4", + "src": "927:6:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -156,11 +234,11 @@ }, { "constant": false, - "id": 1586, + "id": 564, "name": "_naturalUnit", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "150:17:4", + "scope": 573, + "src": "950:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -168,10 +246,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1585, + "id": 563, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "150:4:4", + "src": "950:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -179,22 +257,74 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 566, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "977:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 565, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "977:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "999:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 567, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "999:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "108:62:4" + "src": "886:133:2" }, "payable": false, "returnParameters": { - "id": 1590, + "id": 572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1589, + "id": 571, "name": "", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "191:7:4", + "scope": 573, + "src": "1054:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -202,10 +332,10 @@ "typeString": "address" }, "typeName": { - "id": 1588, + "id": 570, "name": "address", "nodeType": "ElementaryTypeName", - "src": "191:7:4", + "src": "1054:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -215,50 +345,50 @@ "visibility": "internal" } ], - "src": "190:9:4" + "src": "1053:9:2" }, - "scope": 1592, - "src": "90:110:4", + "scope": 574, + "src": "871:192:2", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" } ], - "scope": 1593, - "src": "66:136:4" + "scope": 575, + "src": "794:271:2" } ], - "src": "0:203:4" + "src": "597:469:2" }, "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", "exportedSymbols": { "ISetFactory": [ - 1592 + 574 ] }, - "id": 1593, + "id": 575, "nodeType": "SourceUnit", "nodes": [ { - "id": 1578, + "id": 551, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:4" + "src": "597:23:2" }, { "baseContracts": [], "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Set Factory Interface", + "contractKind": "interface", + "documentation": "@title ISetFactory\n@author Set Protocol\n * The ITransferProxy interface provides operability for authorized contracts\nto interact with SetTokenFactory", "fullyImplemented": false, - "id": 1592, + "id": 574, "linearizedBaseContracts": [ - 1592 + 574 ], "name": "ISetFactory", "nodeType": "ContractDefinition", @@ -266,45 +396,101 @@ { "body": null, "documentation": null, - "id": 1591, + "id": 556, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "core", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 552, + "nodeType": "ParameterList", + "parameters": [], + "src": "835:2:2" + }, + "payable": false, + "returnParameters": { + "id": 555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 554, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "856:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 553, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "856:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "855:9:2" + }, + "scope": 574, + "src": "822:43:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 573, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "createSet", + "name": "create", "nodeType": "FunctionDefinition", "parameters": { - "id": 1587, + "id": 569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1581, - "name": "_tokens", + "id": 559, + "name": "_components", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "112:17:4", + "scope": 573, + "src": "896:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 1579, + "id": 557, "name": "address", "nodeType": "ElementaryTypeName", - "src": "112:7:4", + "src": "896:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1580, + "id": 558, "length": null, "nodeType": "ArrayTypeName", - "src": "112:9:4", + "src": "896:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -315,32 +501,32 @@ }, { "constant": false, - "id": 1584, + "id": 562, "name": "_units", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "133:13:4", + "scope": 573, + "src": "927:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { - "id": 1582, + "id": 560, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "133:4:4", + "src": "927:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1583, + "id": 561, "length": null, "nodeType": "ArrayTypeName", - "src": "133:6:4", + "src": "927:6:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -351,11 +537,11 @@ }, { "constant": false, - "id": 1586, + "id": 564, "name": "_naturalUnit", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "150:17:4", + "scope": 573, + "src": "950:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -363,10 +549,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1585, + "id": 563, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "150:4:4", + "src": "950:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -374,22 +560,74 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 566, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "977:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 565, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "977:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "999:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 567, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "999:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "108:62:4" + "src": "886:133:2" }, "payable": false, "returnParameters": { - "id": 1590, + "id": 572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1589, + "id": 571, "name": "", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "191:7:4", + "scope": 573, + "src": "1054:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -397,10 +635,10 @@ "typeString": "address" }, "typeName": { - "id": 1588, + "id": 570, "name": "address", "nodeType": "ElementaryTypeName", - "src": "191:7:4", + "src": "1054:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -410,26 +648,26 @@ "visibility": "internal" } ], - "src": "190:9:4" + "src": "1053:9:2" }, - "scope": 1592, - "src": "90:110:4", + "scope": 574, + "src": "871:192:2", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" } ], - "scope": 1593, - "src": "66:136:4" + "scope": 575, + "src": "794:271:2" } ], - "src": "0:203:4" + "src": "597:469:2" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.577Z" + "updatedAt": "2018-07-07T15:28:53.725Z" } \ No newline at end of file diff --git a/artifacts/json/ISetToken.json b/artifacts/json/ISetToken.json index f012e291e..fec58ca40 100644 --- a/artifacts/json/ISetToken.json +++ b/artifacts/json/ISetToken.json @@ -2,52 +2,41 @@ "contractName": "ISetToken", "abi": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_sender", - "type": "address" - }, + "constant": false, + "inputs": [], + "name": "naturalUnit", + "outputs": [ { - "indexed": false, - "name": "_quantity", + "name": "", "type": "uint256" } ], - "name": "LogIssuance", - "type": "event" + "payable": false, + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_sender", - "type": "address" - }, + "constant": false, + "inputs": [], + "name": "getComponents", + "outputs": [ { - "indexed": false, - "name": "_quantity", - "type": "uint256" + "name": "", + "type": "address[]" } ], - "name": "LogRedemption", - "type": "event" + "payable": false, + "stateMutability": "nonpayable", + "type": "function" }, { "constant": false, - "inputs": [ - { - "name": "_quantity", - "type": "uint256" - } - ], - "name": "issue", + "inputs": [], + "name": "getUnits", "outputs": [ { "name": "", - "type": "bool" + "type": "uint256[]" } ], "payable": false, @@ -57,18 +46,35 @@ { "constant": false, "inputs": [ + { + "name": "_issuer", + "type": "address" + }, { "name": "_quantity", "type": "uint256" } ], - "name": "redeem", - "outputs": [ + "name": "mint", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ { - "name": "", - "type": "bool" + "name": "_from", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" } ], + "name": "burn", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" @@ -78,62 +84,69 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity 0.4.23;\n\n\n/**\n * @title Set Token Interface\n */\ncontract ISetToken {\n\n /**\n * @dev Function to convert component into {Set} Tokens\n *\n * Please note that the user's ERC20 component must be approved by\n * their ERC20 contract to transfer their components to this contract.\n *\n * @param _quantity uint The quantity of Sets desired to issue in Wei as a multiple of naturalUnit\n */\n function issue(\n uint _quantity\n )\n public\n returns (bool);\n\n /**\n * @dev Function to convert {Set} Tokens into underlying components\n *\n * The ERC20 components do not need to be approved to call this function\n *\n * @param _quantity uint The quantity of Sets desired to redeem in Wei as a multiple of naturalUnit\n */\n function redeem(\n uint _quantity\n )\n public\n returns (bool);\n\n event LogIssuance(\n address indexed _sender,\n uint _quantity\n );\n\n event LogRedemption(\n address indexed _sender,\n uint _quantity\n );\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n/**\n * @title ISetToken\n * @author Set Protocol\n *\n * The ISetToken interface provides a light-weight, structured way to interact with the\n * SetToken contract from another contract.\n */\ninterface ISetToken {\n function naturalUnit()\n external\n returns (uint);\n\n function getComponents()\n external\n returns(address[]);\n\n function getUnits()\n external\n returns(uint[]);\n\n function mint(\n address _issuer,\n uint _quantity\n )\n external;\n\n function burn(\n address _from,\n uint _quantity\n )\n external;\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", "exportedSymbols": { "ISetToken": [ - 1621 + 2504 ] }, - "id": 1622, + "id": 2505, "nodeType": "SourceUnit", "nodes": [ { - "id": 1594, + "id": 2472, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:5" + "src": "597:23:18" }, { "baseContracts": [], "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Set Token Interface", + "contractKind": "interface", + "documentation": "@title ISetToken\n@author Set Protocol\n * The ISetToken interface provides a light-weight, structured way to interact with the\nSetToken contract from another contract.", "fullyImplemented": false, - "id": 1621, + "id": 2504, "linearizedBaseContracts": [ - 1621 + 2504 ], "name": "ISetToken", "nodeType": "ContractDefinition", "nodes": [ { "body": null, - "documentation": "@dev Function to convert component into {Set} Tokens\n * Please note that the user's ERC20 component must be approved by\ntheir ERC20 contract to transfer their components to this contract.\n * @param _quantity uint The quantity of Sets desired to issue in Wei as a multiple of naturalUnit", - "id": 1601, + "documentation": null, + "id": 2477, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "issue", + "name": "naturalUnit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1597, + "id": 2473, + "nodeType": "ParameterList", + "parameters": [], + "src": "855:2:18" + }, + "payable": false, + "returnParameters": { + "id": 2476, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1596, - "name": "_quantity", + "id": 2475, + "name": "", "nodeType": "VariableDeclaration", - "scope": 1601, - "src": "446:14:5", + "scope": 2477, + "src": "892:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -141,10 +154,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1595, + "id": 2474, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "446:4:5", + "src": "892:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -154,149 +167,167 @@ "visibility": "internal" } ], - "src": "436:30:5" + "src": "891:6:18" + }, + "scope": 2504, + "src": "835:63:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2483, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "getComponents", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2478, + "nodeType": "ParameterList", + "parameters": [], + "src": "926:2:18" }, "payable": false, "returnParameters": { - "id": 1600, + "id": 2482, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1599, + "id": 2481, "name": "", "nodeType": "VariableDeclaration", - "scope": 1601, - "src": "499:4:5", + "scope": 2483, + "src": "962:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { - "id": 1598, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "499:4:5", + "baseType": { + "id": 2479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "962:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2480, + "length": null, + "nodeType": "ArrayTypeName", + "src": "962:9:18", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], - "src": "498:6:5" + "src": "961:11:18" }, - "scope": 1621, - "src": "422:83:5", + "scope": 2504, + "src": "904:69:18", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": null, - "documentation": "@dev Function to convert {Set} Tokens into underlying components\n * The ERC20 components do not need to be approved to call this function\n * @param _quantity uint The quantity of Sets desired to redeem in Wei as a multiple of naturalUnit", - "id": 1608, + "documentation": null, + "id": 2489, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "redeem", + "name": "getUnits", "nodeType": "FunctionDefinition", "parameters": { - "id": 1604, + "id": 2484, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1603, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 1608, - "src": "813:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1602, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "813:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "803:30:5" + "parameters": [], + "src": "996:2:18" }, "payable": false, "returnParameters": { - "id": 1607, + "id": 2488, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1606, + "id": 2487, "name": "", "nodeType": "VariableDeclaration", - "scope": 1608, - "src": "866:4:5", + "scope": 2489, + "src": "1032:6:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" }, "typeName": { - "id": 1605, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "866:4:5", + "baseType": { + "id": 2485, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1032:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2486, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1032:6:18", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" } }, "value": null, "visibility": "internal" } ], - "src": "865:6:5" + "src": "1031:8:18" }, - "scope": 1621, - "src": "788:84:5", + "scope": 2504, + "src": "979:61:18", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { - "anonymous": false, + "body": null, "documentation": null, - "id": 1614, - "name": "LogIssuance", - "nodeType": "EventDefinition", + "id": 2496, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", "parameters": { - "id": 1613, + "id": 2494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1610, - "indexed": true, - "name": "_sender", + "id": 2491, + "name": "_issuer", "nodeType": "VariableDeclaration", - "scope": 1614, - "src": "905:23:5", + "scope": 2496, + "src": "1069:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -304,10 +335,10 @@ "typeString": "address" }, "typeName": { - "id": 1609, + "id": 2490, "name": "address", "nodeType": "ElementaryTypeName", - "src": "905:7:5", + "src": "1069:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -318,12 +349,11 @@ }, { "constant": false, - "id": 1612, - "indexed": false, + "id": 2493, "name": "_quantity", "nodeType": "VariableDeclaration", - "scope": 1614, - "src": "938:14:5", + "scope": 2496, + "src": "1094:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -331,10 +361,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1611, + "id": 2492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "938:4:5", + "src": "1094:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -344,28 +374,42 @@ "visibility": "internal" } ], - "src": "895:63:5" + "src": "1059:55:18" + }, + "payable": false, + "returnParameters": { + "id": 2495, + "nodeType": "ParameterList", + "parameters": [], + "src": "1131:0:18" }, - "src": "878:81:5" + "scope": 2504, + "src": "1046:86:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" }, { - "anonymous": false, + "body": null, "documentation": null, - "id": 1620, - "name": "LogRedemption", - "nodeType": "EventDefinition", + "id": 2503, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", "parameters": { - "id": 1619, + "id": 2501, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1616, - "indexed": true, - "name": "_sender", + "id": 2498, + "name": "_from", "nodeType": "VariableDeclaration", - "scope": 1620, - "src": "994:23:5", + "scope": 2503, + "src": "1161:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -373,10 +417,10 @@ "typeString": "address" }, "typeName": { - "id": 1615, + "id": 2497, "name": "address", "nodeType": "ElementaryTypeName", - "src": "994:7:5", + "src": "1161:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -387,12 +431,11 @@ }, { "constant": false, - "id": 1618, - "indexed": false, + "id": 2500, "name": "_quantity", "nodeType": "VariableDeclaration", - "scope": 1620, - "src": "1027:14:5", + "scope": 2503, + "src": "1184:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -400,10 +443,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1617, + "id": 2499, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1027:4:5", + "src": "1184:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -413,71 +456,89 @@ "visibility": "internal" } ], - "src": "984:63:5" + "src": "1151:53:18" + }, + "payable": false, + "returnParameters": { + "id": 2502, + "nodeType": "ParameterList", + "parameters": [], + "src": "1221:0:18" }, - "src": "965:83:5" + "scope": 2504, + "src": "1138:84:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" } ], - "scope": 1622, - "src": "64:986:5" + "scope": 2505, + "src": "809:415:18" } ], - "src": "0:1051:5" + "src": "597:628:18" }, "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", "exportedSymbols": { "ISetToken": [ - 1621 + 2504 ] }, - "id": 1622, + "id": 2505, "nodeType": "SourceUnit", "nodes": [ { - "id": 1594, + "id": 2472, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:5" + "src": "597:23:18" }, { "baseContracts": [], "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Set Token Interface", + "contractKind": "interface", + "documentation": "@title ISetToken\n@author Set Protocol\n * The ISetToken interface provides a light-weight, structured way to interact with the\nSetToken contract from another contract.", "fullyImplemented": false, - "id": 1621, + "id": 2504, "linearizedBaseContracts": [ - 1621 + 2504 ], "name": "ISetToken", "nodeType": "ContractDefinition", "nodes": [ { "body": null, - "documentation": "@dev Function to convert component into {Set} Tokens\n * Please note that the user's ERC20 component must be approved by\ntheir ERC20 contract to transfer their components to this contract.\n * @param _quantity uint The quantity of Sets desired to issue in Wei as a multiple of naturalUnit", - "id": 1601, + "documentation": null, + "id": 2477, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "issue", + "name": "naturalUnit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1597, + "id": 2473, + "nodeType": "ParameterList", + "parameters": [], + "src": "855:2:18" + }, + "payable": false, + "returnParameters": { + "id": 2476, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1596, - "name": "_quantity", + "id": 2475, + "name": "", "nodeType": "VariableDeclaration", - "scope": 1601, - "src": "446:14:5", + "scope": 2477, + "src": "892:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -485,10 +546,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1595, + "id": 2474, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "446:4:5", + "src": "892:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -498,149 +559,167 @@ "visibility": "internal" } ], - "src": "436:30:5" + "src": "891:6:18" + }, + "scope": 2504, + "src": "835:63:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2483, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "getComponents", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2478, + "nodeType": "ParameterList", + "parameters": [], + "src": "926:2:18" }, "payable": false, "returnParameters": { - "id": 1600, + "id": 2482, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1599, + "id": 2481, "name": "", "nodeType": "VariableDeclaration", - "scope": 1601, - "src": "499:4:5", + "scope": 2483, + "src": "962:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { - "id": 1598, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "499:4:5", + "baseType": { + "id": 2479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "962:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2480, + "length": null, + "nodeType": "ArrayTypeName", + "src": "962:9:18", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], - "src": "498:6:5" + "src": "961:11:18" }, - "scope": 1621, - "src": "422:83:5", + "scope": 2504, + "src": "904:69:18", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": null, - "documentation": "@dev Function to convert {Set} Tokens into underlying components\n * The ERC20 components do not need to be approved to call this function\n * @param _quantity uint The quantity of Sets desired to redeem in Wei as a multiple of naturalUnit", - "id": 1608, + "documentation": null, + "id": 2489, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "redeem", + "name": "getUnits", "nodeType": "FunctionDefinition", "parameters": { - "id": 1604, + "id": 2484, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1603, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 1608, - "src": "813:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1602, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "813:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "803:30:5" + "parameters": [], + "src": "996:2:18" }, "payable": false, "returnParameters": { - "id": 1607, + "id": 2488, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1606, + "id": 2487, "name": "", "nodeType": "VariableDeclaration", - "scope": 1608, - "src": "866:4:5", + "scope": 2489, + "src": "1032:6:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" }, "typeName": { - "id": 1605, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "866:4:5", + "baseType": { + "id": 2485, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1032:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2486, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1032:6:18", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" } }, "value": null, "visibility": "internal" } ], - "src": "865:6:5" + "src": "1031:8:18" }, - "scope": 1621, - "src": "788:84:5", + "scope": 2504, + "src": "979:61:18", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { - "anonymous": false, + "body": null, "documentation": null, - "id": 1614, - "name": "LogIssuance", - "nodeType": "EventDefinition", + "id": 2496, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", "parameters": { - "id": 1613, + "id": 2494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1610, - "indexed": true, - "name": "_sender", + "id": 2491, + "name": "_issuer", "nodeType": "VariableDeclaration", - "scope": 1614, - "src": "905:23:5", + "scope": 2496, + "src": "1069:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -648,10 +727,10 @@ "typeString": "address" }, "typeName": { - "id": 1609, + "id": 2490, "name": "address", "nodeType": "ElementaryTypeName", - "src": "905:7:5", + "src": "1069:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -662,12 +741,11 @@ }, { "constant": false, - "id": 1612, - "indexed": false, + "id": 2493, "name": "_quantity", "nodeType": "VariableDeclaration", - "scope": 1614, - "src": "938:14:5", + "scope": 2496, + "src": "1094:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -675,10 +753,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1611, + "id": 2492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "938:4:5", + "src": "1094:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -688,28 +766,42 @@ "visibility": "internal" } ], - "src": "895:63:5" + "src": "1059:55:18" + }, + "payable": false, + "returnParameters": { + "id": 2495, + "nodeType": "ParameterList", + "parameters": [], + "src": "1131:0:18" }, - "src": "878:81:5" + "scope": 2504, + "src": "1046:86:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" }, { - "anonymous": false, + "body": null, "documentation": null, - "id": 1620, - "name": "LogRedemption", - "nodeType": "EventDefinition", + "id": 2503, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", "parameters": { - "id": 1619, + "id": 2501, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1616, - "indexed": true, - "name": "_sender", + "id": 2498, + "name": "_from", "nodeType": "VariableDeclaration", - "scope": 1620, - "src": "994:23:5", + "scope": 2503, + "src": "1161:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -717,10 +809,10 @@ "typeString": "address" }, "typeName": { - "id": 1615, + "id": 2497, "name": "address", "nodeType": "ElementaryTypeName", - "src": "994:7:5", + "src": "1161:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -731,12 +823,11 @@ }, { "constant": false, - "id": 1618, - "indexed": false, + "id": 2500, "name": "_quantity", "nodeType": "VariableDeclaration", - "scope": 1620, - "src": "1027:14:5", + "scope": 2503, + "src": "1184:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -744,10 +835,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1617, + "id": 2499, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1027:4:5", + "src": "1184:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -757,22 +848,33 @@ "visibility": "internal" } ], - "src": "984:63:5" + "src": "1151:53:18" }, - "src": "965:83:5" + "payable": false, + "returnParameters": { + "id": 2502, + "nodeType": "ParameterList", + "parameters": [], + "src": "1221:0:18" + }, + "scope": 2504, + "src": "1138:84:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" } ], - "scope": 1622, - "src": "64:986:5" + "scope": 2505, + "src": "809:415:18" } ], - "src": "0:1051:5" + "src": "597:628:18" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.578Z" + "updatedAt": "2018-07-07T07:45:08.904Z" } \ No newline at end of file diff --git a/artifacts/json/ITransferProxy.json b/artifacts/json/ITransferProxy.json new file mode 100644 index 000000000..b63ab7d47 --- /dev/null +++ b/artifacts/json/ITransferProxy.json @@ -0,0 +1,336 @@ +{ + "contractName": "ITransferProxy", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "transferToVault", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n/**\n * @title ITransferProxy\n * @author Set Protocol\n *\n * The ITransferProxy interface provides a light-weight, structured way to interact with the\n * TransferProxy contract from another contract.\n */\ninterface ITransferProxy {\n\n /**\n * Transfers tokens from an address (that has set allowance on the proxy) to the vault.\n * Can only be called by authorized core contracts.\n *\n * @param _from The address to transfer tokens from\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to transfer\n */\n function transferToVault(\n address _from,\n address _tokenAddress,\n uint _quantity\n )\n external;\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ITransferProxy.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ITransferProxy.sol", + "exportedSymbols": { + "ITransferProxy": [ + 2516 + ] + }, + "id": 2517, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2506, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:19" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ITransferProxy\n@author Set Protocol\n * The ITransferProxy interface provides a light-weight, structured way to interact with the\nTransferProxy contract from another contract.", + "fullyImplemented": false, + "id": 2516, + "linearizedBaseContracts": [ + 2516 + ], + "name": "ITransferProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Transfers tokens from an address (that has set allowance on the proxy) to the vault.\nCan only be called by authorized core contracts.\n * @param _from The address to transfer tokens from\n@param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to transfer", + "id": 2515, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferToVault", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2508, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 2515, + "src": "1254:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1254:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2510, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2515, + "src": "1277:21:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2509, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1277:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2512, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2515, + "src": "1308:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2511, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1308:4:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1244:84:19" + }, + "payable": false, + "returnParameters": { + "id": 2514, + "nodeType": "ParameterList", + "parameters": [], + "src": "1345:0:19" + }, + "scope": 2516, + "src": "1220:126:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2517, + "src": "824:524:19" + } + ], + "src": "597:752:19" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ITransferProxy.sol", + "exportedSymbols": { + "ITransferProxy": [ + 2516 + ] + }, + "id": 2517, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2506, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:19" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ITransferProxy\n@author Set Protocol\n * The ITransferProxy interface provides a light-weight, structured way to interact with the\nTransferProxy contract from another contract.", + "fullyImplemented": false, + "id": 2516, + "linearizedBaseContracts": [ + 2516 + ], + "name": "ITransferProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Transfers tokens from an address (that has set allowance on the proxy) to the vault.\nCan only be called by authorized core contracts.\n * @param _from The address to transfer tokens from\n@param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to transfer", + "id": 2515, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferToVault", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2508, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 2515, + "src": "1254:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1254:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2510, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2515, + "src": "1277:21:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2509, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1277:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2512, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2515, + "src": "1308:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2511, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1308:4:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1244:84:19" + }, + "payable": false, + "returnParameters": { + "id": 2514, + "nodeType": "ParameterList", + "parameters": [], + "src": "1345:0:19" + }, + "scope": 2516, + "src": "1220:126:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2517, + "src": "824:524:19" + } + ], + "src": "597:752:19" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.904Z" +} \ No newline at end of file diff --git a/artifacts/json/IVault.json b/artifacts/json/IVault.json new file mode 100644 index 000000000..50eb52a43 --- /dev/null +++ b/artifacts/json/IVault.json @@ -0,0 +1,1053 @@ +{ + "contractName": "IVault", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "withdrawTo", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "incrementTokenOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "decrementTokenOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + } + ], + "name": "getOwnerBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n/**\n * @title IVault\n * @author Set Protocol\n *\n * The IVault interface provides a light-weight, structured way to interact with the Vault\n * contract from another contract.\n */\ninterface IVault {\n\n /*\n * Withdraws user's unassociated tokens to user account. Can only be\n * called by authorized core contracts.\n *\n * @param _tokenAddress The address of the ERC20 token\n * @param _to The address to transfer token to\n * @param _quantity The number of tokens to transfer\n */\n function withdrawTo(\n address _tokenAddress,\n address _to,\n uint _quantity\n )\n external;\n\n /*\n * Increment quantity owned of a token for a given address. Can\n * only be called by authorized core contracts.\n *\n * @param _owner The address of the token owner\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to attribute to owner\n */\n function incrementTokenOwner(\n address _owner,\n address _tokenAddress,\n uint _quantity\n )\n external;\n\n /*\n * Decrement quantity owned of a token for a given address. Can only\n * be called by authorized core contracts.\n *\n * @param _owner The address of the token owner\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to deattribute to owner\n */\n function decrementTokenOwner(\n address _owner,\n address _tokenAddress,\n uint _quantity\n )\n external;\n\n /*\n * Get balance of particular contract for owner.\n *\n * @param _owner The address of the token owner\n * @param _tokenAddress The address of the ERC20 token\n */\n function getOwnerBalance(\n address _owner,\n address _tokenAddress\n )\n external\n returns (uint256);\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IVault.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IVault.sol", + "exportedSymbols": { + "IVault": [ + 2555 + ] + }, + "id": 2556, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2518, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:20" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title IVault\n@author Set Protocol\n * The IVault interface provides a light-weight, structured way to interact with the Vault\ncontract from another contract.", + "fullyImplemented": false, + "id": 2555, + "linearizedBaseContracts": [ + 2555 + ], + "name": "IVault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2527, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdrawTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2520, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2527, + "src": "1182:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2519, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1182:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2522, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2527, + "src": "1213:11:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2521, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1213:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2524, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2527, + "src": "1234:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1234:4:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1172:82:20" + }, + "payable": false, + "returnParameters": { + "id": 2526, + "nodeType": "ParameterList", + "parameters": [], + "src": "1271:0:20" + }, + "scope": 2555, + "src": "1153:119:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2536, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "incrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2529, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1659:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1659:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2531, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1683:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1683:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2533, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1714:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2532, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1714:4:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1649:85:20" + }, + "payable": false, + "returnParameters": { + "id": 2535, + "nodeType": "ParameterList", + "parameters": [], + "src": "1751:0:20" + }, + "scope": 2555, + "src": "1621:131:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2545, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "decrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2538, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "2141:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2141:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2540, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "2165:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2165:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2542, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "2196:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2541, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2196:4:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2131:85:20" + }, + "payable": false, + "returnParameters": { + "id": 2544, + "nodeType": "ParameterList", + "parameters": [], + "src": "2233:0:20" + }, + "scope": 2555, + "src": "2103:131:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2554, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "getOwnerBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2547, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "2475:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2475:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2549, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "2499:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2548, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2499:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2465:61:20" + }, + "payable": false, + "returnParameters": { + "id": 2553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2552, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "2561:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2560:9:20" + }, + "scope": 2555, + "src": "2441:129:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2556, + "src": "800:1772:20" + } + ], + "src": "597:1976:20" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IVault.sol", + "exportedSymbols": { + "IVault": [ + 2555 + ] + }, + "id": 2556, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2518, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:20" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title IVault\n@author Set Protocol\n * The IVault interface provides a light-weight, structured way to interact with the Vault\ncontract from another contract.", + "fullyImplemented": false, + "id": 2555, + "linearizedBaseContracts": [ + 2555 + ], + "name": "IVault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2527, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdrawTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2520, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2527, + "src": "1182:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2519, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1182:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2522, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2527, + "src": "1213:11:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2521, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1213:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2524, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2527, + "src": "1234:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1234:4:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1172:82:20" + }, + "payable": false, + "returnParameters": { + "id": 2526, + "nodeType": "ParameterList", + "parameters": [], + "src": "1271:0:20" + }, + "scope": 2555, + "src": "1153:119:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2536, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "incrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2529, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1659:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1659:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2531, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1683:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1683:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2533, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1714:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2532, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1714:4:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1649:85:20" + }, + "payable": false, + "returnParameters": { + "id": 2535, + "nodeType": "ParameterList", + "parameters": [], + "src": "1751:0:20" + }, + "scope": 2555, + "src": "1621:131:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2545, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "decrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2538, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "2141:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2141:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2540, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "2165:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2165:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2542, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "2196:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2541, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2196:4:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2131:85:20" + }, + "payable": false, + "returnParameters": { + "id": 2544, + "nodeType": "ParameterList", + "parameters": [], + "src": "2233:0:20" + }, + "scope": 2555, + "src": "2103:131:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2554, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "getOwnerBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2547, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "2475:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2475:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2549, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "2499:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2548, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2499:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2465:61:20" + }, + "payable": false, + "returnParameters": { + "id": 2553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2552, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "2561:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2560:9:20" + }, + "scope": 2555, + "src": "2441:129:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2556, + "src": "800:1772:20" + } + ], + "src": "597:1976:20" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.904Z" +} \ No newline at end of file diff --git a/artifacts/json/LibBytes.json b/artifacts/json/LibBytes.json new file mode 100644 index 000000000..f122463a8 --- /dev/null +++ b/artifacts/json/LibBytes.json @@ -0,0 +1,3779 @@ +{ + "contractName": "LibBytes", + "abi": [], + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058206cb9a05f48382d6e69ab5a59af18a419ff3ba1f4cf32b4f00a74ad1facb9b30e0029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058206cb9a05f48382d6e69ab5a59af18a419ff3ba1f4cf32b4f00a74ad1facb9b30e0029", + "sourceMap": "601:6649:26:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "601:6649:26:-;;;;;;;;", + "source": "/*\n Copyright 2018 ZeroEx Intl.\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity ^0.4.24;\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n \n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(bytes memory b, uint256 from, uint256 to)\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n // NOTE: Set Protocol changed from `to < b.length` so that the last byte can be sliced off\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length);\n return result;\n } \n}", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "exportedSymbols": { + "LibBytes": [ + 3107 + ] + }, + "id": 3108, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2983, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "575:24:26" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 3107, + "linearizedBaseContracts": [ + 3107 + ], + "name": "LibBytes", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2986, + "libraryName": { + "contractScope": null, + "id": 2984, + "name": "LibBytes", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3107, + "src": "631:8:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LibBytes_$3107", + "typeString": "library LibBytes" + } + }, + "nodeType": "UsingForDirective", + "src": "625:25:26", + "typeName": { + "id": 2985, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "644:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + { + "body": { + "id": 2996, + "nodeType": "Block", + "src": "968:110:26", + "statements": [ + { + "externalReferences": [ + { + "memoryAddress": { + "declaration": 2991, + "isOffset": false, + "isSlot": false, + "src": "1001:13:26", + "valueSize": 1 + } + }, + { + "input": { + "declaration": 2988, + "isOffset": false, + "isSlot": false, + "src": "1022:5:26", + "valueSize": 1 + } + } + ], + "id": 2993, + "nodeType": "InlineAssembly", + "operations": "{\n memoryAddress := add(input, 32)\n}", + "src": "978:79:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 2994, + "name": "memoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "1058:13:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2992, + "id": 2995, + "nodeType": "Return", + "src": "1051:20:26" + } + ] + }, + "documentation": "@dev Gets the memory address for the contents of a byte array.\n @param input Byte array to lookup.\n @return memoryAddress Memory address of the contents of the byte array.", + "id": 2997, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "contentAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2988, + "name": "input", + "nodeType": "VariableDeclaration", + "scope": 2997, + "src": "874:18:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2987, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "874:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "873:20:26" + }, + "payable": false, + "returnParameters": { + "id": 2992, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2991, + "name": "memoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2997, + "src": "941:21:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2990, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "941:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "940:23:26" + }, + "scope": 3107, + "src": "850:228:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3023, + "nodeType": "Block", + "src": "1456:349:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3007, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2999, + "src": "1487:1:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1487:8:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3009, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "1499:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 3010, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1507:2:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "1499:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1487:22:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544", + "id": 3013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1523:40:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_41046b31734c52276370384fb83a6ed9556edf77c382e1949fa233dc03b3aa40", + "typeString": "literal_string \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"" + }, + "value": "GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_41046b31734c52276370384fb83a6ed9556edf77c382e1949fa233dc03b3aa40", + "typeString": "literal_string \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"" + } + ], + "id": 3006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1466:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1466:107:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3015, + "nodeType": "ExpressionStatement", + "src": "1466:107:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3016, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "1645:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3332", + "id": 3017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1654:2:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "1645:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3019, + "nodeType": "ExpressionStatement", + "src": "1645:11:26" + }, + { + "externalReferences": [ + { + "result": { + "declaration": 3004, + "isOffset": false, + "isSlot": false, + "src": "1736:6:26", + "valueSize": 1 + } + }, + { + "b": { + "declaration": 2999, + "isOffset": false, + "isSlot": false, + "src": "1756:1:26", + "valueSize": 1 + } + }, + { + "index": { + "declaration": 3001, + "isOffset": false, + "isSlot": false, + "src": "1759:5:26", + "valueSize": 1 + } + } + ], + "id": 3020, + "nodeType": "InlineAssembly", + "operations": "{\n result := mload(add(b, index))\n}", + "src": "1713:78:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3021, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3004, + "src": "1792:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 3005, + "id": 3022, + "nodeType": "Return", + "src": "1785:13:26" + } + ] + }, + "documentation": "@dev Reads a bytes32 value from a position in a byte array.\n @param b Byte array containing a bytes32 value.\n @param index Index in byte array of bytes32 value.\n @return bytes32 value from byte array.", + "id": 3024, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "readBytes32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3002, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2999, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3024, + "src": "1345:14:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2998, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1345:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3001, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 3024, + "src": "1369:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1369:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1335:53:26" + }, + "payable": false, + "returnParameters": { + "id": 3005, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3004, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 3024, + "src": "1436:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3003, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1436:7:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1435:16:26" + }, + "scope": 3107, + "src": "1315:490:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3054, + "nodeType": "Block", + "src": "2171:4080:26", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3033, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3030, + "src": "2185:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 3034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2194:2:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "2185:11:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3052, + "nodeType": "Block", + "src": "2657:3588:26", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3038, + "name": "source", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3028, + "src": "2735:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3039, + "name": "dest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3026, + "src": "2745:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2735:14:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3043, + "nodeType": "IfStatement", + "src": "2731:59:26", + "trueBody": { + "id": 3042, + "nodeType": "Block", + "src": "2751:39:26", + "statements": [ + { + "expression": null, + "functionReturnParameters": 3032, + "id": 3041, + "nodeType": "Return", + "src": "2769:7:26" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3044, + "name": "source", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3028, + "src": "3470:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 3045, + "name": "dest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3026, + "src": "3479:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3470:13:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3050, + "nodeType": "Block", + "src": "4756:1479:26", + "statements": [ + { + "externalReferences": [ + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "4973:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "4959:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "5021:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "5029:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "5389:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "5073:4:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "5079:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "5914:4:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "6191:4:26", + "valueSize": 1 + } + } + ], + "id": 3049, + "nodeType": "InlineAssembly", + "operations": "{\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n let first := mload(source)\n for {\n }\n slt(dest, dEnd)\n {\n }\n {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n mstore(dest, first)\n}", + "src": "4774:1461:26" + } + ] + }, + "id": 3051, + "nodeType": "IfStatement", + "src": "3466:2769:26", + "trueBody": { + "id": 3048, + "nodeType": "Block", + "src": "3485:1265:26", + "statements": [ + { + "externalReferences": [ + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3783:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3797:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "3845:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3853:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4423:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "3897:4:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3903:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "4473:4:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4485:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4518:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "4568:4:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4532:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "4580:4:26", + "valueSize": 1 + } + } + ], + "id": 3047, + "nodeType": "InlineAssembly", + "operations": "{\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n let last := mload(sEnd)\n for {\n }\n lt(source, sEnd)\n {\n }\n {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n mstore(dEnd, last)\n}", + "src": "3503:1247:26" + } + ] + } + } + ] + }, + "id": 3053, + "nodeType": "IfStatement", + "src": "2181:4064:26", + "trueBody": { + "id": 3037, + "nodeType": "Block", + "src": "2198:453:26", + "statements": [ + { + "externalReferences": [ + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "2473:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "2576:4:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "2521:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "2612:4:26", + "valueSize": 1 + } + } + ], + "id": 3036, + "nodeType": "InlineAssembly", + "operations": "{\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n}", + "src": "2413:238:26" + } + ] + } + } + ] + }, + "documentation": "@dev Copies `length` bytes from memory location `source` to `dest`.\n @param dest memory address to copy bytes to.\n @param source memory address to copy bytes from.\n @param length number of bytes to copy.", + "id": 3055, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "memCopy", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3026, + "name": "dest", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2070:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2070:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3028, + "name": "source", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2092:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3027, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2092:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3030, + "name": "length", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2116:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3029, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2116:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2060:76:26" + }, + "payable": false, + "returnParameters": { + "id": 3032, + "nodeType": "ParameterList", + "parameters": [], + "src": "2171:0:26" + }, + "scope": 3107, + "src": "2044:4207:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3105, + "nodeType": "Block", + "src": "6692:552:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3067, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3059, + "src": "6723:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3068, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3061, + "src": "6731:2:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6723:10:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "46524f4d5f4c4553535f5448414e5f544f5f5245515549524544", + "id": 3070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6747:28:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1b95cec571d66445cedbd96155c82949976c614b261f1c5fe27223590583fd4f", + "typeString": "literal_string \"FROM_LESS_THAN_TO_REQUIRED\"" + }, + "value": "FROM_LESS_THAN_TO_REQUIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1b95cec571d66445cedbd96155c82949976c614b261f1c5fe27223590583fd4f", + "typeString": "literal_string \"FROM_LESS_THAN_TO_REQUIRED\"" + } + ], + "id": 3066, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "6702:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6702:83:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3072, + "nodeType": "ExpressionStatement", + "src": "6702:83:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3074, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3061, + "src": "6919:2:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3057, + "src": "6925:1:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6925:8:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6919:14:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "544f5f4c4553535f5448414e5f4c454e4754485f5245515549524544", + "id": 3078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6947:30:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_22dab502afcaac39972ef428907ba5ff6a51956bfa1c4002b6aa8a752256c29a", + "typeString": "literal_string \"TO_LESS_THAN_LENGTH_REQUIRED\"" + }, + "value": "TO_LESS_THAN_LENGTH_REQUIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_22dab502afcaac39972ef428907ba5ff6a51956bfa1c4002b6aa8a752256c29a", + "typeString": "literal_string \"TO_LESS_THAN_LENGTH_REQUIRED\"" + } + ], + "id": 3073, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "6795:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6795:192:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3080, + "nodeType": "ExpressionStatement", + "src": "6795:192:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3081, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7064:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3084, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3061, + "src": "7083:2:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3085, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3059, + "src": "7088:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7083:9:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "7073:9:26", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 3082, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7077:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7073:20:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "src": "7064:29:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3089, + "nodeType": "ExpressionStatement", + "src": "7064:29:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3091, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7124:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "7124:21:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 3093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7124:23:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3094, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3057, + "src": "7161:1:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "7161:16:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 3096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7161:18:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 3097, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3059, + "src": "7182:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7161:25:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3099, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7200:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7200:13:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3090, + "name": "memCopy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3055, + "src": "7103:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256) pure" + } + }, + "id": 3101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7103:111:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3102, + "nodeType": "ExpressionStatement", + "src": "7103:111:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3103, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7231:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3065, + "id": 3104, + "nodeType": "Return", + "src": "7224:13:26" + } + ] + }, + "documentation": "@dev Returns a slices from a byte array.\n @param b The byte array to take a slice from.\n @param from The starting index for the slice (inclusive).\n @param to The final index for the slice (exclusive).\n @return result The slice containing bytes at indices [from, to)", + "id": 3106, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "slice", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3057, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6578:14:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3056, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6578:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3059, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6594:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6594:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3061, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6608:10:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3060, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6608:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6577:42:26" + }, + "payable": false, + "returnParameters": { + "id": 3065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3064, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6667:19:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3063, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6667:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6666:21:26" + }, + "scope": 3107, + "src": "6563:681:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 3108, + "src": "601:6649:26" + } + ], + "src": "575:6675:26" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "exportedSymbols": { + "LibBytes": [ + 3107 + ] + }, + "id": 3108, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2983, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "575:24:26" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 3107, + "linearizedBaseContracts": [ + 3107 + ], + "name": "LibBytes", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2986, + "libraryName": { + "contractScope": null, + "id": 2984, + "name": "LibBytes", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3107, + "src": "631:8:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LibBytes_$3107", + "typeString": "library LibBytes" + } + }, + "nodeType": "UsingForDirective", + "src": "625:25:26", + "typeName": { + "id": 2985, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "644:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + { + "body": { + "id": 2996, + "nodeType": "Block", + "src": "968:110:26", + "statements": [ + { + "externalReferences": [ + { + "memoryAddress": { + "declaration": 2991, + "isOffset": false, + "isSlot": false, + "src": "1001:13:26", + "valueSize": 1 + } + }, + { + "input": { + "declaration": 2988, + "isOffset": false, + "isSlot": false, + "src": "1022:5:26", + "valueSize": 1 + } + } + ], + "id": 2993, + "nodeType": "InlineAssembly", + "operations": "{\n memoryAddress := add(input, 32)\n}", + "src": "978:79:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 2994, + "name": "memoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "1058:13:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2992, + "id": 2995, + "nodeType": "Return", + "src": "1051:20:26" + } + ] + }, + "documentation": "@dev Gets the memory address for the contents of a byte array.\n @param input Byte array to lookup.\n @return memoryAddress Memory address of the contents of the byte array.", + "id": 2997, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "contentAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2988, + "name": "input", + "nodeType": "VariableDeclaration", + "scope": 2997, + "src": "874:18:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2987, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "874:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "873:20:26" + }, + "payable": false, + "returnParameters": { + "id": 2992, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2991, + "name": "memoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2997, + "src": "941:21:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2990, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "941:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "940:23:26" + }, + "scope": 3107, + "src": "850:228:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3023, + "nodeType": "Block", + "src": "1456:349:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3007, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2999, + "src": "1487:1:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1487:8:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3009, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "1499:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 3010, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1507:2:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "1499:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1487:22:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544", + "id": 3013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1523:40:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_41046b31734c52276370384fb83a6ed9556edf77c382e1949fa233dc03b3aa40", + "typeString": "literal_string \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"" + }, + "value": "GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_41046b31734c52276370384fb83a6ed9556edf77c382e1949fa233dc03b3aa40", + "typeString": "literal_string \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"" + } + ], + "id": 3006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1466:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1466:107:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3015, + "nodeType": "ExpressionStatement", + "src": "1466:107:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3016, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "1645:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3332", + "id": 3017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1654:2:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "1645:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3019, + "nodeType": "ExpressionStatement", + "src": "1645:11:26" + }, + { + "externalReferences": [ + { + "result": { + "declaration": 3004, + "isOffset": false, + "isSlot": false, + "src": "1736:6:26", + "valueSize": 1 + } + }, + { + "b": { + "declaration": 2999, + "isOffset": false, + "isSlot": false, + "src": "1756:1:26", + "valueSize": 1 + } + }, + { + "index": { + "declaration": 3001, + "isOffset": false, + "isSlot": false, + "src": "1759:5:26", + "valueSize": 1 + } + } + ], + "id": 3020, + "nodeType": "InlineAssembly", + "operations": "{\n result := mload(add(b, index))\n}", + "src": "1713:78:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3021, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3004, + "src": "1792:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 3005, + "id": 3022, + "nodeType": "Return", + "src": "1785:13:26" + } + ] + }, + "documentation": "@dev Reads a bytes32 value from a position in a byte array.\n @param b Byte array containing a bytes32 value.\n @param index Index in byte array of bytes32 value.\n @return bytes32 value from byte array.", + "id": 3024, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "readBytes32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3002, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2999, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3024, + "src": "1345:14:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2998, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1345:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3001, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 3024, + "src": "1369:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1369:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1335:53:26" + }, + "payable": false, + "returnParameters": { + "id": 3005, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3004, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 3024, + "src": "1436:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3003, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1436:7:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1435:16:26" + }, + "scope": 3107, + "src": "1315:490:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3054, + "nodeType": "Block", + "src": "2171:4080:26", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3033, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3030, + "src": "2185:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 3034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2194:2:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "2185:11:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3052, + "nodeType": "Block", + "src": "2657:3588:26", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3038, + "name": "source", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3028, + "src": "2735:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3039, + "name": "dest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3026, + "src": "2745:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2735:14:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3043, + "nodeType": "IfStatement", + "src": "2731:59:26", + "trueBody": { + "id": 3042, + "nodeType": "Block", + "src": "2751:39:26", + "statements": [ + { + "expression": null, + "functionReturnParameters": 3032, + "id": 3041, + "nodeType": "Return", + "src": "2769:7:26" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3044, + "name": "source", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3028, + "src": "3470:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 3045, + "name": "dest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3026, + "src": "3479:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3470:13:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3050, + "nodeType": "Block", + "src": "4756:1479:26", + "statements": [ + { + "externalReferences": [ + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "4973:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "4959:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "5021:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "5029:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "5389:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "5073:4:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "5079:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "5914:4:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "6191:4:26", + "valueSize": 1 + } + } + ], + "id": 3049, + "nodeType": "InlineAssembly", + "operations": "{\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n let first := mload(source)\n for {\n }\n slt(dest, dEnd)\n {\n }\n {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n mstore(dest, first)\n}", + "src": "4774:1461:26" + } + ] + }, + "id": 3051, + "nodeType": "IfStatement", + "src": "3466:2769:26", + "trueBody": { + "id": 3048, + "nodeType": "Block", + "src": "3485:1265:26", + "statements": [ + { + "externalReferences": [ + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3783:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3797:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "3845:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3853:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4423:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "3897:4:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3903:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "4473:4:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4485:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4518:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "4568:4:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4532:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "4580:4:26", + "valueSize": 1 + } + } + ], + "id": 3047, + "nodeType": "InlineAssembly", + "operations": "{\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n let last := mload(sEnd)\n for {\n }\n lt(source, sEnd)\n {\n }\n {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n mstore(dEnd, last)\n}", + "src": "3503:1247:26" + } + ] + } + } + ] + }, + "id": 3053, + "nodeType": "IfStatement", + "src": "2181:4064:26", + "trueBody": { + "id": 3037, + "nodeType": "Block", + "src": "2198:453:26", + "statements": [ + { + "externalReferences": [ + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "2473:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "2576:4:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "2521:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "2612:4:26", + "valueSize": 1 + } + } + ], + "id": 3036, + "nodeType": "InlineAssembly", + "operations": "{\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n}", + "src": "2413:238:26" + } + ] + } + } + ] + }, + "documentation": "@dev Copies `length` bytes from memory location `source` to `dest`.\n @param dest memory address to copy bytes to.\n @param source memory address to copy bytes from.\n @param length number of bytes to copy.", + "id": 3055, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "memCopy", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3026, + "name": "dest", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2070:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2070:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3028, + "name": "source", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2092:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3027, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2092:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3030, + "name": "length", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2116:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3029, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2116:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2060:76:26" + }, + "payable": false, + "returnParameters": { + "id": 3032, + "nodeType": "ParameterList", + "parameters": [], + "src": "2171:0:26" + }, + "scope": 3107, + "src": "2044:4207:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3105, + "nodeType": "Block", + "src": "6692:552:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3067, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3059, + "src": "6723:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3068, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3061, + "src": "6731:2:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6723:10:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "46524f4d5f4c4553535f5448414e5f544f5f5245515549524544", + "id": 3070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6747:28:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1b95cec571d66445cedbd96155c82949976c614b261f1c5fe27223590583fd4f", + "typeString": "literal_string \"FROM_LESS_THAN_TO_REQUIRED\"" + }, + "value": "FROM_LESS_THAN_TO_REQUIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1b95cec571d66445cedbd96155c82949976c614b261f1c5fe27223590583fd4f", + "typeString": "literal_string \"FROM_LESS_THAN_TO_REQUIRED\"" + } + ], + "id": 3066, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "6702:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6702:83:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3072, + "nodeType": "ExpressionStatement", + "src": "6702:83:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3074, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3061, + "src": "6919:2:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3057, + "src": "6925:1:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6925:8:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6919:14:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "544f5f4c4553535f5448414e5f4c454e4754485f5245515549524544", + "id": 3078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6947:30:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_22dab502afcaac39972ef428907ba5ff6a51956bfa1c4002b6aa8a752256c29a", + "typeString": "literal_string \"TO_LESS_THAN_LENGTH_REQUIRED\"" + }, + "value": "TO_LESS_THAN_LENGTH_REQUIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_22dab502afcaac39972ef428907ba5ff6a51956bfa1c4002b6aa8a752256c29a", + "typeString": "literal_string \"TO_LESS_THAN_LENGTH_REQUIRED\"" + } + ], + "id": 3073, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "6795:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6795:192:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3080, + "nodeType": "ExpressionStatement", + "src": "6795:192:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3081, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7064:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3084, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3061, + "src": "7083:2:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3085, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3059, + "src": "7088:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7083:9:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "7073:9:26", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 3082, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7077:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7073:20:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "src": "7064:29:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3089, + "nodeType": "ExpressionStatement", + "src": "7064:29:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3091, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7124:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "7124:21:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 3093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7124:23:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3094, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3057, + "src": "7161:1:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "7161:16:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 3096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7161:18:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 3097, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3059, + "src": "7182:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7161:25:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3099, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7200:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7200:13:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3090, + "name": "memCopy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3055, + "src": "7103:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256) pure" + } + }, + "id": 3101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7103:111:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3102, + "nodeType": "ExpressionStatement", + "src": "7103:111:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3103, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7231:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3065, + "id": 3104, + "nodeType": "Return", + "src": "7224:13:26" + } + ] + }, + "documentation": "@dev Returns a slices from a byte array.\n @param b The byte array to take a slice from.\n @param from The starting index for the slice (inclusive).\n @param to The final index for the slice (exclusive).\n @return result The slice containing bytes at indices [from, to)", + "id": 3106, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "slice", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3057, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6578:14:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3056, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6578:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3059, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6594:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6594:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3061, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6608:10:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3060, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6608:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6577:42:26" + }, + "payable": false, + "returnParameters": { + "id": 3065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3064, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6667:19:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3063, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6667:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6666:21:26" + }, + "scope": 3107, + "src": "6563:681:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 3108, + "src": "601:6649:26" + } + ], + "src": "575:6675:26" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.906Z" +} \ No newline at end of file diff --git a/artifacts/json/Migrations.json b/artifacts/json/Migrations.json index 4463656a6..88c903ec9 100644 --- a/artifacts/json/Migrations.json +++ b/artifacts/json/Migrations.json @@ -64,14 +64,14 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f010146100675780638da5cb5b146100aa578063fbdbad3c14610101578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561010d57600080fd5b50610116610266565b6040518082815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820687dff76cd7061b0f19ded19f5891be2d90b14b8016a55e64a74d4fed5e991e80029", - "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f010146100675780638da5cb5b146100aa578063fbdbad3c14610101578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561010d57600080fd5b50610116610266565b6040518082815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820687dff76cd7061b0f19ded19f5891be2d90b14b8016a55e64a74d4fed5e991e80029", + "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f010146100675780638da5cb5b146100aa578063fbdbad3c14610101578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561010d57600080fd5b50610116610266565b6040518082815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a7230582022dc6efc567e7501037ec87ecfa2d8a5380b54d06f2926041190c80a8cd7810b0029", + "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f010146100675780638da5cb5b146100aa578063fbdbad3c14610101578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561010d57600080fd5b50610116610266565b6040518082815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a7230582022dc6efc567e7501037ec87ecfa2d8a5380b54d06f2926041190c80a8cd7810b0029", "sourceMap": "26:472:0:-;;;176:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;176:50:0;211:10;203:5;;:18;;;;;;;;;;;;;;;;;;26:472;;;;;;", "deployedSourceMap": "26:472:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;335:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;335:161:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;50:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;74:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;74:34:0;;;;;;;;;;;;;;;;;;;;;;;230:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;230:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;335:161;396:19;159:5;;;;;;;;;;;145:19;;:10;:19;;;141:26;;;429:10;396:44;;446:8;:21;;;468:22;;446:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;446:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;446:45:0;;;;141:26;335:161;;:::o;50:20::-;;;;;;;;;;;;;:::o;74:34::-;;;;:::o;230:101::-;159:5;;;;;;;;;;;145:19;;:10;:19;;;141:26;;;317:9;292:22;:34;;;;141:26;230:101;:::o", - "source": "pragma solidity 0.4.23;\n\n\ncontract Migrations {\n address public owner;\n uint public lastCompletedMigration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n lastCompletedMigration = completed;\n }\n\n function upgrade(address newAddress) public restricted {\n Migrations upgraded = Migrations(newAddress);\n upgraded.setCompleted(lastCompletedMigration);\n }\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/Migrations.sol", + "source": "pragma solidity 0.4.24;\n\n\ncontract Migrations {\n address public owner;\n uint public lastCompletedMigration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n lastCompletedMigration = completed;\n }\n\n function upgrade(address newAddress) public restricted {\n Migrations upgraded = Migrations(newAddress);\n upgraded.setCompleted(lastCompletedMigration);\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/Migrations.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/Migrations.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ 56 @@ -85,7 +85,7 @@ "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", "src": "0:23:0" @@ -181,7 +181,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, + "referencedDeclaration": 5397, "src": "145:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -285,7 +285,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, + "referencedDeclaration": 5397, "src": "211:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -720,7 +720,7 @@ "src": "0:499:0" }, "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/Migrations.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ 56 @@ -734,7 +734,7 @@ "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", "src": "0:23:0" @@ -830,7 +830,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, + "referencedDeclaration": 5397, "src": "145:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -934,7 +934,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, + "referencedDeclaration": 5397, "src": "211:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -1370,9 +1370,9 @@ }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.576Z" + "updatedAt": "2018-07-07T07:45:08.888Z" } \ No newline at end of file diff --git a/artifacts/json/MintableToken.json b/artifacts/json/MintableToken.json index de8c4e3de..aa3b85ff7 100644 --- a/artifacts/json/MintableToken.json +++ b/artifacts/json/MintableToken.json @@ -361,24 +361,24 @@ "type": "function" } ], - "bytecode": "0x60806040526000600360146101000a81548160ff02191690831515021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061173d8061006f6000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b146100d5578063095ea7b31461010457806318160ddd1461016957806323b872dd1461019457806340c10f1914610219578063661884631461027e57806370a08231146102e3578063715018a61461033a5780637d64bcb4146103515780638da5cb5b14610380578063a9059cbb146103d7578063d73dd6231461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100e157600080fd5b506100ea61055b565b604051808215151515815260200191505060405180910390f35b34801561011057600080fd5b5061014f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061056e565b604051808215151515815260200191505060405180910390f35b34801561017557600080fd5b5061017e610660565b6040518082815260200191505060405180910390f35b3480156101a057600080fd5b506101ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061066a565b604051808215151515815260200191505060405180910390f35b34801561022557600080fd5b50610264600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a24565b604051808215151515815260200191505060405180910390f35b34801561028a57600080fd5b506102c9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c0a565b604051808215151515815260200191505060405180910390f35b3480156102ef57600080fd5b50610324600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e9b565b6040518082815260200191505060405180910390f35b34801561034657600080fd5b5061034f610ee3565b005b34801561035d57600080fd5b50610366610fe8565b604051808215151515815260200191505060405180910390f35b34801561038c57600080fd5b506103956110b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e357600080fd5b50610422600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110d6565b604051808215151515815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112f5565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f1565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611578565b005b600360149054906101000a900460ff1681565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106a757600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156106f457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561077f57600080fd5b6107d0826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610863826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a8257600080fd5b600360149054906101000a900460ff16151515610a9e57600080fd5b610ab3826001546115f990919063ffffffff16565b600181905550610b0a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d1b576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610daf565b610d2e83826115e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3f57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561104657600080fd5b600360149054906101000a900460ff1615151561106257600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561111357600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561116057600080fd5b6111b1826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611244826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061138682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d457600080fd5b6115dd81611615565b50565b60008282111515156115ee57fe5b818303905092915050565b6000818301905082811015151561160c57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561165157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820d348d553bd1d3ba152f302ce6f4347203a861bde06ffa733e3173f6d9f76ea200029", - "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b146100d5578063095ea7b31461010457806318160ddd1461016957806323b872dd1461019457806340c10f1914610219578063661884631461027e57806370a08231146102e3578063715018a61461033a5780637d64bcb4146103515780638da5cb5b14610380578063a9059cbb146103d7578063d73dd6231461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100e157600080fd5b506100ea61055b565b604051808215151515815260200191505060405180910390f35b34801561011057600080fd5b5061014f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061056e565b604051808215151515815260200191505060405180910390f35b34801561017557600080fd5b5061017e610660565b6040518082815260200191505060405180910390f35b3480156101a057600080fd5b506101ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061066a565b604051808215151515815260200191505060405180910390f35b34801561022557600080fd5b50610264600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a24565b604051808215151515815260200191505060405180910390f35b34801561028a57600080fd5b506102c9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c0a565b604051808215151515815260200191505060405180910390f35b3480156102ef57600080fd5b50610324600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e9b565b6040518082815260200191505060405180910390f35b34801561034657600080fd5b5061034f610ee3565b005b34801561035d57600080fd5b50610366610fe8565b604051808215151515815260200191505060405180910390f35b34801561038c57600080fd5b506103956110b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e357600080fd5b50610422600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110d6565b604051808215151515815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112f5565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f1565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611578565b005b600360149054906101000a900460ff1681565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106a757600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156106f457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561077f57600080fd5b6107d0826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610863826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a8257600080fd5b600360149054906101000a900460ff16151515610a9e57600080fd5b610ab3826001546115f990919063ffffffff16565b600181905550610b0a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d1b576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610daf565b610d2e83826115e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3f57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561104657600080fd5b600360149054906101000a900460ff1615151561106257600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561111357600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561116057600080fd5b6111b1826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611244826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061138682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d457600080fd5b6115dd81611615565b50565b60008282111515156115ee57fe5b818303905092915050565b6000818301905082811015151561160c57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561165157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820d348d553bd1d3ba152f302ce6f4347203a861bde06ffa733e3173f6d9f76ea200029", - "sourceMap": "390:1114:16:-;;;548:5;518:35;;;;;;;;;;;;;;;;;;;;575:10:11;567:5;;:18;;;;;;;;;;;;;;;;;;390:1114:16;;;;;;", - "deployedSourceMap": "390:1114:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;518:35:16;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:12;;;;;;;;;;;;;;;;;;;;;;;736:470:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;936:312:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;936:312:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:425:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:11;;;;;;1362:140:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1362:140:16;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:11;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35:16;;;;;;;;;;;;;:::o;1829:188:17:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;371:83:12:-;415:7;437:12;;430:19;;371:83;:::o;736:470:17:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;936:312:16:-;1050:4;682:5;;;;;;;;;;;668:19;;:10;:19;;;660:28;;;;;;;;593:15;;;;;;;;;;;592:16;584:25;;;;;;;;1079;1096:7;1079:12;;:16;;:25;;;;:::i;:::-;1064:12;:40;;;;1126:26;1144:7;1126:8;:13;1135:3;1126:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;1110:8;:13;1119:3;1110:13;;;;;;;;;;;;;;;:42;;;;1168:3;1163:18;;;1173:7;1163:18;;;;;;;;;;;;;;;;;;1213:3;1192:34;;1209:1;1192:34;;;1218:7;1192:34;;;;;;;;;;;;;;;;;;1239:4;1232:11;;936:312;;;;:::o;3701:425:17:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:12:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;827:111:11:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;1362:140:16:-;1421:4;719:5:11;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;593:15:16;;;;;;;;;;;592:16;584:25;;;;;;;;1451:4;1433:15;;:22;;;;;;;;;;;;;;;;;;1466:14;;;;;;;;;;1493:4;1486:11;;1362:140;:::o;238:20:11:-;;;;;;;;;;;;;:::o;608:321:12:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:17:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1100:103:11:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1042:110:10:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;1338:171:11:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", + "bytecode": "0x60806040526000600360146101000a81548160ff02191690831515021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061173d8061006f6000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b146100d5578063095ea7b31461010457806318160ddd1461016957806323b872dd1461019457806340c10f1914610219578063661884631461027e57806370a08231146102e3578063715018a61461033a5780637d64bcb4146103515780638da5cb5b14610380578063a9059cbb146103d7578063d73dd6231461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100e157600080fd5b506100ea61055b565b604051808215151515815260200191505060405180910390f35b34801561011057600080fd5b5061014f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061056e565b604051808215151515815260200191505060405180910390f35b34801561017557600080fd5b5061017e610660565b6040518082815260200191505060405180910390f35b3480156101a057600080fd5b506101ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061066a565b604051808215151515815260200191505060405180910390f35b34801561022557600080fd5b50610264600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a24565b604051808215151515815260200191505060405180910390f35b34801561028a57600080fd5b506102c9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c0a565b604051808215151515815260200191505060405180910390f35b3480156102ef57600080fd5b50610324600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e9b565b6040518082815260200191505060405180910390f35b34801561034657600080fd5b5061034f610ee3565b005b34801561035d57600080fd5b50610366610fe8565b604051808215151515815260200191505060405180910390f35b34801561038c57600080fd5b506103956110b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e357600080fd5b50610422600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110d6565b604051808215151515815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112f5565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f1565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611578565b005b600360149054906101000a900460ff1681565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106a757600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156106f457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561077f57600080fd5b6107d0826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610863826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a8257600080fd5b600360149054906101000a900460ff16151515610a9e57600080fd5b610ab3826001546115f990919063ffffffff16565b600181905550610b0a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d1b576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610daf565b610d2e83826115e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3f57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561104657600080fd5b600360149054906101000a900460ff1615151561106257600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561111357600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561116057600080fd5b6111b1826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611244826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061138682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d457600080fd5b6115dd81611615565b50565b60008282111515156115ee57fe5b818303905092915050565b6000818301905082811015151561160c57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561165157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582017727eef96a0866d5a3134173d5ffac32fd13d72efde908792ccd32a0910f10c0029", + "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b146100d5578063095ea7b31461010457806318160ddd1461016957806323b872dd1461019457806340c10f1914610219578063661884631461027e57806370a08231146102e3578063715018a61461033a5780637d64bcb4146103515780638da5cb5b14610380578063a9059cbb146103d7578063d73dd6231461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100e157600080fd5b506100ea61055b565b604051808215151515815260200191505060405180910390f35b34801561011057600080fd5b5061014f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061056e565b604051808215151515815260200191505060405180910390f35b34801561017557600080fd5b5061017e610660565b6040518082815260200191505060405180910390f35b3480156101a057600080fd5b506101ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061066a565b604051808215151515815260200191505060405180910390f35b34801561022557600080fd5b50610264600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a24565b604051808215151515815260200191505060405180910390f35b34801561028a57600080fd5b506102c9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c0a565b604051808215151515815260200191505060405180910390f35b3480156102ef57600080fd5b50610324600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e9b565b6040518082815260200191505060405180910390f35b34801561034657600080fd5b5061034f610ee3565b005b34801561035d57600080fd5b50610366610fe8565b604051808215151515815260200191505060405180910390f35b34801561038c57600080fd5b506103956110b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e357600080fd5b50610422600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110d6565b604051808215151515815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112f5565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f1565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611578565b005b600360149054906101000a900460ff1681565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106a757600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156106f457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561077f57600080fd5b6107d0826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610863826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a8257600080fd5b600360149054906101000a900460ff16151515610a9e57600080fd5b610ab3826001546115f990919063ffffffff16565b600181905550610b0a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d1b576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610daf565b610d2e83826115e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3f57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561104657600080fd5b600360149054906101000a900460ff1615151561106257600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561111357600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561116057600080fd5b6111b1826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611244826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061138682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d457600080fd5b6115dd81611615565b50565b60008282111515156115ee57fe5b818303905092915050565b6000818301905082811015151561160c57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561165157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582017727eef96a0866d5a3134173d5ffac32fd13d72efde908792ccd32a0910f10c0029", + "sourceMap": "390:1114:44:-;;;548:5;518:35;;;;;;;;;;;;;;;;;;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;390:1114:44;;;;;;", + "deployedSourceMap": "390:1114:44:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;518:35:44;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:40;;;;;;;;;;;;;;;;;;;;;;;736:470:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;936:312:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;936:312:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:425:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:39;;;;;;1362:140:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1362:140:44;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35:44;;;;;;;;;;;;;:::o;1829:188:45:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;371:83:40:-;415:7;437:12;;430:19;;371:83;:::o;736:470:45:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;936:312:44:-;1050:4;682:5;;;;;;;;;;;668:19;;:10;:19;;;660:28;;;;;;;;593:15;;;;;;;;;;;592:16;584:25;;;;;;;;1079;1096:7;1079:12;;:16;;:25;;;;:::i;:::-;1064:12;:40;;;;1126:26;1144:7;1126:8;:13;1135:3;1126:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;1110:8;:13;1119:3;1110:13;;;;;;;;;;;;;;;:42;;;;1168:3;1163:18;;;1173:7;1163:18;;;;;;;;;;;;;;;;;;1213:3;1192:34;;1209:1;1192:34;;;1218:7;1192:34;;;;;;;;;;;;;;;;;;1239:4;1232:11;;936:312;;;;:::o;3701:425:45:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:40:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;827:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;1362:140:44:-;1421:4;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;593:15:44;;;;;;;;;;;592:16;584:25;;;;;;;;1451:4;1433:15;;:22;;;;;;;;;;;;;;;;;;1466:14;;;;;;;;;;1493:4;1486:11;;1362:140;:::o;238:20:39:-;;;;;;;;;;;;;:::o;608:321:40:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:45:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1100:103:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;1338:171:39:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", "source": "pragma solidity ^0.4.23;\n\nimport \"./StandardToken.sol\";\nimport \"../../ownership/Ownable.sol\";\n\n\n/**\n * @title Mintable token\n * @dev Simple ERC20 Token example, with mintable token creation\n * @dev Issue: * https://github.com/OpenZeppelin/openzeppelin-solidity/issues/120\n * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol\n */\ncontract MintableToken is StandardToken, Ownable {\n event Mint(address indexed to, uint256 amount);\n event MintFinished();\n\n bool public mintingFinished = false;\n\n\n modifier canMint() {\n require(!mintingFinished);\n _;\n }\n\n modifier hasMintPermission() {\n require(msg.sender == owner);\n _;\n }\n\n /**\n * @dev Function to mint tokens\n * @param _to The address that will receive the minted tokens.\n * @param _amount The amount of tokens to mint.\n * @return A boolean that indicates if the operation was successful.\n */\n function mint(\n address _to,\n uint256 _amount\n )\n hasMintPermission\n canMint\n public\n returns (bool)\n {\n totalSupply_ = totalSupply_.add(_amount);\n balances[_to] = balances[_to].add(_amount);\n emit Mint(_to, _amount);\n emit Transfer(address(0), _to, _amount);\n return true;\n }\n\n /**\n * @dev Function to stop minting new tokens.\n * @return True if the operation was successful.\n */\n function finishMinting() onlyOwner canMint public returns (bool) {\n mintingFinished = true;\n emit MintFinished();\n return true;\n }\n}\n", "sourcePath": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", "ast": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", "exportedSymbols": { "MintableToken": [ - 2552 + 5135 ] }, - "id": 2553, + "id": 5136, "nodeType": "SourceUnit", "nodes": [ { - "id": 2448, + "id": 5031, "literals": [ "solidity", "^", @@ -386,27 +386,27 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:16" + "src": "0:24:44" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "file": "./StandardToken.sol", - "id": 2449, + "id": 5032, "nodeType": "ImportDirective", - "scope": 2553, - "sourceUnit": 2800, - "src": "26:29:16", + "scope": 5136, + "sourceUnit": 5383, + "src": "26:29:44", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "file": "../../ownership/Ownable.sol", - "id": 2450, + "id": 5033, "nodeType": "ImportDirective", - "scope": 2553, - "sourceUnit": 2242, - "src": "56:37:16", + "scope": 5136, + "sourceUnit": 4825, + "src": "56:37:44", "symbolAliases": [], "unitAlias": "" }, @@ -416,57 +416,57 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2451, + "id": 5034, "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "416:13:16", + "referencedDeclaration": 5382, + "src": "416:13:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", + "typeIdentifier": "t_contract$_StandardToken_$5382", "typeString": "contract StandardToken" } }, - "id": 2452, + "id": 5035, "nodeType": "InheritanceSpecifier", - "src": "416:13:16" + "src": "416:13:44" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2453, + "id": 5036, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2241, - "src": "431:7:16", + "referencedDeclaration": 4824, + "src": "431:7:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$2241", + "typeIdentifier": "t_contract$_Ownable_$4824", "typeString": "contract Ownable" } }, - "id": 2454, + "id": 5037, "nodeType": "InheritanceSpecifier", - "src": "431:7:16" + "src": "431:7:44" } ], "contractDependencies": [ - 2241, - 2337, - 2414, - 2446, - 2799 + 4824, + 4920, + 4997, + 5029, + 5382 ], "contractKind": "contract", "documentation": "@title Mintable token\n@dev Simple ERC20 Token example, with mintable token creation\n@dev Issue: * https://github.com/OpenZeppelin/openzeppelin-solidity/issues/120\nBased on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol", "fullyImplemented": true, - "id": 2552, + "id": 5135, "linearizedBaseContracts": [ - 2552, - 2241, - 2799, - 2337, - 2414, - 2446 + 5135, + 4824, + 5382, + 4920, + 4997, + 5029 ], "name": "MintableToken", "nodeType": "ContractDefinition", @@ -474,21 +474,21 @@ { "anonymous": false, "documentation": null, - "id": 2460, + "id": 5043, "name": "Mint", "nodeType": "EventDefinition", "parameters": { - "id": 2459, + "id": 5042, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2456, + "id": 5039, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2460, - "src": "454:18:16", + "scope": 5043, + "src": "454:18:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -496,10 +496,10 @@ "typeString": "address" }, "typeName": { - "id": 2455, + "id": 5038, "name": "address", "nodeType": "ElementaryTypeName", - "src": "454:7:16", + "src": "454:7:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -510,12 +510,12 @@ }, { "constant": false, - "id": 2458, + "id": 5041, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2460, - "src": "474:14:16", + "scope": 5043, + "src": "474:14:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -523,10 +523,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2457, + "id": 5040, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "474:7:16", + "src": "474:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -536,31 +536,31 @@ "visibility": "internal" } ], - "src": "453:36:16" + "src": "453:36:44" }, - "src": "443:47:16" + "src": "443:47:44" }, { "anonymous": false, "documentation": null, - "id": 2462, + "id": 5045, "name": "MintFinished", "nodeType": "EventDefinition", "parameters": { - "id": 2461, + "id": 5044, "nodeType": "ParameterList", "parameters": [], - "src": "511:2:16" + "src": "511:2:44" }, - "src": "493:21:16" + "src": "493:21:44" }, { "constant": false, - "id": 2465, + "id": 5048, "name": "mintingFinished", "nodeType": "VariableDeclaration", - "scope": 2552, - "src": "518:35:16", + "scope": 5135, + "src": "518:35:44", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -568,10 +568,10 @@ "typeString": "bool" }, "typeName": { - "id": 2463, + "id": 5046, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "518:4:16", + "src": "518:4:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -580,14 +580,14 @@ "value": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2464, + "id": 5047, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "548:5:16", + "src": "548:5:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -599,9 +599,9 @@ }, { "body": { - "id": 2473, + "id": 5056, "nodeType": "Block", - "src": "578:43:16", + "src": "578:43:44", "statements": [ { "expression": { @@ -609,7 +609,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2469, + "id": 5052, "isConstant": false, "isLValue": false, "isPure": false, @@ -617,15 +617,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "592:16:16", + "src": "592:16:44", "subExpression": { "argumentTypes": null, - "id": 2468, + "id": 5051, "name": "mintingFinished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "593:15:16", + "referencedDeclaration": 5048, + "src": "593:15:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -644,21 +644,21 @@ "typeString": "bool" } ], - "id": 2467, + "id": 5050, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "584:7:16", + "referencedDeclaration": 5400, + "src": "584:7:44", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2470, + "id": 5053, "isConstant": false, "isLValue": false, "isPure": false, @@ -666,41 +666,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "584:25:16", + "src": "584:25:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2471, + "id": 5054, "nodeType": "ExpressionStatement", - "src": "584:25:16" + "src": "584:25:44" }, { - "id": 2472, + "id": 5055, "nodeType": "PlaceholderStatement", - "src": "615:1:16" + "src": "615:1:44" } ] }, "documentation": null, - "id": 2474, + "id": 5057, "name": "canMint", "nodeType": "ModifierDefinition", "parameters": { - "id": 2466, + "id": 5049, "nodeType": "ParameterList", "parameters": [], - "src": "575:2:16" + "src": "575:2:44" }, - "src": "559:62:16", + "src": "559:62:44", "visibility": "internal" }, { "body": { - "id": 2484, + "id": 5067, "nodeType": "Block", - "src": "654:46:16", + "src": "654:46:44", "statements": [ { "expression": { @@ -712,7 +712,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2480, + "id": 5063, "isConstant": false, "isLValue": false, "isPure": false, @@ -721,18 +721,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2477, + "id": 5060, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "668:3:16", + "referencedDeclaration": 5397, + "src": "668:3:44", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2478, + "id": 5061, "isConstant": false, "isLValue": false, "isPure": false, @@ -740,7 +740,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "668:10:16", + "src": "668:10:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -750,18 +750,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2479, + "id": 5062, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "682:5:16", + "referencedDeclaration": 4742, + "src": "682:5:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "668:19:16", + "src": "668:19:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -775,21 +775,21 @@ "typeString": "bool" } ], - "id": 2476, + "id": 5059, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "660:7:16", + "referencedDeclaration": 5400, + "src": "660:7:44", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2481, + "id": 5064, "isConstant": false, "isLValue": false, "isPure": false, @@ -797,58 +797,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "660:28:16", + "src": "660:28:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2482, + "id": 5065, "nodeType": "ExpressionStatement", - "src": "660:28:16" + "src": "660:28:44" }, { - "id": 2483, + "id": 5066, "nodeType": "PlaceholderStatement", - "src": "694:1:16" + "src": "694:1:44" } ] }, "documentation": null, - "id": 2485, + "id": 5068, "name": "hasMintPermission", "nodeType": "ModifierDefinition", "parameters": { - "id": 2475, + "id": 5058, "nodeType": "ParameterList", "parameters": [], - "src": "651:2:16" + "src": "651:2:44" }, - "src": "625:75:16", + "src": "625:75:44", "visibility": "internal" }, { "body": { - "id": 2531, + "id": 5114, "nodeType": "Block", - "src": "1058:190:16", + "src": "1058:190:44", "statements": [ { "expression": { "argumentTypes": null, - "id": 2503, + "id": 5086, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2498, + "id": 5081, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "1064:12:16", + "referencedDeclaration": 4839, + "src": "1064:12:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -861,12 +861,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2501, + "id": 5084, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1096:7:16", + "referencedDeclaration": 5072, + "src": "1096:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -882,32 +882,32 @@ ], "expression": { "argumentTypes": null, - "id": 2499, + "id": 5082, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "1079:12:16", + "referencedDeclaration": 4839, + "src": "1079:12:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2500, + "id": 5083, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1079:16:16", + "referencedDeclaration": 4737, + "src": "1079:16:44", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2502, + "id": 5085, "isConstant": false, "isLValue": false, "isPure": false, @@ -915,26 +915,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1079:25:16", + "src": "1079:25:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1064:40:16", + "src": "1064:40:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2504, + "id": 5087, "nodeType": "ExpressionStatement", - "src": "1064:40:16" + "src": "1064:40:44" }, { "expression": { "argumentTypes": null, - "id": 2514, + "id": 5097, "isConstant": false, "isLValue": false, "isPure": false, @@ -943,26 +943,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2505, + "id": 5088, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1110:8:16", + "referencedDeclaration": 4837, + "src": "1110:8:44", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2507, + "id": 5090, "indexExpression": { "argumentTypes": null, - "id": 2506, + "id": 5089, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1119:3:16", + "referencedDeclaration": 5070, + "src": "1119:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -973,7 +973,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1110:13:16", + "src": "1110:13:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -986,12 +986,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2512, + "id": 5095, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1144:7:16", + "referencedDeclaration": 5072, + "src": "1144:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1009,26 +1009,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2508, + "id": 5091, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1126:8:16", + "referencedDeclaration": 4837, + "src": "1126:8:44", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2510, + "id": 5093, "indexExpression": { "argumentTypes": null, - "id": 2509, + "id": 5092, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1135:3:16", + "referencedDeclaration": 5070, + "src": "1135:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1039,27 +1039,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1126:13:16", + "src": "1126:13:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2511, + "id": 5094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1126:17:16", + "referencedDeclaration": 4737, + "src": "1126:17:44", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2513, + "id": 5096, "isConstant": false, "isLValue": false, "isPure": false, @@ -1067,21 +1067,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1126:26:16", + "src": "1126:26:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1110:42:16", + "src": "1110:42:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2515, + "id": 5098, "nodeType": "ExpressionStatement", - "src": "1110:42:16" + "src": "1110:42:44" }, { "eventCall": { @@ -1089,12 +1089,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2517, + "id": 5100, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1168:3:16", + "referencedDeclaration": 5070, + "src": "1168:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1102,12 +1102,12 @@ }, { "argumentTypes": null, - "id": 2518, + "id": 5101, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1173:7:16", + "referencedDeclaration": 5072, + "src": "1173:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1125,18 +1125,18 @@ "typeString": "uint256" } ], - "id": 2516, + "id": 5099, "name": "Mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2460, - "src": "1163:4:16", + "referencedDeclaration": 5043, + "src": "1163:4:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 2519, + "id": 5102, "isConstant": false, "isLValue": false, "isPure": false, @@ -1144,15 +1144,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1163:18:16", + "src": "1163:18:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2520, + "id": 5103, "nodeType": "EmitStatement", - "src": "1158:23:16" + "src": "1158:23:44" }, { "eventCall": { @@ -1164,14 +1164,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2523, + "id": 5106, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1209:1:16", + "src": "1209:1:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1187,20 +1187,20 @@ "typeString": "int_const 0" } ], - "id": 2522, + "id": 5105, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1201:7:16", + "src": "1201:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2524, + "id": 5107, "isConstant": false, "isLValue": false, "isPure": true, @@ -1208,7 +1208,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1201:10:16", + "src": "1201:10:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1216,12 +1216,12 @@ }, { "argumentTypes": null, - "id": 2525, + "id": 5108, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1213:3:16", + "referencedDeclaration": 5070, + "src": "1213:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1229,12 +1229,12 @@ }, { "argumentTypes": null, - "id": 2526, + "id": 5109, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1218:7:16", + "referencedDeclaration": 5072, + "src": "1218:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1256,18 +1256,18 @@ "typeString": "uint256" } ], - "id": 2521, + "id": 5104, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "1192:8:16", + "referencedDeclaration": 5028, + "src": "1192:8:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2527, + "id": 5110, "isConstant": false, "isLValue": false, "isPure": false, @@ -1275,28 +1275,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1192:34:16", + "src": "1192:34:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2528, + "id": 5111, "nodeType": "EmitStatement", - "src": "1187:39:16" + "src": "1187:39:44" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2529, + "id": 5112, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1239:4:16", + "src": "1239:4:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1304,71 +1304,71 @@ }, "value": "true" }, - "functionReturnParameters": 2497, - "id": 2530, + "functionReturnParameters": 5080, + "id": 5113, "nodeType": "Return", - "src": "1232:11:16" + "src": "1232:11:44" } ] }, "documentation": "@dev Function to mint tokens\n@param _to The address that will receive the minted tokens.\n@param _amount The amount of tokens to mint.\n@return A boolean that indicates if the operation was successful.", - "id": 2532, + "id": 5115, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2492, + "id": 5075, "modifierName": { "argumentTypes": null, - "id": 2491, + "id": 5074, "name": "hasMintPermission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2485, - "src": "996:17:16", + "referencedDeclaration": 5068, + "src": "996:17:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "996:17:16" + "src": "996:17:44" }, { "arguments": null, - "id": 2494, + "id": 5077, "modifierName": { "argumentTypes": null, - "id": 2493, + "id": 5076, "name": "canMint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, - "src": "1018:7:16", + "referencedDeclaration": 5057, + "src": "1018:7:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1018:7:16" + "src": "1018:7:44" } ], "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 2490, + "id": 5073, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2487, + "id": 5070, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "955:11:16", + "scope": 5115, + "src": "955:11:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1376,10 +1376,10 @@ "typeString": "address" }, "typeName": { - "id": 2486, + "id": 5069, "name": "address", "nodeType": "ElementaryTypeName", - "src": "955:7:16", + "src": "955:7:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1390,11 +1390,11 @@ }, { "constant": false, - "id": 2489, + "id": 5072, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "972:15:16", + "scope": 5115, + "src": "972:15:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1402,10 +1402,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2488, + "id": 5071, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "972:7:16", + "src": "972:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1415,20 +1415,20 @@ "visibility": "internal" } ], - "src": "949:42:16" + "src": "949:42:44" }, "payable": false, "returnParameters": { - "id": 2497, + "id": 5080, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2496, + "id": 5079, "name": "", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "1050:4:16", + "scope": 5115, + "src": "1050:4:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1436,10 +1436,10 @@ "typeString": "bool" }, "typeName": { - "id": 2495, + "id": 5078, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1050:4:16", + "src": "1050:4:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1449,36 +1449,36 @@ "visibility": "internal" } ], - "src": "1049:6:16" + "src": "1049:6:44" }, - "scope": 2552, - "src": "936:312:16", + "scope": 5135, + "src": "936:312:44", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2550, + "id": 5133, "nodeType": "Block", - "src": "1427:75:16", + "src": "1427:75:44", "statements": [ { "expression": { "argumentTypes": null, - "id": 2543, + "id": 5126, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2541, + "id": 5124, "name": "mintingFinished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "1433:15:16", + "referencedDeclaration": 5048, + "src": "1433:15:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1489,14 +1489,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2542, + "id": 5125, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1451:4:16", + "src": "1451:4:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1504,15 +1504,15 @@ }, "value": "true" }, - "src": "1433:22:16", + "src": "1433:22:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2544, + "id": 5127, "nodeType": "ExpressionStatement", - "src": "1433:22:16" + "src": "1433:22:44" }, { "eventCall": { @@ -1520,18 +1520,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2545, + "id": 5128, "name": "MintFinished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2462, - "src": "1466:12:16", + "referencedDeclaration": 5045, + "src": "1466:12:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2546, + "id": 5129, "isConstant": false, "isLValue": false, "isPure": false, @@ -1539,28 +1539,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1466:14:16", + "src": "1466:14:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2547, + "id": 5130, "nodeType": "EmitStatement", - "src": "1461:19:16" + "src": "1461:19:44" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2548, + "id": 5131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1493:4:16", + "src": "1493:4:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1568,78 +1568,78 @@ }, "value": "true" }, - "functionReturnParameters": 2540, - "id": 2549, + "functionReturnParameters": 5123, + "id": 5132, "nodeType": "Return", - "src": "1486:11:16" + "src": "1486:11:44" } ] }, "documentation": "@dev Function to stop minting new tokens.\n@return True if the operation was successful.", - "id": 2551, + "id": 5134, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2535, + "id": 5118, "modifierName": { "argumentTypes": null, - "id": 2534, + "id": 5117, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "1387:9:16", + "referencedDeclaration": 4772, + "src": "1387:9:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1387:9:16" + "src": "1387:9:44" }, { "arguments": null, - "id": 2537, + "id": 5120, "modifierName": { "argumentTypes": null, - "id": 2536, + "id": 5119, "name": "canMint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, - "src": "1397:7:16", + "referencedDeclaration": 5057, + "src": "1397:7:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1397:7:16" + "src": "1397:7:44" } ], "name": "finishMinting", "nodeType": "FunctionDefinition", "parameters": { - "id": 2533, + "id": 5116, "nodeType": "ParameterList", "parameters": [], - "src": "1384:2:16" + "src": "1384:2:44" }, "payable": false, "returnParameters": { - "id": 2540, + "id": 5123, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2539, + "id": 5122, "name": "", "nodeType": "VariableDeclaration", - "scope": 2551, - "src": "1421:4:16", + "scope": 5134, + "src": "1421:4:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1647,10 +1647,10 @@ "typeString": "bool" }, "typeName": { - "id": 2538, + "id": 5121, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1421:4:16", + "src": "1421:4:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1660,33 +1660,33 @@ "visibility": "internal" } ], - "src": "1420:6:16" + "src": "1420:6:44" }, - "scope": 2552, - "src": "1362:140:16", + "scope": 5135, + "src": "1362:140:44", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2553, - "src": "390:1114:16" + "scope": 5136, + "src": "390:1114:44" } ], - "src": "0:1505:16" + "src": "0:1505:44" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", "exportedSymbols": { "MintableToken": [ - 2552 + 5135 ] }, - "id": 2553, + "id": 5136, "nodeType": "SourceUnit", "nodes": [ { - "id": 2448, + "id": 5031, "literals": [ "solidity", "^", @@ -1694,27 +1694,27 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:16" + "src": "0:24:44" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "file": "./StandardToken.sol", - "id": 2449, + "id": 5032, "nodeType": "ImportDirective", - "scope": 2553, - "sourceUnit": 2800, - "src": "26:29:16", + "scope": 5136, + "sourceUnit": 5383, + "src": "26:29:44", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "file": "../../ownership/Ownable.sol", - "id": 2450, + "id": 5033, "nodeType": "ImportDirective", - "scope": 2553, - "sourceUnit": 2242, - "src": "56:37:16", + "scope": 5136, + "sourceUnit": 4825, + "src": "56:37:44", "symbolAliases": [], "unitAlias": "" }, @@ -1724,57 +1724,57 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2451, + "id": 5034, "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "416:13:16", + "referencedDeclaration": 5382, + "src": "416:13:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", + "typeIdentifier": "t_contract$_StandardToken_$5382", "typeString": "contract StandardToken" } }, - "id": 2452, + "id": 5035, "nodeType": "InheritanceSpecifier", - "src": "416:13:16" + "src": "416:13:44" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2453, + "id": 5036, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2241, - "src": "431:7:16", + "referencedDeclaration": 4824, + "src": "431:7:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$2241", + "typeIdentifier": "t_contract$_Ownable_$4824", "typeString": "contract Ownable" } }, - "id": 2454, + "id": 5037, "nodeType": "InheritanceSpecifier", - "src": "431:7:16" + "src": "431:7:44" } ], "contractDependencies": [ - 2241, - 2337, - 2414, - 2446, - 2799 + 4824, + 4920, + 4997, + 5029, + 5382 ], "contractKind": "contract", "documentation": "@title Mintable token\n@dev Simple ERC20 Token example, with mintable token creation\n@dev Issue: * https://github.com/OpenZeppelin/openzeppelin-solidity/issues/120\nBased on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol", "fullyImplemented": true, - "id": 2552, + "id": 5135, "linearizedBaseContracts": [ - 2552, - 2241, - 2799, - 2337, - 2414, - 2446 + 5135, + 4824, + 5382, + 4920, + 4997, + 5029 ], "name": "MintableToken", "nodeType": "ContractDefinition", @@ -1782,21 +1782,21 @@ { "anonymous": false, "documentation": null, - "id": 2460, + "id": 5043, "name": "Mint", "nodeType": "EventDefinition", "parameters": { - "id": 2459, + "id": 5042, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2456, + "id": 5039, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2460, - "src": "454:18:16", + "scope": 5043, + "src": "454:18:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1804,10 +1804,10 @@ "typeString": "address" }, "typeName": { - "id": 2455, + "id": 5038, "name": "address", "nodeType": "ElementaryTypeName", - "src": "454:7:16", + "src": "454:7:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1818,12 +1818,12 @@ }, { "constant": false, - "id": 2458, + "id": 5041, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2460, - "src": "474:14:16", + "scope": 5043, + "src": "474:14:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1831,10 +1831,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2457, + "id": 5040, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "474:7:16", + "src": "474:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1844,31 +1844,31 @@ "visibility": "internal" } ], - "src": "453:36:16" + "src": "453:36:44" }, - "src": "443:47:16" + "src": "443:47:44" }, { "anonymous": false, "documentation": null, - "id": 2462, + "id": 5045, "name": "MintFinished", "nodeType": "EventDefinition", "parameters": { - "id": 2461, + "id": 5044, "nodeType": "ParameterList", "parameters": [], - "src": "511:2:16" + "src": "511:2:44" }, - "src": "493:21:16" + "src": "493:21:44" }, { "constant": false, - "id": 2465, + "id": 5048, "name": "mintingFinished", "nodeType": "VariableDeclaration", - "scope": 2552, - "src": "518:35:16", + "scope": 5135, + "src": "518:35:44", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1876,10 +1876,10 @@ "typeString": "bool" }, "typeName": { - "id": 2463, + "id": 5046, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "518:4:16", + "src": "518:4:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1888,14 +1888,14 @@ "value": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2464, + "id": 5047, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "548:5:16", + "src": "548:5:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1907,9 +1907,9 @@ }, { "body": { - "id": 2473, + "id": 5056, "nodeType": "Block", - "src": "578:43:16", + "src": "578:43:44", "statements": [ { "expression": { @@ -1917,7 +1917,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2469, + "id": 5052, "isConstant": false, "isLValue": false, "isPure": false, @@ -1925,15 +1925,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "592:16:16", + "src": "592:16:44", "subExpression": { "argumentTypes": null, - "id": 2468, + "id": 5051, "name": "mintingFinished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "593:15:16", + "referencedDeclaration": 5048, + "src": "593:15:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1952,21 +1952,21 @@ "typeString": "bool" } ], - "id": 2467, + "id": 5050, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "584:7:16", + "referencedDeclaration": 5400, + "src": "584:7:44", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2470, + "id": 5053, "isConstant": false, "isLValue": false, "isPure": false, @@ -1974,41 +1974,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "584:25:16", + "src": "584:25:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2471, + "id": 5054, "nodeType": "ExpressionStatement", - "src": "584:25:16" + "src": "584:25:44" }, { - "id": 2472, + "id": 5055, "nodeType": "PlaceholderStatement", - "src": "615:1:16" + "src": "615:1:44" } ] }, "documentation": null, - "id": 2474, + "id": 5057, "name": "canMint", "nodeType": "ModifierDefinition", "parameters": { - "id": 2466, + "id": 5049, "nodeType": "ParameterList", "parameters": [], - "src": "575:2:16" + "src": "575:2:44" }, - "src": "559:62:16", + "src": "559:62:44", "visibility": "internal" }, { "body": { - "id": 2484, + "id": 5067, "nodeType": "Block", - "src": "654:46:16", + "src": "654:46:44", "statements": [ { "expression": { @@ -2020,7 +2020,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2480, + "id": 5063, "isConstant": false, "isLValue": false, "isPure": false, @@ -2029,18 +2029,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2477, + "id": 5060, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "668:3:16", + "referencedDeclaration": 5397, + "src": "668:3:44", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2478, + "id": 5061, "isConstant": false, "isLValue": false, "isPure": false, @@ -2048,7 +2048,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "668:10:16", + "src": "668:10:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2058,18 +2058,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2479, + "id": 5062, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "682:5:16", + "referencedDeclaration": 4742, + "src": "682:5:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "668:19:16", + "src": "668:19:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2083,21 +2083,21 @@ "typeString": "bool" } ], - "id": 2476, + "id": 5059, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "660:7:16", + "referencedDeclaration": 5400, + "src": "660:7:44", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2481, + "id": 5064, "isConstant": false, "isLValue": false, "isPure": false, @@ -2105,58 +2105,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "660:28:16", + "src": "660:28:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2482, + "id": 5065, "nodeType": "ExpressionStatement", - "src": "660:28:16" + "src": "660:28:44" }, { - "id": 2483, + "id": 5066, "nodeType": "PlaceholderStatement", - "src": "694:1:16" + "src": "694:1:44" } ] }, "documentation": null, - "id": 2485, + "id": 5068, "name": "hasMintPermission", "nodeType": "ModifierDefinition", "parameters": { - "id": 2475, + "id": 5058, "nodeType": "ParameterList", "parameters": [], - "src": "651:2:16" + "src": "651:2:44" }, - "src": "625:75:16", + "src": "625:75:44", "visibility": "internal" }, { "body": { - "id": 2531, + "id": 5114, "nodeType": "Block", - "src": "1058:190:16", + "src": "1058:190:44", "statements": [ { "expression": { "argumentTypes": null, - "id": 2503, + "id": 5086, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2498, + "id": 5081, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "1064:12:16", + "referencedDeclaration": 4839, + "src": "1064:12:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2169,12 +2169,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2501, + "id": 5084, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1096:7:16", + "referencedDeclaration": 5072, + "src": "1096:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2190,32 +2190,32 @@ ], "expression": { "argumentTypes": null, - "id": 2499, + "id": 5082, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "1079:12:16", + "referencedDeclaration": 4839, + "src": "1079:12:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2500, + "id": 5083, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1079:16:16", + "referencedDeclaration": 4737, + "src": "1079:16:44", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2502, + "id": 5085, "isConstant": false, "isLValue": false, "isPure": false, @@ -2223,26 +2223,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1079:25:16", + "src": "1079:25:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1064:40:16", + "src": "1064:40:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2504, + "id": 5087, "nodeType": "ExpressionStatement", - "src": "1064:40:16" + "src": "1064:40:44" }, { "expression": { "argumentTypes": null, - "id": 2514, + "id": 5097, "isConstant": false, "isLValue": false, "isPure": false, @@ -2251,26 +2251,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2505, + "id": 5088, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1110:8:16", + "referencedDeclaration": 4837, + "src": "1110:8:44", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2507, + "id": 5090, "indexExpression": { "argumentTypes": null, - "id": 2506, + "id": 5089, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1119:3:16", + "referencedDeclaration": 5070, + "src": "1119:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2281,7 +2281,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1110:13:16", + "src": "1110:13:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2294,12 +2294,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2512, + "id": 5095, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1144:7:16", + "referencedDeclaration": 5072, + "src": "1144:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2317,26 +2317,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2508, + "id": 5091, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1126:8:16", + "referencedDeclaration": 4837, + "src": "1126:8:44", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2510, + "id": 5093, "indexExpression": { "argumentTypes": null, - "id": 2509, + "id": 5092, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1135:3:16", + "referencedDeclaration": 5070, + "src": "1135:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2347,27 +2347,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1126:13:16", + "src": "1126:13:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2511, + "id": 5094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1126:17:16", + "referencedDeclaration": 4737, + "src": "1126:17:44", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2513, + "id": 5096, "isConstant": false, "isLValue": false, "isPure": false, @@ -2375,21 +2375,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1126:26:16", + "src": "1126:26:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1110:42:16", + "src": "1110:42:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2515, + "id": 5098, "nodeType": "ExpressionStatement", - "src": "1110:42:16" + "src": "1110:42:44" }, { "eventCall": { @@ -2397,12 +2397,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2517, + "id": 5100, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1168:3:16", + "referencedDeclaration": 5070, + "src": "1168:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2410,12 +2410,12 @@ }, { "argumentTypes": null, - "id": 2518, + "id": 5101, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1173:7:16", + "referencedDeclaration": 5072, + "src": "1173:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2433,18 +2433,18 @@ "typeString": "uint256" } ], - "id": 2516, + "id": 5099, "name": "Mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2460, - "src": "1163:4:16", + "referencedDeclaration": 5043, + "src": "1163:4:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 2519, + "id": 5102, "isConstant": false, "isLValue": false, "isPure": false, @@ -2452,15 +2452,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1163:18:16", + "src": "1163:18:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2520, + "id": 5103, "nodeType": "EmitStatement", - "src": "1158:23:16" + "src": "1158:23:44" }, { "eventCall": { @@ -2472,14 +2472,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2523, + "id": 5106, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1209:1:16", + "src": "1209:1:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2495,20 +2495,20 @@ "typeString": "int_const 0" } ], - "id": 2522, + "id": 5105, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1201:7:16", + "src": "1201:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2524, + "id": 5107, "isConstant": false, "isLValue": false, "isPure": true, @@ -2516,7 +2516,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1201:10:16", + "src": "1201:10:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2524,12 +2524,12 @@ }, { "argumentTypes": null, - "id": 2525, + "id": 5108, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1213:3:16", + "referencedDeclaration": 5070, + "src": "1213:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2537,12 +2537,12 @@ }, { "argumentTypes": null, - "id": 2526, + "id": 5109, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1218:7:16", + "referencedDeclaration": 5072, + "src": "1218:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2564,18 +2564,18 @@ "typeString": "uint256" } ], - "id": 2521, + "id": 5104, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "1192:8:16", + "referencedDeclaration": 5028, + "src": "1192:8:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2527, + "id": 5110, "isConstant": false, "isLValue": false, "isPure": false, @@ -2583,28 +2583,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1192:34:16", + "src": "1192:34:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2528, + "id": 5111, "nodeType": "EmitStatement", - "src": "1187:39:16" + "src": "1187:39:44" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2529, + "id": 5112, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1239:4:16", + "src": "1239:4:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2612,71 +2612,71 @@ }, "value": "true" }, - "functionReturnParameters": 2497, - "id": 2530, + "functionReturnParameters": 5080, + "id": 5113, "nodeType": "Return", - "src": "1232:11:16" + "src": "1232:11:44" } ] }, "documentation": "@dev Function to mint tokens\n@param _to The address that will receive the minted tokens.\n@param _amount The amount of tokens to mint.\n@return A boolean that indicates if the operation was successful.", - "id": 2532, + "id": 5115, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2492, + "id": 5075, "modifierName": { "argumentTypes": null, - "id": 2491, + "id": 5074, "name": "hasMintPermission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2485, - "src": "996:17:16", + "referencedDeclaration": 5068, + "src": "996:17:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "996:17:16" + "src": "996:17:44" }, { "arguments": null, - "id": 2494, + "id": 5077, "modifierName": { "argumentTypes": null, - "id": 2493, + "id": 5076, "name": "canMint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, - "src": "1018:7:16", + "referencedDeclaration": 5057, + "src": "1018:7:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1018:7:16" + "src": "1018:7:44" } ], "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 2490, + "id": 5073, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2487, + "id": 5070, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "955:11:16", + "scope": 5115, + "src": "955:11:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2684,10 +2684,10 @@ "typeString": "address" }, "typeName": { - "id": 2486, + "id": 5069, "name": "address", "nodeType": "ElementaryTypeName", - "src": "955:7:16", + "src": "955:7:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2698,11 +2698,11 @@ }, { "constant": false, - "id": 2489, + "id": 5072, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "972:15:16", + "scope": 5115, + "src": "972:15:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2710,10 +2710,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2488, + "id": 5071, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "972:7:16", + "src": "972:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2723,20 +2723,20 @@ "visibility": "internal" } ], - "src": "949:42:16" + "src": "949:42:44" }, "payable": false, "returnParameters": { - "id": 2497, + "id": 5080, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2496, + "id": 5079, "name": "", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "1050:4:16", + "scope": 5115, + "src": "1050:4:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2744,10 +2744,10 @@ "typeString": "bool" }, "typeName": { - "id": 2495, + "id": 5078, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1050:4:16", + "src": "1050:4:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2757,36 +2757,36 @@ "visibility": "internal" } ], - "src": "1049:6:16" + "src": "1049:6:44" }, - "scope": 2552, - "src": "936:312:16", + "scope": 5135, + "src": "936:312:44", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2550, + "id": 5133, "nodeType": "Block", - "src": "1427:75:16", + "src": "1427:75:44", "statements": [ { "expression": { "argumentTypes": null, - "id": 2543, + "id": 5126, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2541, + "id": 5124, "name": "mintingFinished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "1433:15:16", + "referencedDeclaration": 5048, + "src": "1433:15:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2797,14 +2797,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2542, + "id": 5125, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1451:4:16", + "src": "1451:4:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2812,15 +2812,15 @@ }, "value": "true" }, - "src": "1433:22:16", + "src": "1433:22:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2544, + "id": 5127, "nodeType": "ExpressionStatement", - "src": "1433:22:16" + "src": "1433:22:44" }, { "eventCall": { @@ -2828,18 +2828,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2545, + "id": 5128, "name": "MintFinished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2462, - "src": "1466:12:16", + "referencedDeclaration": 5045, + "src": "1466:12:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2546, + "id": 5129, "isConstant": false, "isLValue": false, "isPure": false, @@ -2847,28 +2847,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1466:14:16", + "src": "1466:14:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2547, + "id": 5130, "nodeType": "EmitStatement", - "src": "1461:19:16" + "src": "1461:19:44" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2548, + "id": 5131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1493:4:16", + "src": "1493:4:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2876,78 +2876,78 @@ }, "value": "true" }, - "functionReturnParameters": 2540, - "id": 2549, + "functionReturnParameters": 5123, + "id": 5132, "nodeType": "Return", - "src": "1486:11:16" + "src": "1486:11:44" } ] }, "documentation": "@dev Function to stop minting new tokens.\n@return True if the operation was successful.", - "id": 2551, + "id": 5134, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2535, + "id": 5118, "modifierName": { "argumentTypes": null, - "id": 2534, + "id": 5117, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "1387:9:16", + "referencedDeclaration": 4772, + "src": "1387:9:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1387:9:16" + "src": "1387:9:44" }, { "arguments": null, - "id": 2537, + "id": 5120, "modifierName": { "argumentTypes": null, - "id": 2536, + "id": 5119, "name": "canMint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, - "src": "1397:7:16", + "referencedDeclaration": 5057, + "src": "1397:7:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1397:7:16" + "src": "1397:7:44" } ], "name": "finishMinting", "nodeType": "FunctionDefinition", "parameters": { - "id": 2533, + "id": 5116, "nodeType": "ParameterList", "parameters": [], - "src": "1384:2:16" + "src": "1384:2:44" }, "payable": false, "returnParameters": { - "id": 2540, + "id": 5123, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2539, + "id": 5122, "name": "", "nodeType": "VariableDeclaration", - "scope": 2551, - "src": "1421:4:16", + "scope": 5134, + "src": "1421:4:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2955,10 +2955,10 @@ "typeString": "bool" }, "typeName": { - "id": 2538, + "id": 5121, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1421:4:16", + "src": "1421:4:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2968,26 +2968,26 @@ "visibility": "internal" } ], - "src": "1420:6:16" + "src": "1420:6:44" }, - "scope": 2552, - "src": "1362:140:16", + "scope": 5135, + "src": "1362:140:44", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2553, - "src": "390:1114:16" + "scope": 5136, + "src": "390:1114:44" } ], - "src": "0:1505:16" + "src": "0:1505:44" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.596Z" + "updatedAt": "2018-07-07T07:45:08.918Z" } \ No newline at end of file diff --git a/artifacts/json/MockOrderLibrary.json b/artifacts/json/MockOrderLibrary.json new file mode 100644 index 000000000..f3337b3ba --- /dev/null +++ b/artifacts/json/MockOrderLibrary.json @@ -0,0 +1,1384 @@ +{ + "contractName": "MockOrderLibrary", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_addresses", + "type": "address[4]" + }, + { + "name": "_values", + "type": "uint256[5]" + } + ], + "name": "testGenerateOrderHash", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + }, + { + "name": "_signerAddress", + "type": "address" + }, + { + "name": "_v", + "type": "uint8" + }, + { + "name": "_r", + "type": "bytes32" + }, + { + "name": "_s", + "type": "bytes32" + } + ], + "name": "testValidateSignature", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506108ad806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806388759aeb14610051578063c4dec7b11461008e575b600080fd5b34801561005d57600080fd5b5061007860048036036100739190810190610642565b6100cb565b604051610085919061073e565b60405180910390f35b34801561009a57600080fd5b506100b560048036036100b0919081019061067f565b6100df565b6040516100c29190610723565b60405180910390f35b60006100d783836100f9565b905092915050565b60006100ee868686868661035c565b905095945050505050565b600082600060048110151561010a57fe5b602002015183600160048110151561011e57fe5b602002015184600260048110151561013257fe5b602002015185600360048110151561014657fe5b602002015185600060058110151561015a57fe5b602002015186600160058110151561016e57fe5b602002015187600260058110151561018257fe5b602002015188600360058110151561019657fe5b60200201518960046005811015156101aa57fe5b6020020151604051602001808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186815260200185815260200184815260200183815260200182815260200199505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156103275780518252602082019150602081019050602083039250610302565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905092915050565b60008060606040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152509050600181896040516020018083805190602001908083835b6020831015156103d557805182526020820191506020810190506020830392506103b0565b6001836020036101000a0380198251168184511680821785525050505050509050018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561044d5780518252602082019150602081019050602083039250610428565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208787876040516000815260200160405260405161049a9493929190610759565b60206040516020810390808403906000865af11580156104be573d6000803e3d6000fd5b5050506020604051035191508673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149250505095945050505050565b60006105128235610832565b905092915050565b600082601f830112151561052d57600080fd5b600461054061053b826107cb565b61079e565b9150818385602084028201111561055657600080fd5b60005b83811015610586578161056c8882610506565b845260208401935060208301925050600181019050610559565b5050505092915050565b600082601f83011215156105a357600080fd5b60056105b66105b1826107ed565b61079e565b915081838560208402820111156105cc57600080fd5b60005b838110156105fc57816105e2888261061a565b8452602084019350602083019250506001810190506105cf565b5050505092915050565b60006106128235610852565b905092915050565b6000610626823561085c565b905092915050565b600061063a8235610866565b905092915050565b600080610120838503121561065657600080fd5b60006106648582860161051a565b925050608061067585828601610590565b9150509250929050565b600080600080600060a0868803121561069757600080fd5b60006106a588828901610606565b95505060206106b688828901610506565b94505060406106c78882890161062e565b93505060606106d888828901610606565b92505060806106e988828901610606565b9150509295509295909350565b6106ff8161080f565b82525050565b61070e8161081b565b82525050565b61071d81610825565b82525050565b600060208201905061073860008301846106f6565b92915050565b60006020820190506107536000830184610705565b92915050565b600060808201905061076e6000830187610705565b61077b6020830186610714565b6107886040830185610705565b6107956060830184610705565b95945050505050565b6000604051905081810181811067ffffffffffffffff821117156107c157600080fd5b8060405250919050565b600067ffffffffffffffff8211156107e257600080fd5b602082029050919050565b600067ffffffffffffffff82111561080457600080fd5b602082029050919050565b60008115159050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000819050919050565b600060ff821690509190505600a265627a7a7230582027a763099107722af98eebabfa6a0c3e801bf23e397e56412b2169a9056587a36c6578706572696d656e74616cf50037", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806388759aeb14610051578063c4dec7b11461008e575b600080fd5b34801561005d57600080fd5b5061007860048036036100739190810190610642565b6100cb565b604051610085919061073e565b60405180910390f35b34801561009a57600080fd5b506100b560048036036100b0919081019061067f565b6100df565b6040516100c29190610723565b60405180910390f35b60006100d783836100f9565b905092915050565b60006100ee868686868661035c565b905095945050505050565b600082600060048110151561010a57fe5b602002015183600160048110151561011e57fe5b602002015184600260048110151561013257fe5b602002015185600360048110151561014657fe5b602002015185600060058110151561015a57fe5b602002015186600160058110151561016e57fe5b602002015187600260058110151561018257fe5b602002015188600360058110151561019657fe5b60200201518960046005811015156101aa57fe5b6020020151604051602001808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186815260200185815260200184815260200183815260200182815260200199505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156103275780518252602082019150602081019050602083039250610302565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905092915050565b60008060606040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152509050600181896040516020018083805190602001908083835b6020831015156103d557805182526020820191506020810190506020830392506103b0565b6001836020036101000a0380198251168184511680821785525050505050509050018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561044d5780518252602082019150602081019050602083039250610428565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208787876040516000815260200160405260405161049a9493929190610759565b60206040516020810390808403906000865af11580156104be573d6000803e3d6000fd5b5050506020604051035191508673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149250505095945050505050565b60006105128235610832565b905092915050565b600082601f830112151561052d57600080fd5b600461054061053b826107cb565b61079e565b9150818385602084028201111561055657600080fd5b60005b83811015610586578161056c8882610506565b845260208401935060208301925050600181019050610559565b5050505092915050565b600082601f83011215156105a357600080fd5b60056105b66105b1826107ed565b61079e565b915081838560208402820111156105cc57600080fd5b60005b838110156105fc57816105e2888261061a565b8452602084019350602083019250506001810190506105cf565b5050505092915050565b60006106128235610852565b905092915050565b6000610626823561085c565b905092915050565b600061063a8235610866565b905092915050565b600080610120838503121561065657600080fd5b60006106648582860161051a565b925050608061067585828601610590565b9150509250929050565b600080600080600060a0868803121561069757600080fd5b60006106a588828901610606565b95505060206106b688828901610506565b94505060406106c78882890161062e565b93505060606106d888828901610606565b92505060806106e988828901610606565b9150509295509295909350565b6106ff8161080f565b82525050565b61070e8161081b565b82525050565b61071d81610825565b82525050565b600060208201905061073860008301846106f6565b92915050565b60006020820190506107536000830184610705565b92915050565b600060808201905061076e6000830187610705565b61077b6020830186610714565b6107886040830185610705565b6107956060830184610705565b95945050505050565b6000604051905081810181811067ffffffffffffffff821117156107c157600080fd5b8060405250919050565b600067ffffffffffffffff8211156107e257600080fd5b602082029050919050565b600067ffffffffffffffff82111561080457600080fd5b602082029050919050565b60008115159050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000819050919050565b600060ff821690509190505600a265627a7a7230582027a763099107722af98eebabfa6a0c3e801bf23e397e56412b2169a9056587a36c6578706572696d656e74616cf50037", + "sourceMap": "184:672:36:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;184:672:36;;;;;;;", + "deployedSourceMap": "184:672:36:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;216:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;216:259:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;481:373;;8:9:-1;5:2;;;30:1;27;20:12;5:2;481:373:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;216:259;353:7;383:85;427:10;451:7;383:30;:85::i;:::-;376:92;;216:259;;;;:::o;481:373::-;680:4;707:140;751:10;775:14;803:2;819;835;707:30;:140::i;:::-;700:147;;481:373;;;;;;;:::o;1706:688:25:-;1841:7;1965:10;1976:1;1965:13;;;;;;;;;;;;;2010:10;2021:1;2010:13;;;;;;;;;;;;;2057:10;2068:1;2057:13;;;;;;;;;;;;;2102:10;2113:1;2102:13;;;;;;;;;;;;;2149:7;2157:1;2149:10;;;;;;;;;;;;;2192:7;2200:1;2192:10;;;;;;;;;;;;;2243:7;2251:1;2243:10;;;;;;;;;;;;;2288:7;2296:1;2288:10;;;;;;;;;;;;;2341:7;2349:1;2341:10;;;;;;;;;;;;;1931:446;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1931:446:25;;;1908:479;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1908:479:25;;;;;;;;;;;;;;;;1901:486;;1706:688;;;;:::o;2758:647::-;2955:4;3032:18;3092:22;:59;;;;;;;;;;;;;;;;;;;;3221:131;3271:9;3282:10;3254:39;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3254:39:25;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3254:39:25;;;3244:50;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3244:50:25;;;;;;;;;;;;;;;;3308:2;3324;3340;3221:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3221:131:25;;;;;;;;3208:144;;3384:14;3370:28;;:10;:28;;;3363:35;;2758:647;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;;57:66;;;;;149:615;;264:3;257:4;249:6;245:17;241:27;234:35;231:2;;;282:1;279;272:12;231:2;306:3;324:78;339:62;394:6;339:62;;;324:78;;;315:87;;419:5;478:6;525:3;517:4;509:6;505:17;500:3;496:27;493:36;490:2;;;542:1;539;532:12;490:2;567:1;552:206;577:6;574:1;571:13;552:206;;;635:3;657:37;690:3;678:10;657:37;;;652:3;645:50;718:4;713:3;709:14;702:21;;746:4;741:3;737:14;730:21;;609:149;599:1;596;592:9;587:14;;552:206;;;556:14;224:540;;;;;;;;791:615;;906:3;899:4;891:6;887:17;883:27;876:35;873:2;;;924:1;921;914:12;873:2;948:3;966:78;981:62;1036:6;981:62;;;966:78;;;957:87;;1061:5;1120:6;1167:3;1159:4;1151:6;1147:17;1142:3;1138:27;1135:36;1132:2;;;1184:1;1181;1174:12;1132:2;1209:1;1194:206;1219:6;1216:1;1213:13;1194:206;;;1277:3;1299:37;1332:3;1320:10;1299:37;;;1294:3;1287:50;1360:4;1355:3;1351:14;1344:21;;1388:4;1383:3;1379:14;1372:21;;1251:149;1241:1;1238;1234:9;1229:14;;1194:206;;;1198:14;866:540;;;;;;;;1414:118;;1481:46;1519:6;1506:20;1481:46;;;1472:55;;1466:66;;;;;1539:118;;1606:46;1644:6;1631:20;1606:46;;;1597:55;;1591:66;;;;;1664:114;;1729:44;1765:6;1752:20;1729:44;;;1720:53;;1714:64;;;;;1785:460;;;1952:3;1940:9;1931:7;1927:23;1923:33;1920:2;;;1969:1;1966;1959:12;1920:2;2004:1;2021:76;2089:7;2080:6;2069:9;2065:22;2021:76;;;2011:86;;1983:120;2134:3;2153:76;2221:7;2212:6;2201:9;2197:22;2153:76;;;2143:86;;2113:122;1914:331;;;;;;2252:739;;;;;;2422:3;2410:9;2401:7;2397:23;2393:33;2390:2;;;2439:1;2436;2429:12;2390:2;2474:1;2491:53;2536:7;2527:6;2516:9;2512:22;2491:53;;;2481:63;;2453:97;2581:2;2599:53;2644:7;2635:6;2624:9;2620:22;2599:53;;;2589:63;;2560:98;2689:2;2707:51;2750:7;2741:6;2730:9;2726:22;2707:51;;;2697:61;;2668:96;2795:2;2813:53;2858:7;2849:6;2838:9;2834:22;2813:53;;;2803:63;;2774:98;2903:3;2922:53;2967:7;2958:6;2947:9;2943:22;2922:53;;;2912:63;;2882:99;2384:607;;;;;;;;;2998:101;3065:28;3087:5;3065:28;;;3060:3;3053:41;3047:52;;;3106:110;3179:31;3204:5;3179:31;;;3174:3;3167:44;3161:55;;;3223:104;3292:29;3315:5;3292:29;;;3287:3;3280:42;3274:53;;;3334:181;;3436:2;3425:9;3421:18;3413:26;;3450:55;3502:1;3491:9;3487:17;3478:6;3450:55;;;3407:108;;;;;3522:193;;3630:2;3619:9;3615:18;3607:26;;3644:61;3702:1;3691:9;3687:17;3678:6;3644:61;;;3601:114;;;;;3722:489;;3910:3;3899:9;3895:19;3887:27;;3925:61;3983:1;3972:9;3968:17;3959:6;3925:61;;;3997:58;4051:2;4040:9;4036:18;4027:6;3997:58;;;4066:62;4124:2;4113:9;4109:18;4100:6;4066:62;;;4139;4197:2;4186:9;4182:18;4173:6;4139:62;;;3881:330;;;;;;;;4218:256;;4280:2;4274:9;4264:19;;4318:4;4310:6;4306:17;4417:6;4405:10;4402:22;4381:18;4369:10;4366:34;4363:62;4360:2;;;4438:1;4435;4428:12;4360:2;4458:10;4454:2;4447:22;4258:216;;;;;4481:233;;4638:18;4630:6;4627:30;4624:2;;;4670:1;4667;4660:12;4624:2;4699:4;4691:6;4687:17;4679:25;;4561:153;;;;4721:233;;4878:18;4870:6;4867:30;4864:2;;;4910:1;4907;4900:12;4864:2;4939:4;4931:6;4927:17;4919:25;;4801:153;;;;4961:92;;5041:5;5034:13;5027:21;5016:32;;5010:43;;;;5060:79;;5129:5;5118:16;;5112:27;;;;5146:88;;5224:4;5217:5;5213:16;5202:27;;5196:38;;;;5241:128;;5321:42;5314:5;5310:54;5299:65;;5293:76;;;;5376:79;;5445:5;5434:16;;5428:27;;;;5462:79;;5531:5;5520:16;;5514:27;;;;5548:88;;5626:4;5619:5;5615:16;5604:27;;5598:38;;;", + "source": "pragma solidity 0.4.24;\npragma experimental \"ABIEncoderV2\";\n\nimport { OrderLibrary } from \"../../core/lib/OrderLibrary.sol\";\n\n// Mock contract implementation of OrderLibrary functions\ncontract MockOrderLibrary {\n function testGenerateOrderHash(\n address[4] _addresses,\n uint[5] _values\n )\n public\n pure\n returns(bytes32)\n {\n return OrderLibrary.generateOrderHash(\n _addresses,\n _values\n );\n }\n\n function testValidateSignature(\n bytes32 _orderHash,\n address _signerAddress,\n uint8 _v,\n bytes32 _r,\n bytes32 _s\n )\n public\n pure\n returns(bool)\n {\n return OrderLibrary.validateSignature(\n _orderHash,\n _signerAddress,\n _v,\n _r,\n _s\n );\n }\n}\n\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/lib/MockOrderLibrary.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/lib/MockOrderLibrary.sol", + "exportedSymbols": { + "MockOrderLibrary": [ + 4513 + ] + }, + "id": 4514, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4464, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:36" + }, + { + "id": 4465, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:35:36" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/OrderLibrary.sol", + "file": "../../core/lib/OrderLibrary.sol", + "id": 4467, + "nodeType": "ImportDirective", + "scope": 4514, + "sourceUnit": 2982, + "src": "61:63:36", + "symbolAliases": [ + { + "foreign": 4466, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4513, + "linearizedBaseContracts": [ + 4513 + ], + "name": "MockOrderLibrary", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4486, + "nodeType": "Block", + "src": "366:109:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4482, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4471, + "src": "427:10:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + { + "argumentTypes": null, + "id": 4483, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4475, + "src": "451:7:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4480, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "383:12:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 4481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "generateOrderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2938, + "src": "383:30:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$5_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address[4] memory,uint256[5] memory) pure returns (bytes32)" + } + }, + "id": 4484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "383:85:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 4479, + "id": 4485, + "nodeType": "Return", + "src": "376:92:36" + } + ] + }, + "documentation": null, + "id": 4487, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "testGenerateOrderHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4471, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 4487, + "src": "256:21:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 4468, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "256:7:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4470, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 4469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "264:1:36", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "256:10:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4475, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 4487, + "src": "287:15:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 4472, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "287:4:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4474, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 4473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "292:1:36", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "287:7:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "246:62:36" + }, + "payable": false, + "returnParameters": { + "id": 4479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4478, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4487, + "src": "353:7:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4477, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "353:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "352:9:36" + }, + "scope": 4513, + "src": "216:259:36", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4511, + "nodeType": "Block", + "src": "690:164:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4504, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4489, + "src": "751:10:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 4505, + "name": "_signerAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "775:14:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4506, + "name": "_v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4493, + "src": "803:2:36", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 4507, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4495, + "src": "819:2:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 4508, + "name": "_s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4497, + "src": "835:2:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4502, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "707:12:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 4503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "validateSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 2980, + "src": "707:30:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32,address,uint8,bytes32,bytes32) pure returns (bool)" + } + }, + "id": 4509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "707:140:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4501, + "id": 4510, + "nodeType": "Return", + "src": "700:147:36" + } + ] + }, + "documentation": null, + "id": 4512, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "testValidateSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4489, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "521:18:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4488, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "521:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4491, + "name": "_signerAddress", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "549:22:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "549:7:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4493, + "name": "_v", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "581:8:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4492, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "581:5:36", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4495, + "name": "_r", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "599:10:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4494, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "599:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4497, + "name": "_s", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "619:10:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4496, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "619:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "511:124:36" + }, + "payable": false, + "returnParameters": { + "id": 4501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4500, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "680:4:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4499, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "680:4:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "679:6:36" + }, + "scope": 4513, + "src": "481:373:36", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4514, + "src": "184:672:36" + } + ], + "src": "0:858:36" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/lib/MockOrderLibrary.sol", + "exportedSymbols": { + "MockOrderLibrary": [ + 4513 + ] + }, + "id": 4514, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4464, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:36" + }, + { + "id": 4465, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:35:36" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/OrderLibrary.sol", + "file": "../../core/lib/OrderLibrary.sol", + "id": 4467, + "nodeType": "ImportDirective", + "scope": 4514, + "sourceUnit": 2982, + "src": "61:63:36", + "symbolAliases": [ + { + "foreign": 4466, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4513, + "linearizedBaseContracts": [ + 4513 + ], + "name": "MockOrderLibrary", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4486, + "nodeType": "Block", + "src": "366:109:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4482, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4471, + "src": "427:10:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + { + "argumentTypes": null, + "id": 4483, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4475, + "src": "451:7:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4480, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "383:12:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 4481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "generateOrderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2938, + "src": "383:30:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$5_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address[4] memory,uint256[5] memory) pure returns (bytes32)" + } + }, + "id": 4484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "383:85:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 4479, + "id": 4485, + "nodeType": "Return", + "src": "376:92:36" + } + ] + }, + "documentation": null, + "id": 4487, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "testGenerateOrderHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4471, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 4487, + "src": "256:21:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 4468, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "256:7:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4470, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 4469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "264:1:36", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "256:10:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4475, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 4487, + "src": "287:15:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 4472, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "287:4:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4474, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 4473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "292:1:36", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "287:7:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "246:62:36" + }, + "payable": false, + "returnParameters": { + "id": 4479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4478, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4487, + "src": "353:7:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4477, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "353:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "352:9:36" + }, + "scope": 4513, + "src": "216:259:36", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4511, + "nodeType": "Block", + "src": "690:164:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4504, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4489, + "src": "751:10:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 4505, + "name": "_signerAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "775:14:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4506, + "name": "_v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4493, + "src": "803:2:36", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 4507, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4495, + "src": "819:2:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 4508, + "name": "_s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4497, + "src": "835:2:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4502, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "707:12:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 4503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "validateSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 2980, + "src": "707:30:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32,address,uint8,bytes32,bytes32) pure returns (bool)" + } + }, + "id": 4509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "707:140:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4501, + "id": 4510, + "nodeType": "Return", + "src": "700:147:36" + } + ] + }, + "documentation": null, + "id": 4512, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "testValidateSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4489, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "521:18:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4488, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "521:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4491, + "name": "_signerAddress", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "549:22:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "549:7:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4493, + "name": "_v", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "581:8:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4492, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "581:5:36", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4495, + "name": "_r", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "599:10:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4494, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "599:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4497, + "name": "_s", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "619:10:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4496, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "619:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "511:124:36" + }, + "payable": false, + "returnParameters": { + "id": 4501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4500, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "680:4:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4499, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "680:4:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "679:6:36" + }, + "scope": 4513, + "src": "481:373:36", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4514, + "src": "184:672:36" + } + ], + "src": "0:858:36" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.916Z" +} \ No newline at end of file diff --git a/artifacts/json/MockTokenInvalidReturn.json b/artifacts/json/MockTokenInvalidReturn.json new file mode 100644 index 000000000..34c0e8694 --- /dev/null +++ b/artifacts/json/MockTokenInvalidReturn.json @@ -0,0 +1,10448 @@ +{ + "contractName": "MockTokenInvalidReturn", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "initialAccount", + "type": "address" + }, + { + "name": "initialBalance", + "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_addedValue", + "type": "uint256" + } + ], + "name": "increaseApproval", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseApproval", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040516200147f3803806200147f8339810180604052810190808051906020019092919080519060200190929190805182019291906020018051820192919060200180519060200190929190505050836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836005819055508260039080519060200190620000c3929190620000ef565b508160049080519060200190620000dc929190620000ef565b508060028190555050505050506200019e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013257805160ff191683800117855562000163565b8280016001018555821562000163579182015b828111156200016257825182559160200191906001019062000145565b5b50905062000172919062000176565b5090565b6200019b91905b80821115620001975760008160009055506001016200017d565b5090565b90565b6112d180620001ae6000396000f3006080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a557806323b872dd146101d0578063313ce56714610251578063661884631461027c57806370a08231146102dd57806395d89b4114610334578063a9059cbb146103c4578063d73dd62314610425578063dd62ed3e14610486575b600080fd5b3480156100c057600080fd5b506100c96104fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059b565b6040518082815260200191505060405180910390f35b3480156101b157600080fd5b506101ba61068d565b6040518082815260200191505060405180910390f35b3480156101dc57600080fd5b5061023b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610697565b6040518082815260200191505060405180910390f35b34801561025d57600080fd5b50610266610a51565b6040518082815260200191505060405180910390f35b34801561028857600080fd5b506102c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a57565b6040518082815260200191505060405180910390f35b3480156102e957600080fd5b5061031e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ce8565b6040518082815260200191505060405180910390f35b34801561034057600080fd5b50610349610d30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038957808201518184015260208101905061036e565b50505050905090810190601f1680156103b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d057600080fd5b5061040f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dce565b6040518082815260200191505060405180910390f35b34801561043157600080fd5b50610470600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fed565b6040518082815260200191505060405180910390f35b34801561049257600080fd5b506104e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111e9565b6040518082815260200191505060405180910390f35b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105935780601f1061056857610100808354040283529160200191610593565b820191906000526020600020905b81548152906001019060200180831161057657829003601f168201915b505050505081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36004905092915050565b6000600554905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106d457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561072157600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107ac57600080fd5b6107fd826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610890826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061096182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600490509392505050565b60025481565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b68576000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bfc565b610b7b838261127090919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600491505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dc65780601f10610d9b57610100808354040283529160200191610dc6565b820191906000526020600020905b815481529060010190602001808311610da957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e0b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e5857600080fd5b610ea9826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f3c826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36004905092915050565b600061107e82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128990919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36004905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561127e57fe5b818303905092915050565b6000818301905082811015151561129c57fe5b809050929150505600a165627a7a72305820bb5d4b4a60423647aa96e3179879ea60a3aeb1e357e25eb38a785ecd44a98a9d0029", + "deployedBytecode": "0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a557806323b872dd146101d0578063313ce56714610251578063661884631461027c57806370a08231146102dd57806395d89b4114610334578063a9059cbb146103c4578063d73dd62314610425578063dd62ed3e14610486575b600080fd5b3480156100c057600080fd5b506100c96104fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059b565b6040518082815260200191505060405180910390f35b3480156101b157600080fd5b506101ba61068d565b6040518082815260200191505060405180910390f35b3480156101dc57600080fd5b5061023b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610697565b6040518082815260200191505060405180910390f35b34801561025d57600080fd5b50610266610a51565b6040518082815260200191505060405180910390f35b34801561028857600080fd5b506102c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a57565b6040518082815260200191505060405180910390f35b3480156102e957600080fd5b5061031e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ce8565b6040518082815260200191505060405180910390f35b34801561034057600080fd5b50610349610d30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038957808201518184015260208101905061036e565b50505050905090810190601f1680156103b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d057600080fd5b5061040f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dce565b6040518082815260200191505060405180910390f35b34801561043157600080fd5b50610470600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fed565b6040518082815260200191505060405180910390f35b34801561049257600080fd5b506104e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111e9565b6040518082815260200191505060405180910390f35b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105935780601f1061056857610100808354040283529160200191610593565b820191906000526020600020905b81548152906001019060200180831161057657829003601f168201915b505050505081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36004905092915050565b6000600554905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106d457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561072157600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107ac57600080fd5b6107fd826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610890826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061096182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600490509392505050565b60025481565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b68576000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bfc565b610b7b838261127090919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600491505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dc65780601f10610d9b57610100808354040283529160200191610dc6565b820191906000526020600020905b815481529060010190602001808311610da957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e0b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e5857600080fd5b610ea9826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f3c826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36004905092915050565b600061107e82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128990919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36004905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561127e57fe5b818303905092915050565b6000818301905082811015151561129c57fe5b809050929150505600a165627a7a72305820bb5d4b4a60423647aa96e3179879ea60a3aeb1e357e25eb38a785ecd44a98a9d0029", + "sourceMap": "113:5382:31:-;;;582:295;8:9:-1;5:2;;;30:1;27;20:12;5:2;582:295:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;758:14;731:8;:24;740:14;731:24;;;;;;;;;;;;;;;:41;;;;792:14;778:11;:28;;;;819:5;812:4;:12;;;;;;;;;;;;:::i;:::-;;839:7;830:6;:16;;;;;;;;;;;;:::i;:::-;;863:9;852:8;:20;;;;582:295;;;;;113:5382;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "113:5382:31:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;315:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;315:18:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;315:18:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3178:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3178:209:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;937:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;937:82:31;;;;;;;;;;;;;;;;;;;;;;;2091:469;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2091:469:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;288:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;288:23:31;;;;;;;;;;;;;;;;;;;;;;;5063:430;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5063:430:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1717:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1717:99:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;337:20:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;337:20:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1173:342;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1173:342:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4311:295;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4311:295:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3706:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3706:153:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;315:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3178:209::-;3264:7;3313:6;3281:7;:19;3289:10;3281:19;;;;;;;;;;;;;;;:29;3301:8;3281:29;;;;;;;;;;;;;;;:38;;;;3351:8;3330:38;;3339:10;3330:38;;;3361:6;3330:38;;;;;;;;;;;;;;;;;;3381:1;3374:8;;3178:209;;;;:::o;937:82::-;981:7;1003:11;;996:18;;937:82;:::o;2091:469::-;2196:7;2236:1;2221:17;;:3;:17;;;;2213:26;;;;;;;;2263:8;:15;2272:5;2263:15;;;;;;;;;;;;;;;;2253:6;:25;;2245:34;;;;;;;;2303:7;:14;2311:5;2303:14;;;;;;;;;;;;;;;:26;2318:10;2303:26;;;;;;;;;;;;;;;;2293:6;:36;;2285:45;;;;;;;;2355:27;2375:6;2355:8;:15;2364:5;2355:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;2337:8;:15;2346:5;2337:15;;;;;;;;;;;;;;;:45;;;;2404:25;2422:6;2404:8;:13;2413:3;2404:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;2388:8;:13;2397:3;2388:13;;;;;;;;;;;;;;;:41;;;;2464:38;2495:6;2464:7;:14;2472:5;2464:14;;;;;;;;;;;;;;;:26;2479:10;2464:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;2435:7;:14;2443:5;2435:14;;;;;;;;;;;;;;;:26;2450:10;2435:26;;;;;;;;;;;;;;;:67;;;;2529:3;2513:28;;2522:5;2513:28;;;2534:6;2513:28;;;;;;;;;;;;;;;;;;2554:1;2547:8;;2091:469;;;;;:::o;288:23::-;;;;:::o;5063:430::-;5168:7;5185:16;5204:7;:19;5212:10;5204:19;;;;;;;;;;;;;;;:29;5224:8;5204:29;;;;;;;;;;;;;;;;5185:48;;5262:8;5243:16;:27;5239:164;;;5312:1;5280:7;:19;5288:10;5280:19;;;;;;;;;;;;;;;:29;5300:8;5280:29;;;;;;;;;;;;;;;:33;;;;5239:164;;;5366:30;5379:16;5366:8;:12;;:30;;;;:::i;:::-;5334:7;:19;5342:10;5334:19;;;;;;;;;;;;;;;:29;5354:8;5334:29;;;;;;;;;;;;;;;:62;;;;5239:164;5434:8;5413:61;;5422:10;5413:61;;;5444:7;:19;5452:10;5444:19;;;;;;;;;;;;;;;:29;5464:8;5444:29;;;;;;;;;;;;;;;;5413:61;;;;;;;;;;;;;;;;;;5487:1;5480:8;;5063:430;;;;;:::o;1717:99::-;1773:7;1795:8;:16;1804:6;1795:16;;;;;;;;;;;;;;;;1788:23;;1717:99;;;:::o;337:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1173:342::-;1255:7;1295:1;1280:17;;:3;:17;;;;1272:26;;;;;;;;1322:8;:20;1331:10;1322:20;;;;;;;;;;;;;;;;1312:6;:30;;1304:39;;;;;;;;1373:32;1398:6;1373:8;:20;1382:10;1373:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;1350:8;:20;1359:10;1350:20;;;;;;;;;;;;;;;:55;;;;1427:25;1445:6;1427:8;:13;1436:3;1427:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1411:8;:13;1420:3;1411:13;;;;;;;;;;;;;;;:41;;;;1484:3;1463:33;;1472:10;1463:33;;;1489:6;1463:33;;;;;;;;;;;;;;;;;;1509:1;1502:8;;1173:342;;;;:::o;4311:295::-;4411:7;4468:46;4502:11;4468:7;:19;4476:10;4468:19;;;;;;;;;;;;;;;:29;4488:8;4468:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;4428:7;:19;4436:10;4428:19;;;;;;;;;;;;;;;:29;4448:8;4428:29;;;;;;;;;;;;;;;:87;;;;4547:8;4526:61;;4535:10;4526:61;;;4557:7;:19;4565:10;4557:19;;;;;;;;;;;;;;;:29;4577:8;4557:29;;;;;;;;;;;;;;;;4526:61;;;;;;;;;;;;;;;;;;4600:1;4593:8;;4311:295;;;;:::o;3706:153::-;3805:7;3829;:15;3837:6;3829:15;;;;;;;;;;;;;;;:25;3845:8;3829:25;;;;;;;;;;;;;;;;3822:32;;3706:153;;;;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "source": "pragma solidity 0.4.24;\n\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\n\n// mock class using BasicToken\ncontract MockTokenInvalidReturn {\n\n using SafeMath for uint;\n mapping(address => uint256) balances;\n mapping (address => mapping (address => uint256)) internal allowed;\n\n uint256 public decimals;\n string public name;\n string public symbol;\n uint256 public totalSupply;\n\n event Transfer(\n address indexed from,\n address indexed to,\n uint256 value\n );\n\n event Approval(\n address indexed owner,\n address indexed spender,\n uint256 value\n );\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol,\n uint256 _decimals)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n decimals = _decimals;\n }\n\n /**\n * @dev Total number of tokens in existence\n */\n function totalSupply() public view returns (uint256) {\n return totalSupply;\n }\n\n /**\n * @dev Transfer token for a specified address\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(\n address _to,\n uint256 _value\n )\n public\n returns(uint256)\n {\n require(_to != address(0));\n require(_value <= balances[msg.sender]);\n\n balances[msg.sender] = balances[msg.sender].sub(_value);\n balances[_to] = balances[_to].add(_value);\n emit Transfer(msg.sender, _to, _value);\n return 4;\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param _owner The address to query the the balance of.\n * @return An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address _owner) public view returns (uint256) {\n return balances[_owner];\n }\n\n /**\n * @dev Transfer tokens from one address to another\n * @param _from address The address which you want to send tokens from\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transferFrom(\n address _from,\n address _to,\n uint256 _value\n )\n public\n returns(uint256)\n {\n require(_to != address(0));\n require(_value <= balances[_from]);\n require(_value <= allowed[_from][msg.sender]);\n\n balances[_from] = balances[_from].sub(_value);\n balances[_to] = balances[_to].add(_value);\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n emit Transfer(_from, _to, _value);\n return 4;\n }\n\n /**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param _spender The address which will spend the funds.\n * @param _value The amount of tokens to be spent.\n */\n function approve(\n address _spender,\n uint256 _value\n )\n public\n returns(uint256)\n {\n allowed[msg.sender][_spender] = _value;\n emit Approval(msg.sender, _spender, _value);\n return 4;\n }\n\n /**\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\n * @param _owner address The address which owns the funds.\n * @param _spender address The address which will spend the funds.\n * @return A uint256 specifying the amount of tokens still available for the spender.\n */\n function allowance(\n address _owner,\n address _spender\n )\n public\n view\n returns (uint256)\n {\n return allowed[_owner][_spender];\n }\n\n /**\n * @dev Increase the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To increment\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param _spender The address which will spend the funds.\n * @param _addedValue The amount of tokens to increase the allowance by.\n */\n function increaseApproval(\n address _spender,\n uint256 _addedValue\n )\n public\n returns(uint256)\n {\n allowed[msg.sender][_spender] = (\n allowed[msg.sender][_spender].add(_addedValue));\n emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n return 4;\n }\n\n /**\n * @dev Decrease the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To decrement\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param _spender The address which will spend the funds.\n * @param _subtractedValue The amount of tokens to decrease the allowance by.\n */\n function decreaseApproval(\n address _spender,\n uint256 _subtractedValue\n )\n public\n returns(uint256)\n {\n uint256 oldValue = allowed[msg.sender][_spender];\n if (_subtractedValue > oldValue) {\n allowed[msg.sender][_spender] = 0;\n } else {\n allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);\n }\n emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n return 4;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/MockTokenInvalidReturn.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/MockTokenInvalidReturn.sol", + "exportedSymbols": { + "MockTokenInvalidReturn": [ + 3918 + ] + }, + "id": 3919, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3531, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:31" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 3532, + "nodeType": "ImportDirective", + "scope": 3919, + "sourceUnit": 4739, + "src": "25:55:31", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3918, + "linearizedBaseContracts": [ + 3918 + ], + "name": "MockTokenInvalidReturn", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3535, + "libraryName": { + "contractScope": null, + "id": 3533, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "156:8:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "150:24:31", + "typeName": { + "id": 3534, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "169:4:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3539, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "177:36:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3538, + "keyType": { + "id": 3536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "185:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "177:27:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "196:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3545, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "217:66:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 3544, + "keyType": { + "id": 3540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "226:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "217:49:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3543, + "keyType": { + "id": 3541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "246:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "237:28:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "257:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3547, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "288:23:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "288:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3549, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "315:18:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3548, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "315:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3551, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "337:20:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3550, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "337:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3553, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "361:26:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "361:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3561, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3555, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3561, + "src": "412:20:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3554, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "412:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3557, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3561, + "src": "438:18:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "438:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3559, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 3561, + "src": "462:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "462:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "406:73:31" + }, + "src": "392:88:31" + }, + { + "anonymous": false, + "documentation": null, + "id": 3569, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3563, + "indexed": true, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3569, + "src": "504:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3562, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "504:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3565, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3569, + "src": "531:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3564, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "531:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3567, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 3569, + "src": "560:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "498:79:31" + }, + "src": "484:94:31" + }, + { + "body": { + "id": 3604, + "nodeType": "Block", + "src": "725:152:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3582, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "731:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3584, + "indexExpression": { + "argumentTypes": null, + "id": 3583, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3571, + "src": "740:14:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "731:24:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3585, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3573, + "src": "758:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "731:41:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3587, + "nodeType": "ExpressionStatement", + "src": "731:41:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3588, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3553 + ], + "referencedDeclaration": 3553, + "src": "778:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3589, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3573, + "src": "792:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "778:28:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3591, + "nodeType": "ExpressionStatement", + "src": "778:28:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3592, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "812:4:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3593, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3575, + "src": "819:5:31", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "812:12:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3595, + "nodeType": "ExpressionStatement", + "src": "812:12:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3596, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "830:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3597, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3577, + "src": "839:7:31", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "830:16:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3599, + "nodeType": "ExpressionStatement", + "src": "830:16:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3600, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "852:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3601, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3579, + "src": "863:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "852:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3603, + "nodeType": "ExpressionStatement", + "src": "852:20:31" + } + ] + }, + "documentation": null, + "id": 3605, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3571, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "599:22:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "599:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3573, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "627:22:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3572, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "627:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3575, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "655:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3574, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "655:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3577, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "673:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3576, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "673:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3579, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "693:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3578, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "693:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:118:31" + }, + "payable": false, + "returnParameters": { + "id": 3581, + "nodeType": "ParameterList", + "parameters": [], + "src": "725:0:31" + }, + "scope": 3918, + "src": "582:295:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3612, + "nodeType": "Block", + "src": "990:29:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3610, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3553 + ], + "referencedDeclaration": 3553, + "src": "1003:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3609, + "id": 3611, + "nodeType": "Return", + "src": "996:18:31" + } + ] + }, + "documentation": "@dev Total number of tokens in existence", + "id": 3613, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3606, + "nodeType": "ParameterList", + "parameters": [], + "src": "957:2:31" + }, + "payable": false, + "returnParameters": { + "id": 3609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3608, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3613, + "src": "981:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3607, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "981:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "980:9:31" + }, + "scope": 3918, + "src": "937:82:31", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3672, + "nodeType": "Block", + "src": "1266:249:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3623, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1280:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1295:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1287:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1287:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1280:17:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3622, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1272:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1272:26:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3629, + "nodeType": "ExpressionStatement", + "src": "1272:26:31" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3631, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1312:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3632, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1322:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3635, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3633, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1331:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1331:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1322:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1312:30:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3630, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1304:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1304:39:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3638, + "nodeType": "ExpressionStatement", + "src": "1304:39:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3639, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1350:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3642, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3640, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1359:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1359:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1350:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3648, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1398:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3643, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1373:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3646, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3644, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1382:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1382:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1373:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "1373:24:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1373:32:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1350:55:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3651, + "nodeType": "ExpressionStatement", + "src": "1350:55:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3652, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1411:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3654, + "indexExpression": { + "argumentTypes": null, + "id": 3653, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1420:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1411:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3659, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1445:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3655, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1427:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3657, + "indexExpression": { + "argumentTypes": null, + "id": 3656, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1436:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1427:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "1427:17:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1427:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1411:41:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3662, + "nodeType": "ExpressionStatement", + "src": "1411:41:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3664, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1472:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1472:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3666, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1484:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3667, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1489:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3663, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "1463:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1463:33:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3669, + "nodeType": "EmitStatement", + "src": "1458:38:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1509:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3621, + "id": 3671, + "nodeType": "Return", + "src": "1502:8:31" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", + "id": 3673, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3615, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3673, + "src": "1196:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3614, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1196:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3617, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3673, + "src": "1213:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3616, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1213:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1190:41:31" + }, + "payable": false, + "returnParameters": { + "id": 3621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3620, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3673, + "src": "1255:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3619, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1255:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1254:9:31" + }, + "scope": 3918, + "src": "1173:342:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3684, + "nodeType": "Block", + "src": "1782:34:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3680, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1795:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3682, + "indexExpression": { + "argumentTypes": null, + "id": 3681, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "1804:6:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1795:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3679, + "id": 3683, + "nodeType": "Return", + "src": "1788:23:31" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", + "id": 3685, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3675, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 3685, + "src": "1736:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1736:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1735:16:31" + }, + "payable": false, + "returnParameters": { + "id": 3679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3685, + "src": "1773:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1773:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:9:31" + }, + "scope": 3918, + "src": "1717:99:31", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3770, + "nodeType": "Block", + "src": "2207:353:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3697, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2221:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2236:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2228:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2228:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2221:17:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3696, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2213:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2213:26:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3703, + "nodeType": "ExpressionStatement", + "src": "2213:26:31" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3705, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2253:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3706, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2263:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3708, + "indexExpression": { + "argumentTypes": null, + "id": 3707, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2272:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2263:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2253:25:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3704, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2245:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2245:34:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3711, + "nodeType": "ExpressionStatement", + "src": "2245:34:31" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3713, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2293:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3714, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "2303:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3716, + "indexExpression": { + "argumentTypes": null, + "id": 3715, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2311:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2303:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3719, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3717, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2318:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2318:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2303:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2293:36:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3712, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2285:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2285:45:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3722, + "nodeType": "ExpressionStatement", + "src": "2285:45:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3723, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2337:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3725, + "indexExpression": { + "argumentTypes": null, + "id": 3724, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2346:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2337:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3730, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2375:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3726, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2355:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3728, + "indexExpression": { + "argumentTypes": null, + "id": 3727, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2364:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2355:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2355:19:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2355:27:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2337:45:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3733, + "nodeType": "ExpressionStatement", + "src": "2337:45:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3734, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2388:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3736, + "indexExpression": { + "argumentTypes": null, + "id": 3735, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2397:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2388:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3741, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2422:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3737, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2404:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3739, + "indexExpression": { + "argumentTypes": null, + "id": 3738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2413:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "2404:17:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2404:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2388:41:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3744, + "nodeType": "ExpressionStatement", + "src": "2388:41:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3745, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "2435:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3749, + "indexExpression": { + "argumentTypes": null, + "id": 3746, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2443:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2435:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3750, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3747, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2450:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2450:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2435:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3758, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2495:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3751, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "2464:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3753, + "indexExpression": { + "argumentTypes": null, + "id": 3752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2472:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2464:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3756, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3754, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2479:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2479:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2464:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2464:30:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2464:38:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2435:67:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3761, + "nodeType": "ExpressionStatement", + "src": "2435:67:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3763, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2522:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3764, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2529:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3765, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2534:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3762, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "2513:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2513:28:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3767, + "nodeType": "EmitStatement", + "src": "2508:33:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2554:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3695, + "id": 3769, + "nodeType": "Return", + "src": "2547:8:31" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", + "id": 3771, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3687, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2118:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3686, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3689, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2137:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2137:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3691, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2154:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2154:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2112:60:31" + }, + "payable": false, + "returnParameters": { + "id": 3695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3694, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2196:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2196:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2195:9:31" + }, + "scope": 3918, + "src": "2091:469:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3798, + "nodeType": "Block", + "src": "3275:112:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3780, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "3281:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3784, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3781, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "3289:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3289:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3281:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3785, + "indexExpression": { + "argumentTypes": null, + "id": 3783, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3773, + "src": "3301:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3281:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3786, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3775, + "src": "3313:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3281:38:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3788, + "nodeType": "ExpressionStatement", + "src": "3281:38:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "3339:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3339:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3792, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3773, + "src": "3351:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3793, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3775, + "src": "3361:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3789, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3569, + "src": "3330:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3330:38:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3795, + "nodeType": "EmitStatement", + "src": "3325:43:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3381:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3779, + "id": 3797, + "nodeType": "Return", + "src": "3374:8:31" + } + ] + }, + "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.", + "id": 3799, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3773, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3799, + "src": "3200:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3772, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3200:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3775, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3799, + "src": "3222:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3222:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3194:46:31" + }, + "payable": false, + "returnParameters": { + "id": 3779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3778, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3799, + "src": "3264:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3264:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3263:9:31" + }, + "scope": 3918, + "src": "3178:209:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3814, + "nodeType": "Block", + "src": "3816:43:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3808, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "3829:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3810, + "indexExpression": { + "argumentTypes": null, + "id": 3809, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3801, + "src": "3837:6:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3829:15:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3812, + "indexExpression": { + "argumentTypes": null, + "id": 3811, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3803, + "src": "3845:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3829:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3807, + "id": 3813, + "nodeType": "Return", + "src": "3822:32:31" + } + ] + }, + "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param _owner address The address which owns the funds.\n@param _spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", + "id": 3815, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3804, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3801, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 3815, + "src": "3730:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3800, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3730:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3803, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3815, + "src": "3750:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3750:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3724:47:31" + }, + "payable": false, + "returnParameters": { + "id": 3807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3806, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3815, + "src": "3805:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3805, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3805:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3804:9:31" + }, + "scope": 3918, + "src": "3706:153:31", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3856, + "nodeType": "Block", + "src": "4422:184:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3824, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "4428:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3828, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3825, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4436:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4436:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4428:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3829, + "indexExpression": { + "argumentTypes": null, + "id": 3827, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4448:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4428:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3837, + "name": "_addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3819, + "src": "4502:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3830, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "4468:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3833, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3831, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4476:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4476:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4468:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3835, + "indexExpression": { + "argumentTypes": null, + "id": 3834, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4488:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4468:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4468:33:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4468:46:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3839, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4460:55:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4428:87:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3841, + "nodeType": "ExpressionStatement", + "src": "4428:87:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3843, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4535:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4535:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3845, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4547:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3846, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "4557:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3849, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3847, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4565:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4565:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4557:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3851, + "indexExpression": { + "argumentTypes": null, + "id": 3850, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4577:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4557:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3842, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3569, + "src": "4526:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4526:61:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3853, + "nodeType": "EmitStatement", + "src": "4521:66:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4600:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3823, + "id": 3855, + "nodeType": "Return", + "src": "4593:8:31" + } + ] + }, + "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.", + "id": 3857, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "increaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3817, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3857, + "src": "4342:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3816, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4342:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3819, + "name": "_addedValue", + "nodeType": "VariableDeclaration", + "scope": 3857, + "src": "4364:19:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4364:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4336:51:31" + }, + "payable": false, + "returnParameters": { + "id": 3823, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3822, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3857, + "src": "4411:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3821, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4411:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4410:9:31" + }, + "scope": 3918, + "src": "4311:295:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3916, + "nodeType": "Block", + "src": "5179:314:31", + "statements": [ + { + "assignments": [ + 3867 + ], + "declarations": [ + { + "constant": false, + "id": 3867, + "name": "oldValue", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5185:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3866, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5185:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3874, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3868, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5204:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3871, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3869, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5212:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5212:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5204:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3873, + "indexExpression": { + "argumentTypes": null, + "id": 3872, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5224:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5204:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5185:48:31" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3875, + "name": "_subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "5243:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 3876, + "name": "oldValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3867, + "src": "5262:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5243:27:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3900, + "nodeType": "Block", + "src": "5326:77:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3888, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5334:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3892, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3889, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5342:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5342:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5334:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3893, + "indexExpression": { + "argumentTypes": null, + "id": 3891, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5354:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5334:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3896, + "name": "_subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "5379:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3894, + "name": "oldValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3867, + "src": "5366:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "5366:12:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5366:30:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5334:62:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3899, + "nodeType": "ExpressionStatement", + "src": "5334:62:31" + } + ] + }, + "id": 3901, + "nodeType": "IfStatement", + "src": "5239:164:31", + "trueBody": { + "id": 3887, + "nodeType": "Block", + "src": "5272:48:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3878, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5280:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3882, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3879, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5288:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5288:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5280:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3883, + "indexExpression": { + "argumentTypes": null, + "id": 3881, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5300:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5280:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 3884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5312:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5280:33:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3886, + "nodeType": "ExpressionStatement", + "src": "5280:33:31" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3903, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5422:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5422:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3905, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5434:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3906, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5444:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3909, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3907, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5452:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5452:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5444:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3911, + "indexExpression": { + "argumentTypes": null, + "id": 3910, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5464:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5444:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3902, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3569, + "src": "5413:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5413:61:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3913, + "nodeType": "EmitStatement", + "src": "5408:66:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5487:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3865, + "id": 3915, + "nodeType": "Return", + "src": "5480:8:31" + } + ] + }, + "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.", + "id": 3917, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "decreaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3862, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3859, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5094:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5094:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3861, + "name": "_subtractedValue", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5116:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3860, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5116:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5088:56:31" + }, + "payable": false, + "returnParameters": { + "id": 3865, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3864, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5168:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3863, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5168:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5167:9:31" + }, + "scope": 3918, + "src": "5063:430:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3919, + "src": "113:5382:31" + } + ], + "src": "0:5496:31" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/MockTokenInvalidReturn.sol", + "exportedSymbols": { + "MockTokenInvalidReturn": [ + 3918 + ] + }, + "id": 3919, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3531, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:31" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 3532, + "nodeType": "ImportDirective", + "scope": 3919, + "sourceUnit": 4739, + "src": "25:55:31", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3918, + "linearizedBaseContracts": [ + 3918 + ], + "name": "MockTokenInvalidReturn", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3535, + "libraryName": { + "contractScope": null, + "id": 3533, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "156:8:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "150:24:31", + "typeName": { + "id": 3534, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "169:4:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3539, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "177:36:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3538, + "keyType": { + "id": 3536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "185:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "177:27:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "196:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3545, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "217:66:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 3544, + "keyType": { + "id": 3540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "226:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "217:49:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3543, + "keyType": { + "id": 3541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "246:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "237:28:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "257:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3547, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "288:23:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "288:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3549, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "315:18:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3548, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "315:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3551, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "337:20:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3550, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "337:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3553, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "361:26:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "361:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3561, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3555, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3561, + "src": "412:20:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3554, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "412:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3557, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3561, + "src": "438:18:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "438:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3559, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 3561, + "src": "462:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "462:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "406:73:31" + }, + "src": "392:88:31" + }, + { + "anonymous": false, + "documentation": null, + "id": 3569, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3563, + "indexed": true, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3569, + "src": "504:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3562, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "504:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3565, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3569, + "src": "531:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3564, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "531:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3567, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 3569, + "src": "560:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "498:79:31" + }, + "src": "484:94:31" + }, + { + "body": { + "id": 3604, + "nodeType": "Block", + "src": "725:152:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3582, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "731:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3584, + "indexExpression": { + "argumentTypes": null, + "id": 3583, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3571, + "src": "740:14:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "731:24:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3585, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3573, + "src": "758:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "731:41:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3587, + "nodeType": "ExpressionStatement", + "src": "731:41:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3588, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3553 + ], + "referencedDeclaration": 3553, + "src": "778:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3589, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3573, + "src": "792:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "778:28:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3591, + "nodeType": "ExpressionStatement", + "src": "778:28:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3592, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "812:4:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3593, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3575, + "src": "819:5:31", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "812:12:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3595, + "nodeType": "ExpressionStatement", + "src": "812:12:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3596, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "830:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3597, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3577, + "src": "839:7:31", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "830:16:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3599, + "nodeType": "ExpressionStatement", + "src": "830:16:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3600, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "852:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3601, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3579, + "src": "863:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "852:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3603, + "nodeType": "ExpressionStatement", + "src": "852:20:31" + } + ] + }, + "documentation": null, + "id": 3605, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3571, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "599:22:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "599:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3573, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "627:22:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3572, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "627:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3575, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "655:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3574, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "655:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3577, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "673:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3576, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "673:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3579, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "693:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3578, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "693:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:118:31" + }, + "payable": false, + "returnParameters": { + "id": 3581, + "nodeType": "ParameterList", + "parameters": [], + "src": "725:0:31" + }, + "scope": 3918, + "src": "582:295:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3612, + "nodeType": "Block", + "src": "990:29:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3610, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3553 + ], + "referencedDeclaration": 3553, + "src": "1003:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3609, + "id": 3611, + "nodeType": "Return", + "src": "996:18:31" + } + ] + }, + "documentation": "@dev Total number of tokens in existence", + "id": 3613, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3606, + "nodeType": "ParameterList", + "parameters": [], + "src": "957:2:31" + }, + "payable": false, + "returnParameters": { + "id": 3609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3608, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3613, + "src": "981:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3607, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "981:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "980:9:31" + }, + "scope": 3918, + "src": "937:82:31", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3672, + "nodeType": "Block", + "src": "1266:249:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3623, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1280:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1295:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1287:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1287:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1280:17:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3622, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1272:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1272:26:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3629, + "nodeType": "ExpressionStatement", + "src": "1272:26:31" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3631, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1312:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3632, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1322:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3635, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3633, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1331:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1331:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1322:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1312:30:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3630, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1304:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1304:39:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3638, + "nodeType": "ExpressionStatement", + "src": "1304:39:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3639, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1350:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3642, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3640, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1359:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1359:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1350:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3648, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1398:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3643, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1373:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3646, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3644, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1382:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1382:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1373:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "1373:24:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1373:32:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1350:55:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3651, + "nodeType": "ExpressionStatement", + "src": "1350:55:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3652, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1411:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3654, + "indexExpression": { + "argumentTypes": null, + "id": 3653, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1420:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1411:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3659, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1445:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3655, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1427:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3657, + "indexExpression": { + "argumentTypes": null, + "id": 3656, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1436:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1427:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "1427:17:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1427:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1411:41:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3662, + "nodeType": "ExpressionStatement", + "src": "1411:41:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3664, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1472:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1472:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3666, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1484:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3667, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1489:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3663, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "1463:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1463:33:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3669, + "nodeType": "EmitStatement", + "src": "1458:38:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1509:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3621, + "id": 3671, + "nodeType": "Return", + "src": "1502:8:31" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", + "id": 3673, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3615, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3673, + "src": "1196:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3614, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1196:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3617, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3673, + "src": "1213:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3616, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1213:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1190:41:31" + }, + "payable": false, + "returnParameters": { + "id": 3621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3620, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3673, + "src": "1255:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3619, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1255:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1254:9:31" + }, + "scope": 3918, + "src": "1173:342:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3684, + "nodeType": "Block", + "src": "1782:34:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3680, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1795:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3682, + "indexExpression": { + "argumentTypes": null, + "id": 3681, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "1804:6:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1795:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3679, + "id": 3683, + "nodeType": "Return", + "src": "1788:23:31" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", + "id": 3685, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3675, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 3685, + "src": "1736:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1736:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1735:16:31" + }, + "payable": false, + "returnParameters": { + "id": 3679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3685, + "src": "1773:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1773:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:9:31" + }, + "scope": 3918, + "src": "1717:99:31", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3770, + "nodeType": "Block", + "src": "2207:353:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3697, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2221:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2236:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2228:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2228:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2221:17:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3696, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2213:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2213:26:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3703, + "nodeType": "ExpressionStatement", + "src": "2213:26:31" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3705, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2253:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3706, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2263:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3708, + "indexExpression": { + "argumentTypes": null, + "id": 3707, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2272:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2263:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2253:25:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3704, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2245:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2245:34:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3711, + "nodeType": "ExpressionStatement", + "src": "2245:34:31" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3713, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2293:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3714, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "2303:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3716, + "indexExpression": { + "argumentTypes": null, + "id": 3715, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2311:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2303:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3719, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3717, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2318:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2318:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2303:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2293:36:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3712, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2285:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2285:45:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3722, + "nodeType": "ExpressionStatement", + "src": "2285:45:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3723, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2337:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3725, + "indexExpression": { + "argumentTypes": null, + "id": 3724, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2346:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2337:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3730, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2375:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3726, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2355:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3728, + "indexExpression": { + "argumentTypes": null, + "id": 3727, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2364:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2355:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2355:19:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2355:27:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2337:45:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3733, + "nodeType": "ExpressionStatement", + "src": "2337:45:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3734, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2388:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3736, + "indexExpression": { + "argumentTypes": null, + "id": 3735, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2397:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2388:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3741, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2422:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3737, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2404:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3739, + "indexExpression": { + "argumentTypes": null, + "id": 3738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2413:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "2404:17:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2404:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2388:41:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3744, + "nodeType": "ExpressionStatement", + "src": "2388:41:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3745, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "2435:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3749, + "indexExpression": { + "argumentTypes": null, + "id": 3746, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2443:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2435:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3750, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3747, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2450:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2450:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2435:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3758, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2495:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3751, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "2464:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3753, + "indexExpression": { + "argumentTypes": null, + "id": 3752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2472:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2464:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3756, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3754, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2479:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2479:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2464:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2464:30:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2464:38:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2435:67:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3761, + "nodeType": "ExpressionStatement", + "src": "2435:67:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3763, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2522:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3764, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2529:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3765, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2534:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3762, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "2513:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2513:28:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3767, + "nodeType": "EmitStatement", + "src": "2508:33:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2554:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3695, + "id": 3769, + "nodeType": "Return", + "src": "2547:8:31" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", + "id": 3771, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3687, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2118:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3686, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3689, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2137:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2137:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3691, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2154:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2154:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2112:60:31" + }, + "payable": false, + "returnParameters": { + "id": 3695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3694, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2196:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2196:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2195:9:31" + }, + "scope": 3918, + "src": "2091:469:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3798, + "nodeType": "Block", + "src": "3275:112:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3780, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "3281:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3784, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3781, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "3289:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3289:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3281:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3785, + "indexExpression": { + "argumentTypes": null, + "id": 3783, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3773, + "src": "3301:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3281:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3786, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3775, + "src": "3313:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3281:38:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3788, + "nodeType": "ExpressionStatement", + "src": "3281:38:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "3339:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3339:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3792, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3773, + "src": "3351:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3793, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3775, + "src": "3361:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3789, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3569, + "src": "3330:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3330:38:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3795, + "nodeType": "EmitStatement", + "src": "3325:43:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3381:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3779, + "id": 3797, + "nodeType": "Return", + "src": "3374:8:31" + } + ] + }, + "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.", + "id": 3799, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3773, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3799, + "src": "3200:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3772, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3200:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3775, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3799, + "src": "3222:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3222:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3194:46:31" + }, + "payable": false, + "returnParameters": { + "id": 3779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3778, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3799, + "src": "3264:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3264:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3263:9:31" + }, + "scope": 3918, + "src": "3178:209:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3814, + "nodeType": "Block", + "src": "3816:43:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3808, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "3829:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3810, + "indexExpression": { + "argumentTypes": null, + "id": 3809, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3801, + "src": "3837:6:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3829:15:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3812, + "indexExpression": { + "argumentTypes": null, + "id": 3811, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3803, + "src": "3845:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3829:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3807, + "id": 3813, + "nodeType": "Return", + "src": "3822:32:31" + } + ] + }, + "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param _owner address The address which owns the funds.\n@param _spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", + "id": 3815, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3804, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3801, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 3815, + "src": "3730:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3800, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3730:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3803, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3815, + "src": "3750:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3750:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3724:47:31" + }, + "payable": false, + "returnParameters": { + "id": 3807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3806, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3815, + "src": "3805:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3805, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3805:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3804:9:31" + }, + "scope": 3918, + "src": "3706:153:31", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3856, + "nodeType": "Block", + "src": "4422:184:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3824, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "4428:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3828, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3825, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4436:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4436:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4428:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3829, + "indexExpression": { + "argumentTypes": null, + "id": 3827, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4448:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4428:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3837, + "name": "_addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3819, + "src": "4502:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3830, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "4468:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3833, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3831, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4476:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4476:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4468:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3835, + "indexExpression": { + "argumentTypes": null, + "id": 3834, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4488:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4468:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4468:33:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4468:46:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3839, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4460:55:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4428:87:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3841, + "nodeType": "ExpressionStatement", + "src": "4428:87:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3843, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4535:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4535:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3845, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4547:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3846, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "4557:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3849, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3847, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4565:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4565:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4557:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3851, + "indexExpression": { + "argumentTypes": null, + "id": 3850, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4577:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4557:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3842, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3569, + "src": "4526:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4526:61:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3853, + "nodeType": "EmitStatement", + "src": "4521:66:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4600:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3823, + "id": 3855, + "nodeType": "Return", + "src": "4593:8:31" + } + ] + }, + "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.", + "id": 3857, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "increaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3817, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3857, + "src": "4342:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3816, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4342:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3819, + "name": "_addedValue", + "nodeType": "VariableDeclaration", + "scope": 3857, + "src": "4364:19:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4364:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4336:51:31" + }, + "payable": false, + "returnParameters": { + "id": 3823, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3822, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3857, + "src": "4411:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3821, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4411:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4410:9:31" + }, + "scope": 3918, + "src": "4311:295:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3916, + "nodeType": "Block", + "src": "5179:314:31", + "statements": [ + { + "assignments": [ + 3867 + ], + "declarations": [ + { + "constant": false, + "id": 3867, + "name": "oldValue", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5185:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3866, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5185:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3874, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3868, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5204:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3871, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3869, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5212:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5212:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5204:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3873, + "indexExpression": { + "argumentTypes": null, + "id": 3872, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5224:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5204:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5185:48:31" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3875, + "name": "_subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "5243:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 3876, + "name": "oldValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3867, + "src": "5262:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5243:27:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3900, + "nodeType": "Block", + "src": "5326:77:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3888, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5334:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3892, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3889, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5342:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5342:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5334:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3893, + "indexExpression": { + "argumentTypes": null, + "id": 3891, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5354:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5334:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3896, + "name": "_subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "5379:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3894, + "name": "oldValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3867, + "src": "5366:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "5366:12:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5366:30:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5334:62:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3899, + "nodeType": "ExpressionStatement", + "src": "5334:62:31" + } + ] + }, + "id": 3901, + "nodeType": "IfStatement", + "src": "5239:164:31", + "trueBody": { + "id": 3887, + "nodeType": "Block", + "src": "5272:48:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3878, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5280:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3882, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3879, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5288:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5288:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5280:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3883, + "indexExpression": { + "argumentTypes": null, + "id": 3881, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5300:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5280:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 3884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5312:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5280:33:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3886, + "nodeType": "ExpressionStatement", + "src": "5280:33:31" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3903, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5422:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5422:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3905, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5434:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3906, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5444:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3909, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3907, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5452:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5452:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5444:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3911, + "indexExpression": { + "argumentTypes": null, + "id": 3910, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5464:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5444:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3902, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3569, + "src": "5413:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5413:61:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3913, + "nodeType": "EmitStatement", + "src": "5408:66:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5487:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3865, + "id": 3915, + "nodeType": "Return", + "src": "5480:8:31" + } + ] + }, + "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.", + "id": 3917, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "decreaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3862, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3859, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5094:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5094:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3861, + "name": "_subtractedValue", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5116:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3860, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5116:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5088:56:31" + }, + "payable": false, + "returnParameters": { + "id": 3865, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3864, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5168:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3863, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5168:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5167:9:31" + }, + "scope": 3918, + "src": "5063:430:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3919, + "src": "113:5382:31" + } + ], + "src": "0:5496:31" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.910Z" +} \ No newline at end of file diff --git a/artifacts/json/MockTokenNoXferReturn.json b/artifacts/json/MockTokenNoXferReturn.json new file mode 100644 index 000000000..23fec8940 --- /dev/null +++ b/artifacts/json/MockTokenNoXferReturn.json @@ -0,0 +1,5956 @@ +{ + "contractName": "MockTokenNoXferReturn", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "initialAccount", + "type": "address" + }, + { + "name": "initialBalance", + "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50604051610c7d380380610c7d8339810180604052810190808051906020019092919080519060200190929190805182019291906020018051820192919060200180519060200190929190505050836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360058190555082600390805190602001906100be9291906100e7565b5081600490805190602001906100d59291906100e7565b5080600281905550505050505061018c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061012857805160ff1916838001178555610156565b82800160010185558215610156579182015b8281111561015557825182559160200191906001019061013a565b5b5090506101639190610167565b5090565b61018991905b8082111561018557600081600090555060010161016d565b5090565b90565b610ae28061019b6000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610093578063095ea7b31461012357806318160ddd1461017057806323b872dd1461019b578063313ce5671461020857806370a082311461023357806395d89b411461028a578063a9059cbb1461031a575b600080fd5b34801561009f57600080fd5b506100a8610367565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100e85780820151818401526020810190506100cd565b50505050905090810190601f1680156101155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012f57600080fd5b5061016e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610405565b005b34801561017c57600080fd5b5061018561048a565b6040518082815260200191505060405180910390f35b3480156101a757600080fd5b50610206600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610494565b005b34801561021457600080fd5b5061021d6107e2565b6040518082815260200191505060405180910390f35b34801561023f57600080fd5b50610274600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107e8565b6040518082815260200191505060405180910390f35b34801561029657600080fd5b5061029f610830565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102df5780820151818401526020810190506102c4565b50505050905090810190601f16801561030c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032657600080fd5b50610365600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108ce565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103fd5780601f106103d2576101008083540402835291602001916103fd565b820191906000526020600020905b8154815290600101906020018083116103e057829003601f168201915b505050505081565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000600554905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156104d057600080fd5b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561051d57600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156105a857600080fd5b6105f9816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a8190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061068c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061075d81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a8190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60025481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108c65780601f1061089b576101008083540402835291602001916108c6565b820191906000526020600020905b8154815290600101906020018083116108a957829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561090a57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561095757600080fd5b6109a8816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a8190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a3b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000828211151515610a8f57fe5b818303905092915050565b60008183019050828110151515610aad57fe5b809050929150505600a165627a7a723058208c8951d5465a4dd7df8d578b0ce98a0d93f021a048abac0d227425d5f67904560029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610093578063095ea7b31461012357806318160ddd1461017057806323b872dd1461019b578063313ce5671461020857806370a082311461023357806395d89b411461028a578063a9059cbb1461031a575b600080fd5b34801561009f57600080fd5b506100a8610367565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100e85780820151818401526020810190506100cd565b50505050905090810190601f1680156101155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012f57600080fd5b5061016e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610405565b005b34801561017c57600080fd5b5061018561048a565b6040518082815260200191505060405180910390f35b3480156101a757600080fd5b50610206600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610494565b005b34801561021457600080fd5b5061021d6107e2565b6040518082815260200191505060405180910390f35b34801561023f57600080fd5b50610274600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107e8565b6040518082815260200191505060405180910390f35b34801561029657600080fd5b5061029f610830565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102df5780820151818401526020810190506102c4565b50505050905090810190601f16801561030c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032657600080fd5b50610365600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108ce565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103fd5780601f106103d2576101008083540402835291602001916103fd565b820191906000526020600020905b8154815290600101906020018083116103e057829003601f168201915b505050505081565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000600554905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156104d057600080fd5b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561051d57600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156105a857600080fd5b6105f9816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a8190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061068c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061075d81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a8190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60025481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108c65780601f1061089b576101008083540402835291602001916108c6565b820191906000526020600020905b8154815290600101906020018083116108a957829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561090a57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561095757600080fd5b6109a8816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a8190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a3b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000828211151515610a8f57fe5b818303905092915050565b60008183019050828110151515610aad57fe5b809050929150505600a165627a7a723058208c8951d5465a4dd7df8d578b0ce98a0d93f021a048abac0d227425d5f67904560029", + "sourceMap": "113:2816:32:-;;;395:295;8:9:-1;5:2;;;30:1;27;20:12;5:2;395:295:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;571:14;544:8;:24;553:14;544:24;;;;;;;;;;;;;;;:41;;;;605:14;591:11;:28;;;;632:5;625:4;:12;;;;;;;;;;;;:::i;:::-;;652:7;643:6;:16;;;;;;;;;;;;:::i;:::-;;676:9;665:8;:20;;;;395:295;;;;;113:2816;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "113:2816:32:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;318:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;318:18:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;318:18:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2820:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2820:107:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;750:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;750:82:32;;;;;;;;;;;;;;;;;;;;;;;1807:395;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1807:395:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;291:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;291:23:32;;;;;;;;;;;;;;;;;;;;;;;1433:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1433:99:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;340:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;340:20:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;340:20:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;986:245;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:245:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;318:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2820:107::-;2916:6;2884:7;:19;2892:10;2884:19;;;;;;;;;;;;;;;:29;2904:8;2884:29;;;;;;;;;;;;;;;:38;;;;2820:107;;:::o;750:82::-;794:7;816:11;;809:18;;750:82;:::o;1807:395::-;1931:1;1916:17;;:3;:17;;;;1908:26;;;;;;;;1958:8;:15;1967:5;1958:15;;;;;;;;;;;;;;;;1948:6;:25;;1940:34;;;;;;;;1998:7;:14;2006:5;1998:14;;;;;;;;;;;;;;;:26;2013:10;1998:26;;;;;;;;;;;;;;;;1988:6;:36;;1980:45;;;;;;;;2050:27;2070:6;2050:8;:15;2059:5;2050:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;2032:8;:15;2041:5;2032:15;;;;;;;;;;;;;;;:45;;;;2099:25;2117:6;2099:8;:13;2108:3;2099:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;2083:8;:13;2092:3;2083:13;;;;;;;;;;;;;;;:41;;;;2159:38;2190:6;2159:7;:14;2167:5;2159:14;;;;;;;;;;;;;;;:26;2174:10;2159:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;2130:7;:14;2138:5;2130:14;;;;;;;;;;;;;;;:26;2145:10;2130:26;;;;;;;;;;;;;;;:67;;;;1807:395;;;:::o;291:23::-;;;;:::o;1433:99::-;1489:7;1511:8;:16;1520:6;1511:16;;;;;;;;;;;;;;;;1504:23;;1433:99;;;:::o;340:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;986:245::-;1069:1;1054:17;;:3;:17;;;;1046:26;;;;;;;;1096:8;:20;1105:10;1096:20;;;;;;;;;;;;;;;;1086:6;:30;;1078:39;;;;;;;;1147:32;1172:6;1147:8;:20;1156:10;1147:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;1124:8;:20;1133:10;1124:20;;;;;;;;;;;;;;;:55;;;;1201:25;1219:6;1201:8;:13;1210:3;1201:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1185:8;:13;1194:3;1185:13;;;;;;;;;;;;;;;:41;;;;986:245;;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "source": "pragma solidity 0.4.24;\n\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\n\n// mock class using BasicToken\ncontract MockTokenNoXferReturn {\n\n using SafeMath for uint256;\n\n mapping(address => uint256) balances;\n mapping (address => mapping (address => uint256)) internal allowed;\n\n uint256 public decimals;\n string public name;\n string public symbol;\n uint256 public totalSupply;\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol,\n uint256 _decimals)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n decimals = _decimals;\n }\n\n /**\n * @dev Total number of tokens in existence\n */\n function totalSupply() public view returns (uint256) {\n return totalSupply;\n }\n\n /**\n * @dev Transfer token for a specified address\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(address _to, uint256 _value) public {\n require(_to != address(0));\n require(_value <= balances[msg.sender]);\n\n balances[msg.sender] = balances[msg.sender].sub(_value);\n balances[_to] = balances[_to].add(_value);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param _owner The address to query the the balance of.\n * @return An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address _owner) public view returns (uint256) {\n return balances[_owner];\n }\n\n /**\n * @dev Transfer tokens from one address to another\n * @param _from address The address which you want to send tokens from\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transferFrom(\n address _from,\n address _to,\n uint256 _value\n )\n public\n {\n require(_to != address(0));\n require(_value <= balances[_from]);\n require(_value <= allowed[_from][msg.sender]);\n\n balances[_from] = balances[_from].sub(_value);\n balances[_to] = balances[_to].add(_value);\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n }\n\n /**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param _spender The address which will spend the funds.\n * @param _value The amount of tokens to be spent.\n */\n function approve(address _spender, uint256 _value) public {\n allowed[msg.sender][_spender] = _value;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/MockTokenNoXferReturn.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/MockTokenNoXferReturn.sol", + "exportedSymbols": { + "MockTokenNoXferReturn": [ + 4141 + ] + }, + "id": 4142, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3920, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:32" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 3921, + "nodeType": "ImportDirective", + "scope": 4142, + "sourceUnit": 4739, + "src": "25:55:32", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4141, + "linearizedBaseContracts": [ + 4141 + ], + "name": "MockTokenNoXferReturn", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3924, + "libraryName": { + "contractScope": null, + "id": 3922, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "155:8:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "149:27:32", + "typeName": { + "id": 3923, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "168:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3928, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "180:36:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3927, + "keyType": { + "id": 3925, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "188:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "180:27:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "199:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3934, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "220:66:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 3933, + "keyType": { + "id": 3929, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "229:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "220:49:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3932, + "keyType": { + "id": 3930, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "249:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "240:28:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3931, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "260:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3936, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "291:23:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "291:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3938, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "318:18:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3937, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "318:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3940, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "340:20:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3939, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "340:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3942, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "364:26:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "364:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 3977, + "nodeType": "Block", + "src": "538:152:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3955, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "544:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3957, + "indexExpression": { + "argumentTypes": null, + "id": 3956, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3944, + "src": "553:14:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "544:24:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3958, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3946, + "src": "571:14:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "544:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3960, + "nodeType": "ExpressionStatement", + "src": "544:41:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3961, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3942 + ], + "referencedDeclaration": 3942, + "src": "591:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3962, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3946, + "src": "605:14:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "591:28:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3964, + "nodeType": "ExpressionStatement", + "src": "591:28:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3965, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3938, + "src": "625:4:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3966, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3948, + "src": "632:5:32", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "625:12:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3968, + "nodeType": "ExpressionStatement", + "src": "625:12:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3969, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3940, + "src": "643:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3970, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3950, + "src": "652:7:32", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "643:16:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3972, + "nodeType": "ExpressionStatement", + "src": "643:16:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3973, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3936, + "src": "665:8:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3974, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3952, + "src": "676:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "665:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3976, + "nodeType": "ExpressionStatement", + "src": "665:20:32" + } + ] + }, + "documentation": null, + "id": 3978, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3953, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3944, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "412:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "412:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3946, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "440:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3945, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "440:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3948, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "468:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3947, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "468:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3950, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "486:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3949, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "486:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3952, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "506:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3951, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "506:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "406:118:32" + }, + "payable": false, + "returnParameters": { + "id": 3954, + "nodeType": "ParameterList", + "parameters": [], + "src": "538:0:32" + }, + "scope": 4141, + "src": "395:295:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3985, + "nodeType": "Block", + "src": "803:29:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3983, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3942 + ], + "referencedDeclaration": 3942, + "src": "816:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3982, + "id": 3984, + "nodeType": "Return", + "src": "809:18:32" + } + ] + }, + "documentation": "@dev Total number of tokens in existence", + "id": 3986, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3979, + "nodeType": "ParameterList", + "parameters": [], + "src": "770:2:32" + }, + "payable": false, + "returnParameters": { + "id": 3982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3981, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3986, + "src": "794:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "794:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "793:9:32" + }, + "scope": 4141, + "src": "750:82:32", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4034, + "nodeType": "Block", + "src": "1040:191:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3994, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "1054:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1069:1:32", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1061:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1061:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1054:17:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3993, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1046:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1046:26:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4000, + "nodeType": "ExpressionStatement", + "src": "1046:26:32" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4002, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3990, + "src": "1086:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4003, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1096:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4006, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4004, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1105:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1105:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1096:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1086:30:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4001, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1078:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1078:39:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4009, + "nodeType": "ExpressionStatement", + "src": "1078:39:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4010, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1124:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4013, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4011, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1133:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1133:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1124:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4019, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3990, + "src": "1172:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4014, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1147:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4017, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4015, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1156:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1156:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1147:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "1147:24:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1147:32:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1124:55:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4022, + "nodeType": "ExpressionStatement", + "src": "1124:55:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4023, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1185:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4025, + "indexExpression": { + "argumentTypes": null, + "id": 4024, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "1194:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1185:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4030, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3990, + "src": "1219:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4026, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1201:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4028, + "indexExpression": { + "argumentTypes": null, + "id": 4027, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "1210:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1201:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "1201:17:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1201:25:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1185:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4033, + "nodeType": "ExpressionStatement", + "src": "1185:41:32" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", + "id": 4035, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3988, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 4035, + "src": "1004:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3987, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1004:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3990, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4035, + "src": "1017:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1017:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1003:29:32" + }, + "payable": false, + "returnParameters": { + "id": 3992, + "nodeType": "ParameterList", + "parameters": [], + "src": "1040:0:32" + }, + "scope": 4141, + "src": "986:245:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4046, + "nodeType": "Block", + "src": "1498:34:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4042, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1511:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4044, + "indexExpression": { + "argumentTypes": null, + "id": 4043, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4037, + "src": "1520:6:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1511:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4041, + "id": 4045, + "nodeType": "Return", + "src": "1504:23:32" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", + "id": 4047, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4037, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 4047, + "src": "1452:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1452:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1451:16:32" + }, + "payable": false, + "returnParameters": { + "id": 4041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4040, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4047, + "src": "1489:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4039, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1489:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1488:9:32" + }, + "scope": 4141, + "src": "1433:99:32", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4122, + "nodeType": "Block", + "src": "1902:300:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4057, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "1916:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1931:1:32", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4058, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1923:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1923:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1916:17:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4056, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1908:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1908:26:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4063, + "nodeType": "ExpressionStatement", + "src": "1908:26:32" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4065, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "1948:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4066, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1958:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4068, + "indexExpression": { + "argumentTypes": null, + "id": 4067, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "1967:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1958:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1948:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4064, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1940:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1940:34:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4071, + "nodeType": "ExpressionStatement", + "src": "1940:34:32" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4073, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "1988:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4074, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "1998:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4076, + "indexExpression": { + "argumentTypes": null, + "id": 4075, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2006:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1998:14:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4079, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4077, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2013:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2013:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1998:26:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1988:36:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4072, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1980:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1980:45:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4082, + "nodeType": "ExpressionStatement", + "src": "1980:45:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4083, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2032:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4085, + "indexExpression": { + "argumentTypes": null, + "id": 4084, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2041:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2032:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4090, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "2070:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4086, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2050:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4088, + "indexExpression": { + "argumentTypes": null, + "id": 4087, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2059:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2050:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2050:19:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2050:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2032:45:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4093, + "nodeType": "ExpressionStatement", + "src": "2032:45:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4094, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2083:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4096, + "indexExpression": { + "argumentTypes": null, + "id": 4095, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "2092:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2083:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4101, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "2117:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4097, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2099:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4099, + "indexExpression": { + "argumentTypes": null, + "id": 4098, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "2108:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2099:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "2099:17:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2099:25:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2083:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4104, + "nodeType": "ExpressionStatement", + "src": "2083:41:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4105, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "2130:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4109, + "indexExpression": { + "argumentTypes": null, + "id": 4106, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2138:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2130:14:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4110, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4107, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2145:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2145:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2130:26:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4118, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "2190:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4111, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "2159:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4113, + "indexExpression": { + "argumentTypes": null, + "id": 4112, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2167:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2159:14:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4116, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4114, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2174:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2174:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2159:26:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2159:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2159:38:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2130:67:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4121, + "nodeType": "ExpressionStatement", + "src": "2130:67:32" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", + "id": 4123, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4049, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 4123, + "src": "1834:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4048, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1834:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4051, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 4123, + "src": "1853:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4050, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1853:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4053, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4123, + "src": "1870:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4052, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1870:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1828:60:32" + }, + "payable": false, + "returnParameters": { + "id": 4055, + "nodeType": "ParameterList", + "parameters": [], + "src": "1902:0:32" + }, + "scope": 4141, + "src": "1807:395:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4139, + "nodeType": "Block", + "src": "2878:49:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4130, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "2884:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4134, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4131, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2892:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2892:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2884:19:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4135, + "indexExpression": { + "argumentTypes": null, + "id": 4133, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4125, + "src": "2904:8:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2884:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4136, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4127, + "src": "2916:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2884:38:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4138, + "nodeType": "ExpressionStatement", + "src": "2884:38:32" + } + ] + }, + "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.", + "id": 4140, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4125, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 4140, + "src": "2837:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2837:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4127, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4140, + "src": "2855:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2855:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2836:34:32" + }, + "payable": false, + "returnParameters": { + "id": 4129, + "nodeType": "ParameterList", + "parameters": [], + "src": "2878:0:32" + }, + "scope": 4141, + "src": "2820:107:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4142, + "src": "113:2816:32" + } + ], + "src": "0:2930:32" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/MockTokenNoXferReturn.sol", + "exportedSymbols": { + "MockTokenNoXferReturn": [ + 4141 + ] + }, + "id": 4142, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3920, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:32" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 3921, + "nodeType": "ImportDirective", + "scope": 4142, + "sourceUnit": 4739, + "src": "25:55:32", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4141, + "linearizedBaseContracts": [ + 4141 + ], + "name": "MockTokenNoXferReturn", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3924, + "libraryName": { + "contractScope": null, + "id": 3922, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "155:8:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "149:27:32", + "typeName": { + "id": 3923, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "168:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3928, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "180:36:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3927, + "keyType": { + "id": 3925, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "188:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "180:27:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "199:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3934, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "220:66:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 3933, + "keyType": { + "id": 3929, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "229:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "220:49:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3932, + "keyType": { + "id": 3930, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "249:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "240:28:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3931, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "260:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3936, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "291:23:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "291:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3938, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "318:18:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3937, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "318:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3940, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "340:20:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3939, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "340:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3942, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "364:26:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "364:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 3977, + "nodeType": "Block", + "src": "538:152:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3955, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "544:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3957, + "indexExpression": { + "argumentTypes": null, + "id": 3956, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3944, + "src": "553:14:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "544:24:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3958, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3946, + "src": "571:14:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "544:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3960, + "nodeType": "ExpressionStatement", + "src": "544:41:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3961, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3942 + ], + "referencedDeclaration": 3942, + "src": "591:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3962, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3946, + "src": "605:14:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "591:28:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3964, + "nodeType": "ExpressionStatement", + "src": "591:28:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3965, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3938, + "src": "625:4:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3966, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3948, + "src": "632:5:32", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "625:12:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3968, + "nodeType": "ExpressionStatement", + "src": "625:12:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3969, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3940, + "src": "643:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3970, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3950, + "src": "652:7:32", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "643:16:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3972, + "nodeType": "ExpressionStatement", + "src": "643:16:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3973, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3936, + "src": "665:8:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3974, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3952, + "src": "676:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "665:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3976, + "nodeType": "ExpressionStatement", + "src": "665:20:32" + } + ] + }, + "documentation": null, + "id": 3978, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3953, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3944, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "412:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "412:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3946, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "440:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3945, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "440:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3948, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "468:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3947, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "468:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3950, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "486:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3949, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "486:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3952, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "506:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3951, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "506:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "406:118:32" + }, + "payable": false, + "returnParameters": { + "id": 3954, + "nodeType": "ParameterList", + "parameters": [], + "src": "538:0:32" + }, + "scope": 4141, + "src": "395:295:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3985, + "nodeType": "Block", + "src": "803:29:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3983, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3942 + ], + "referencedDeclaration": 3942, + "src": "816:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3982, + "id": 3984, + "nodeType": "Return", + "src": "809:18:32" + } + ] + }, + "documentation": "@dev Total number of tokens in existence", + "id": 3986, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3979, + "nodeType": "ParameterList", + "parameters": [], + "src": "770:2:32" + }, + "payable": false, + "returnParameters": { + "id": 3982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3981, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3986, + "src": "794:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "794:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "793:9:32" + }, + "scope": 4141, + "src": "750:82:32", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4034, + "nodeType": "Block", + "src": "1040:191:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3994, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "1054:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1069:1:32", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1061:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1061:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1054:17:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3993, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1046:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1046:26:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4000, + "nodeType": "ExpressionStatement", + "src": "1046:26:32" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4002, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3990, + "src": "1086:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4003, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1096:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4006, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4004, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1105:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1105:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1096:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1086:30:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4001, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1078:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1078:39:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4009, + "nodeType": "ExpressionStatement", + "src": "1078:39:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4010, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1124:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4013, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4011, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1133:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1133:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1124:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4019, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3990, + "src": "1172:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4014, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1147:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4017, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4015, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1156:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1156:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1147:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "1147:24:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1147:32:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1124:55:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4022, + "nodeType": "ExpressionStatement", + "src": "1124:55:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4023, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1185:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4025, + "indexExpression": { + "argumentTypes": null, + "id": 4024, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "1194:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1185:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4030, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3990, + "src": "1219:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4026, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1201:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4028, + "indexExpression": { + "argumentTypes": null, + "id": 4027, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "1210:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1201:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "1201:17:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1201:25:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1185:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4033, + "nodeType": "ExpressionStatement", + "src": "1185:41:32" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", + "id": 4035, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3988, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 4035, + "src": "1004:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3987, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1004:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3990, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4035, + "src": "1017:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1017:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1003:29:32" + }, + "payable": false, + "returnParameters": { + "id": 3992, + "nodeType": "ParameterList", + "parameters": [], + "src": "1040:0:32" + }, + "scope": 4141, + "src": "986:245:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4046, + "nodeType": "Block", + "src": "1498:34:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4042, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1511:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4044, + "indexExpression": { + "argumentTypes": null, + "id": 4043, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4037, + "src": "1520:6:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1511:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4041, + "id": 4045, + "nodeType": "Return", + "src": "1504:23:32" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", + "id": 4047, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4037, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 4047, + "src": "1452:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1452:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1451:16:32" + }, + "payable": false, + "returnParameters": { + "id": 4041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4040, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4047, + "src": "1489:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4039, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1489:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1488:9:32" + }, + "scope": 4141, + "src": "1433:99:32", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4122, + "nodeType": "Block", + "src": "1902:300:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4057, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "1916:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1931:1:32", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4058, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1923:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1923:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1916:17:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4056, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1908:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1908:26:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4063, + "nodeType": "ExpressionStatement", + "src": "1908:26:32" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4065, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "1948:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4066, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1958:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4068, + "indexExpression": { + "argumentTypes": null, + "id": 4067, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "1967:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1958:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1948:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4064, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1940:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1940:34:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4071, + "nodeType": "ExpressionStatement", + "src": "1940:34:32" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4073, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "1988:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4074, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "1998:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4076, + "indexExpression": { + "argumentTypes": null, + "id": 4075, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2006:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1998:14:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4079, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4077, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2013:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2013:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1998:26:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1988:36:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4072, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1980:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1980:45:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4082, + "nodeType": "ExpressionStatement", + "src": "1980:45:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4083, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2032:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4085, + "indexExpression": { + "argumentTypes": null, + "id": 4084, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2041:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2032:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4090, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "2070:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4086, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2050:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4088, + "indexExpression": { + "argumentTypes": null, + "id": 4087, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2059:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2050:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2050:19:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2050:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2032:45:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4093, + "nodeType": "ExpressionStatement", + "src": "2032:45:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4094, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2083:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4096, + "indexExpression": { + "argumentTypes": null, + "id": 4095, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "2092:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2083:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4101, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "2117:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4097, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2099:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4099, + "indexExpression": { + "argumentTypes": null, + "id": 4098, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "2108:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2099:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "2099:17:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2099:25:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2083:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4104, + "nodeType": "ExpressionStatement", + "src": "2083:41:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4105, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "2130:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4109, + "indexExpression": { + "argumentTypes": null, + "id": 4106, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2138:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2130:14:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4110, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4107, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2145:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2145:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2130:26:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4118, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "2190:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4111, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "2159:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4113, + "indexExpression": { + "argumentTypes": null, + "id": 4112, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2167:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2159:14:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4116, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4114, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2174:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2174:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2159:26:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2159:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2159:38:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2130:67:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4121, + "nodeType": "ExpressionStatement", + "src": "2130:67:32" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", + "id": 4123, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4049, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 4123, + "src": "1834:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4048, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1834:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4051, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 4123, + "src": "1853:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4050, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1853:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4053, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4123, + "src": "1870:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4052, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1870:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1828:60:32" + }, + "payable": false, + "returnParameters": { + "id": 4055, + "nodeType": "ParameterList", + "parameters": [], + "src": "1902:0:32" + }, + "scope": 4141, + "src": "1807:395:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4139, + "nodeType": "Block", + "src": "2878:49:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4130, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "2884:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4134, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4131, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2892:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2892:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2884:19:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4135, + "indexExpression": { + "argumentTypes": null, + "id": 4133, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4125, + "src": "2904:8:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2884:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4136, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4127, + "src": "2916:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2884:38:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4138, + "nodeType": "ExpressionStatement", + "src": "2884:38:32" + } + ] + }, + "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.", + "id": 4140, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4125, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 4140, + "src": "2837:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2837:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4127, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4140, + "src": "2855:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2855:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2836:34:32" + }, + "payable": false, + "returnParameters": { + "id": 4129, + "nodeType": "ParameterList", + "parameters": [], + "src": "2878:0:32" + }, + "scope": 4141, + "src": "2820:107:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4142, + "src": "113:2816:32" + } + ], + "src": "0:2930:32" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.913Z" +} \ No newline at end of file diff --git a/artifacts/json/MockZeroExOrderDataHandlerLibrary.json b/artifacts/json/MockZeroExOrderDataHandlerLibrary.json new file mode 100644 index 000000000..b19823a02 --- /dev/null +++ b/artifacts/json/MockZeroExOrderDataHandlerLibrary.json @@ -0,0 +1,3420 @@ +{ + "contractName": "MockZeroExOrderDataHandlerLibrary", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_orderData", + "type": "bytes" + } + ], + "name": "parseOrderDataHeader", + "outputs": [ + { + "name": "", + "type": "uint256[4]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderData", + "type": "bytes" + } + ], + "name": "parseFillAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderData", + "type": "bytes" + } + ], + "name": "parseSignature", + "outputs": [ + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderData", + "type": "bytes" + } + ], + "name": "parseZeroExOrderData", + "outputs": [ + { + "name": "", + "type": "address[4]" + }, + { + "name": "", + "type": "uint256[6]" + }, + { + "name": "", + "type": "bytes" + }, + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610d90806100206000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806339a3968b14610067578063aa688c58146100a4578063c66479bb146100e4578063f596d10a14610121575b600080fd5b34801561007357600080fd5b5061008e6004803603610089919081019061093d565b61015e565b60405161009b9190610bf4565b60405180910390f35b3480156100b057600080fd5b506100cb60048036036100c6919081019061093d565b610170565b6040516100db9493929190610b21565b60405180910390f35b3480156100f057600080fd5b5061010b6004803603610106919081019061093d565b6102e2565b6040516101189190610b77565b60405180910390f35b34801561012d57600080fd5b506101486004803603610143919081019061093d565b610337565b6040516101559190610b92565b60405180910390f35b600061016982610368565b9050919050565b61017861079b565b6101806107be565b60608061018b6107e1565b61019486610389565b9050608060405190810160405280826000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525060c060405190810160405280836080015181526020018360a0015181526020018360c0015181526020018360e00151815260200183610100015181526020018361012001518152508261014001518361016001518191508090509450945094509450509193509193565b6102ea61089b565b6102f26108be565b6102fb836103dd565b90506080604051908101604052808260000151815260200182602001518152602001826040015181526020018260600151815250915050919050565b60606103416108be565b600061034c846103dd565b91508160000151905061035f8482610426565b92505050919050565b60008060006103768461045e565b9150608082015190508092505050919050565b6103916107e1565b6103996108be565b6103a16107e1565b6103aa846103dd565b91506103d16103c2858460000151856020015161046e565b836040015184606001516104cb565b90508092505050919050565b6103e56108be565b6103ed6108be565b60006103f88461045e565b9050805182526020810151602083015260408101516040830152606081015160608301528192505050919050565b60608061045260a061044260a0866105e290919063ffffffff16565b866105fe9092919063ffffffff16565b90508091505092915050565b6000602082019050809050919050565b6060600080606061047e8761045e565b925061049386846105e290919063ffffffff16565b91506104bc826104ac87856105e290919063ffffffff16565b896105fe9092919063ffffffff16565b90508093505050509392505050565b6104d36107e1565b6104db6107e1565b60006104e68661045e565b9050805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e0830152610100810151610100830152610120810151610120830152610575610140610565610140886105e290919063ffffffff16565b886105fe9092919063ffffffff16565b8261014001819052506105cd610596610140876105e290919063ffffffff16565b6105bd866105af6101408a6105e290919063ffffffff16565b6105e290919063ffffffff16565b886105fe9092919063ffffffff16565b82610160018190525081925050509392505050565b600081830190508281101515156105f557fe5b80905092915050565b6060818311151515610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90610bb4565b60405180910390fd5b8351821115151561068b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068290610bd4565b60405180910390fd5b8282036040519080825280601f01601f1916602001820160405280156106c05781602001602082028038833980820191505090505b5090506106e16106cf8261045e565b846106d98761045e565b0183516106eb565b8090509392505050565b6020811015610715576001816020036101000a038019835116818551168082178652505050610795565b8282141561072257610796565b828211156107615760208103905080820181840181515b828510156107565784518652602085019450602086019550610739565b808252505050610794565b60208103905080820181840183515b8186121561078d5782518252602083039250602082039150610770565b8086525050505b5b5b505050565b608060405190810160405280600490602082028038833980820191505090505090565b60c060405190810160405280600690602082028038833980820191505090505090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b608060405190810160405280600490602082028038833980820191505090505090565b608060405190810160405280600081526020016000815260200160008152602001600081525090565b600082601f83011215156108fa57600080fd5b813561090d61090882610c3c565b610c0f565b9150808252602083016020830185838301111561092957600080fd5b610934838284610d03565b50505092915050565b60006020828403121561094f57600080fd5b600082013567ffffffffffffffff81111561096957600080fd5b610975848285016108e7565b91505092915050565b61098781610cd9565b82525050565b61099681610c86565b61099f82610c68565b60005b828110156109d1576109b585835161097e565b6109be82610cb2565b91506020850194506001810190506109a2565b5050505050565b6109e181610c91565b6109ea82610c72565b60005b82811015610a1c57610a00858351610b12565b610a0982610cbf565b91506020850194506001810190506109ed565b5050505050565b610a2c81610c9c565b610a3582610c7c565b60005b82811015610a6757610a4b858351610b12565b610a5482610ccc565b9150602085019450600181019050610a38565b5050505050565b6000610a7982610ca7565b808452610a8d816020860160208601610d12565b610a9681610d45565b602085010191505092915050565b6000601a82527f46524f4d5f4c4553535f5448414e5f544f5f52455155495245440000000000006020830152604082019050919050565b6000601c82527f544f5f4c4553535f5448414e5f4c454e4754485f5245515549524544000000006020830152604082019050919050565b610b1b81610cf9565b82525050565b600061018082019050610b37600083018761098d565b610b446080830186610a23565b818103610140830152610b578185610a6e565b9050818103610160830152610b6c8184610a6e565b905095945050505050565b6000608082019050610b8c60008301846109d8565b92915050565b60006020820190508181036000830152610bac8184610a6e565b905092915050565b60006020820190508181036000830152610bcd81610aa4565b9050919050565b60006020820190508181036000830152610bed81610adb565b9050919050565b6000602082019050610c096000830184610b12565b92915050565b6000604051905081810181811067ffffffffffffffff82111715610c3257600080fd5b8060405250919050565b600067ffffffffffffffff821115610c5357600080fd5b601f19601f8301169050602081019050919050565b6000819050919050565b6000819050919050565b6000819050919050565b600060049050919050565b600060049050919050565b600060069050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610d30578082015181840152602081019050610d15565b83811115610d3f576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820922bbb8221df4fc7b3d37b6a2f16a4e3aaf92d9a7e38c96660eddaf4af930fc76c6578706572696d656e74616cf50037", + "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806339a3968b14610067578063aa688c58146100a4578063c66479bb146100e4578063f596d10a14610121575b600080fd5b34801561007357600080fd5b5061008e6004803603610089919081019061093d565b61015e565b60405161009b9190610bf4565b60405180910390f35b3480156100b057600080fd5b506100cb60048036036100c6919081019061093d565b610170565b6040516100db9493929190610b21565b60405180910390f35b3480156100f057600080fd5b5061010b6004803603610106919081019061093d565b6102e2565b6040516101189190610b77565b60405180910390f35b34801561012d57600080fd5b506101486004803603610143919081019061093d565b610337565b6040516101559190610b92565b60405180910390f35b600061016982610368565b9050919050565b61017861079b565b6101806107be565b60608061018b6107e1565b61019486610389565b9050608060405190810160405280826000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525060c060405190810160405280836080015181526020018360a0015181526020018360c0015181526020018360e00151815260200183610100015181526020018361012001518152508261014001518361016001518191508090509450945094509450509193509193565b6102ea61089b565b6102f26108be565b6102fb836103dd565b90506080604051908101604052808260000151815260200182602001518152602001826040015181526020018260600151815250915050919050565b60606103416108be565b600061034c846103dd565b91508160000151905061035f8482610426565b92505050919050565b60008060006103768461045e565b9150608082015190508092505050919050565b6103916107e1565b6103996108be565b6103a16107e1565b6103aa846103dd565b91506103d16103c2858460000151856020015161046e565b836040015184606001516104cb565b90508092505050919050565b6103e56108be565b6103ed6108be565b60006103f88461045e565b9050805182526020810151602083015260408101516040830152606081015160608301528192505050919050565b60608061045260a061044260a0866105e290919063ffffffff16565b866105fe9092919063ffffffff16565b90508091505092915050565b6000602082019050809050919050565b6060600080606061047e8761045e565b925061049386846105e290919063ffffffff16565b91506104bc826104ac87856105e290919063ffffffff16565b896105fe9092919063ffffffff16565b90508093505050509392505050565b6104d36107e1565b6104db6107e1565b60006104e68661045e565b9050805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e0830152610100810151610100830152610120810151610120830152610575610140610565610140886105e290919063ffffffff16565b886105fe9092919063ffffffff16565b8261014001819052506105cd610596610140876105e290919063ffffffff16565b6105bd866105af6101408a6105e290919063ffffffff16565b6105e290919063ffffffff16565b886105fe9092919063ffffffff16565b82610160018190525081925050509392505050565b600081830190508281101515156105f557fe5b80905092915050565b6060818311151515610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90610bb4565b60405180910390fd5b8351821115151561068b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068290610bd4565b60405180910390fd5b8282036040519080825280601f01601f1916602001820160405280156106c05781602001602082028038833980820191505090505b5090506106e16106cf8261045e565b846106d98761045e565b0183516106eb565b8090509392505050565b6020811015610715576001816020036101000a038019835116818551168082178652505050610795565b8282141561072257610796565b828211156107615760208103905080820181840181515b828510156107565784518652602085019450602086019550610739565b808252505050610794565b60208103905080820181840183515b8186121561078d5782518252602083039250602082039150610770565b8086525050505b5b5b505050565b608060405190810160405280600490602082028038833980820191505090505090565b60c060405190810160405280600690602082028038833980820191505090505090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b608060405190810160405280600490602082028038833980820191505090505090565b608060405190810160405280600081526020016000815260200160008152602001600081525090565b600082601f83011215156108fa57600080fd5b813561090d61090882610c3c565b610c0f565b9150808252602083016020830185838301111561092957600080fd5b610934838284610d03565b50505092915050565b60006020828403121561094f57600080fd5b600082013567ffffffffffffffff81111561096957600080fd5b610975848285016108e7565b91505092915050565b61098781610cd9565b82525050565b61099681610c86565b61099f82610c68565b60005b828110156109d1576109b585835161097e565b6109be82610cb2565b91506020850194506001810190506109a2565b5050505050565b6109e181610c91565b6109ea82610c72565b60005b82811015610a1c57610a00858351610b12565b610a0982610cbf565b91506020850194506001810190506109ed565b5050505050565b610a2c81610c9c565b610a3582610c7c565b60005b82811015610a6757610a4b858351610b12565b610a5482610ccc565b9150602085019450600181019050610a38565b5050505050565b6000610a7982610ca7565b808452610a8d816020860160208601610d12565b610a9681610d45565b602085010191505092915050565b6000601a82527f46524f4d5f4c4553535f5448414e5f544f5f52455155495245440000000000006020830152604082019050919050565b6000601c82527f544f5f4c4553535f5448414e5f4c454e4754485f5245515549524544000000006020830152604082019050919050565b610b1b81610cf9565b82525050565b600061018082019050610b37600083018761098d565b610b446080830186610a23565b818103610140830152610b578185610a6e565b9050818103610160830152610b6c8184610a6e565b905095945050505050565b6000608082019050610b8c60008301846109d8565b92915050565b60006020820190508181036000830152610bac8184610a6e565b905092915050565b60006020820190508181036000830152610bcd81610aa4565b9050919050565b60006020820190508181036000830152610bed81610adb565b9050919050565b6000602082019050610c096000830184610b12565b92915050565b6000604051905081810181811067ffffffffffffffff82111715610c3257600080fd5b8060405250919050565b600067ffffffffffffffff821115610c5357600080fd5b601f19601f8301169050602081019050919050565b6000819050919050565b6000819050919050565b6000819050919050565b600060049050919050565b600060049050919050565b600060069050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610d30578082015181840152602081019050610d15565b83811115610d3f576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820922bbb8221df4fc7b3d37b6a2f16a4e3aaf92d9a7e38c96660eddaf4af930fc76c6578706572696d656e74616cf50037", + "sourceMap": "213:1780:37:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;213:1780:37;;;;;;;", + "deployedSourceMap": "213:1780:37:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;674:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;674:175:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:771;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1220:771:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:406;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:406:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;855:359;;8:9:-1;5:2;;;30:1;27;20:12;5:2;855:359:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;674:175;762:7;792:50;831:10;792:38;:50::i;:::-;785:57;;674:175;;;:::o;1220:771::-;1312:10;;:::i;:::-;1324;;:::i;:::-;1336:5;1343;1364:41;;:::i;:::-;1408:55;1452:10;1408:43;:55::i;:::-;1364:99;;1474:510;;;;;;;;;1513:5;:18;;;1474:510;;;;;;;;1549:5;:18;;;1474:510;;;;;;;;1585:5;:25;;;1474:510;;;;;;;;1628:5;:19;;;1474:510;;;;;;;;;;;;;;;;1693:5;:22;;;1474:510;;;;1733:5;:22;;;1474:510;;;;1773:5;:14;;;1474:510;;;;1805:5;:14;;;1474:510;;;;1837:5;:27;;;1474:510;;;;1882:5;:10;;;1474:510;;;1920:5;:20;;;1954:5;:20;;;1474:510;;;;;;;;;;;;;;1220:771;;;;;;:::o;262:406::-;355:10;;:::i;:::-;381:49;;:::i;:::-;433:51;473:10;433:39;:51::i;:::-;381:103;;494:167;;;;;;;;;515:6;:22;;;494:167;;;;551:6;:18;;;494:167;;;;583:6;:27;;;494:167;;;;624:6;:27;;;494:167;;;;;262:406;;;;:::o;855:359::-;942:5;963:49;;:::i;:::-;1076:23;1015:51;1055:10;1015:39;:51::i;:::-;963:103;;1102:6;:22;;;1076:48;;1141:66;1179:10;1191:15;1141:37;:66::i;:::-;1134:73;;855:359;;;;;:::o;4373:314:13:-;4463:7;4486:21;4547:18;4510:27;:10;:25;:27::i;:::-;4486:51;;4638:3;4623:13;4619:23;4613:30;4599:44;;4670:10;4663:17;;4373:314;;;;;:::o;7788:435::-;7882:5;;:::i;:::-;7910:26;;:::i;:::-;7978:18;;:::i;:::-;7939:28;7956:10;7939:16;:28::i;:::-;7910:57;;7999:194;8029:72;8046:10;8058:6;:22;;;8082:6;:18;;;8029:16;:72::i;:::-;8115:6;:27;;;8156:6;:27;;;7999:16;:194::i;:::-;7978:215;;8211:5;8204:12;;7788:435;;;;;:::o;3758:609::-;3849:12;;:::i;:::-;3877:26;;:::i;:::-;3914:21;3938:27;:10;:25;:27::i;:::-;3914:51;;4029:13;4023:20;4006:6;3999:45;4125:2;4110:13;4106:22;4100:29;4095:2;4087:6;4083:15;4076:54;4207:2;4192:13;4188:22;4182:29;4177:2;4169:6;4165:15;4158:54;4298:2;4283:13;4279:22;4273:29;4268:2;4260:6;4256:15;4249:54;4354:6;4347:13;;3758:609;;;;;:::o;4693:239::-;4805:5;4826:22;4851:48;4868:3;4873:25;4894:3;4873:16;:20;;:25;;;;:::i;:::-;4851:10;:16;;:48;;;;;:::i;:::-;4826:73;;4916:9;4909:16;;4693:239;;;;;:::o;850:228:26:-;941:21;1029:2;1022:5;1018:14;1001:31;;1058:13;1051:20;;850:228;;;:::o;4938:444:13:-;5071:5;5092:21;5153:25;5226:18;5116:27;:10;:25;:27::i;:::-;5092:51;;5181:35;5199:16;5181:13;:17;;:35;;;;:::i;:::-;5153:63;;5247:106;5277:17;5308:35;5330:12;5308:17;:21;;:35;;;;:::i;:::-;5247:10;:16;;:106;;;;;:::i;:::-;5226:127;;5370:5;5363:12;;4938:444;;;;;;;;:::o;5388:2394::-;5567:5;;:::i;:::-;5595:18;;:::i;:::-;5623:21;5647:29;:12;:27;:29::i;:::-;5623:53;;6689:13;6683:20;6666:5;6659:45;6776:2;6761:13;6757:22;6751:29;6745:2;6738:5;6734:14;6727:54;6853:2;6838:13;6834:22;6828:29;6822:2;6815:5;6811:14;6804:54;6937:2;6922:13;6918:22;6912:29;6906:2;6899:5;6895:14;6888:54;7023:3;7008:13;7004:23;6998:30;6991:3;6984:5;6980:15;6973:56;7111:3;7096:13;7092:23;7086:30;7080:3;7073:5;7069:15;7062:55;7199:3;7184:13;7180:23;7174:30;7168:3;7161:5;7157:15;7150:55;7279:3;7264:13;7260:23;7254:30;7248:3;7241:5;7237:15;7230:55;7359:3;7344:13;7340:23;7334:30;7328:3;7321:5;7317:15;7310:55;7457:3;7442:13;7438:23;7432:30;7426:3;7419:5;7415:15;7408:55;7514;7533:3;7538:30;7564:3;7538:21;:25;;:30;;;;:::i;:::-;7514:12;:18;;:55;;;;;:::i;:::-;7491:5;:20;;:78;;;;7602:143;7634:30;7660:3;7634:21;:25;;:30;;;;:::i;:::-;7678:57;7713:21;7678:30;7704:3;7678:21;:25;;:30;;;;:::i;:::-;:34;;:57;;;;:::i;:::-;7602:12;:18;;:143;;;;;:::i;:::-;7579:5;:20;;:166;;;;7763:5;7756:12;;5388:2394;;;;;;;:::o;1214:123:38:-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;6563:681:26:-;6667:19;6731:2;6723:4;:10;;6702:83;;;;;;;;;;;;;;;;;;;;;;;;6925:1;:8;6919:2;:14;;6795:192;;;;;;;;;;;;;;;;;;;;;;;;7088:4;7083:2;:9;7073:20;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;7073:20:26;;;;7064:29;;7103:111;7124:23;:6;:21;:23::i;:::-;7182:4;7161:18;:1;:16;:18::i;:::-;:25;7200:6;:13;7103:7;:111::i;:::-;7231:6;7224:13;;6563:681;;;;;:::o;2044:4207::-;2194:2;2185:6;:11;2181:4064;;;2483:1;2473:6;2469:2;2465:15;2460:3;2456:25;2452:33;2534:4;2530:9;2521:6;2515:13;2511:29;2583:4;2576;2570:11;2566:22;2624:1;2621;2618:8;2612:4;2605:22;2422:219;;;;;;2745:4;2735:6;:14;2731:59;;;2769:7;;2731:59;3479:4;3470:6;:13;3466:2769;;;3805:2;3797:6;3793:15;3783:25;;3853:6;3845;3841:19;3903:6;3897:4;3893:17;4210:4;4204:11;4413:198;4431:4;4423:6;4420:16;4413:198;;;4485:6;4479:13;4473:4;4466:27;4540:2;4532:6;4528:15;4518:25;;4586:2;4580:4;4576:13;4568:21;;4413:198;;;4713:4;4707;4700:18;3512:1224;;;;;;4981:2;4973:6;4969:15;4959:25;;5029:6;5021;5017:19;5079:6;5073:4;5069:17;5389:6;5383:13;5903:191;5920:4;5914;5910:15;5903:191;;;5974:4;5968:11;5962:4;5955:25;6023:2;6017:4;6013:13;6005:21;;6069:2;6063:4;6059:13;6051:21;;5903:191;;;6197:5;6191:4;6184:19;4783:1438;;;;2181:4064;2044:4207;;;;:::o;213:1780:37:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;213:1780:37;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;213:1780:37;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;213:1780:37;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6:440:-1:-;;107:3;100:4;92:6;88:17;84:27;77:35;74:2;;;125:1;122;115:12;74:2;162:6;149:20;184:64;199:48;240:6;199:48;;;184:64;;;175:73;;268:6;261:5;254:21;304:4;296:6;292:17;337:4;330:5;326:16;372:3;363:6;358:3;354:16;351:25;348:2;;;389:1;386;379:12;348:2;399:41;433:6;428:3;423;399:41;;;67:379;;;;;;;;454:345;;567:2;555:9;546:7;542:23;538:32;535:2;;;583:1;580;573:12;535:2;646:1;635:9;631:17;618:31;669:18;661:6;658:30;655:2;;;701:1;698;691:12;655:2;721:62;775:7;766:6;755:9;751:22;721:62;;;711:72;;597:192;529:270;;;;;806:110;879:31;904:5;879:31;;;874:3;867:44;861:55;;;956:521;1079:52;1125:5;1079:52;;;1177:54;1225:5;1177:54;;;1252:1;1237:228;1262:6;1259:1;1256:13;1237:228;;;1302:53;1351:3;1342:6;1336:13;1302:53;;;1372:58;1423:6;1372:58;;;1362:68;;1453:4;1448:3;1444:14;1437:21;;1284:1;1281;1277:9;1272:14;;1237:228;;;1241:14;1058:419;;;;;1518:521;1641:52;1687:5;1641:52;;;1739:54;1787:5;1739:54;;;1814:1;1799:228;1824:6;1821:1;1818:13;1799:228;;;1864:53;1913:3;1904:6;1898:13;1864:53;;;1934:58;1985:6;1934:58;;;1924:68;;2015:4;2010:3;2006:14;1999:21;;1846:1;1843;1839:9;1834:14;;1799:228;;;1803:14;1620:419;;;;;2080:521;2203:52;2249:5;2203:52;;;2301:54;2349:5;2301:54;;;2376:1;2361:228;2386:6;2383:1;2380:13;2361:228;;;2426:53;2475:3;2466:6;2460:13;2426:53;;;2496:58;2547:6;2496:58;;;2486:68;;2577:4;2572:3;2568:14;2561:21;;2408:1;2405;2401:9;2396:14;;2361:228;;;2365:14;2182:419;;;;;2609:297;;2709:38;2741:5;2709:38;;;2764:6;2759:3;2752:19;2776:63;2832:6;2825:4;2820:3;2816:14;2809:4;2802:5;2798:16;2776:63;;;2871:29;2893:6;2871:29;;;2864:4;2859:3;2855:14;2851:50;2844:57;;2689:217;;;;;;2914:296;;3069:2;3064:3;3057:15;3106:66;3101:2;3096:3;3092:12;3085:88;3201:2;3196:3;3192:12;3185:19;;3050:160;;;;3219:296;;3374:2;3369:3;3362:15;3411:66;3406:2;3401:3;3397:12;3390:88;3506:2;3501:3;3497:12;3490:19;;3355:160;;;;3523:110;3596:31;3621:5;3596:31;;;3591:3;3584:44;3578:55;;;3640:852;;3960:3;3949:9;3945:19;3937:27;;3975:107;4079:1;4068:9;4064:17;4055:6;3975:107;;;4093:109;4197:3;4186:9;4182:19;4173:6;4093:109;;;4251:9;4245:4;4241:20;4235:3;4224:9;4220:19;4213:49;4276:66;4337:4;4328:6;4276:66;;;4268:74;;4391:9;4385:4;4381:20;4375:3;4364:9;4360:19;4353:49;4416:66;4477:4;4468:6;4416:66;;;4408:74;;3931:561;;;;;;;;4499:286;;4653:3;4642:9;4638:19;4630:27;;4668:107;4772:1;4761:9;4757:17;4748:6;4668:107;;;4624:161;;;;;4792:277;;4918:2;4907:9;4903:18;4895:26;;4968:9;4962:4;4958:20;4954:1;4943:9;4939:17;4932:47;4993:66;5054:4;5045:6;4993:66;;;4985:74;;4889:180;;;;;5076:387;;5257:2;5246:9;5242:18;5234:26;;5307:9;5301:4;5297:20;5293:1;5282:9;5278:17;5271:47;5332:121;5448:4;5332:121;;;5324:129;;5228:235;;;;5470:387;;5651:2;5640:9;5636:18;5628:26;;5701:9;5695:4;5691:20;5687:1;5676:9;5672:17;5665:47;5726:121;5842:4;5726:121;;;5718:129;;5622:235;;;;5864:193;;5972:2;5961:9;5957:18;5949:26;;5986:61;6044:1;6033:9;6029:17;6020:6;5986:61;;;5943:114;;;;;6064:256;;6126:2;6120:9;6110:19;;6164:4;6156:6;6152:17;6263:6;6251:10;6248:22;6227:18;6215:10;6212:34;6209:62;6206:2;;;6284:1;6281;6274:12;6206:2;6304:10;6300:2;6293:22;6104:216;;;;;6327:258;;6470:18;6462:6;6459:30;6456:2;;;6502:1;6499;6492:12;6456:2;6546:4;6542:9;6535:4;6527:6;6523:17;6519:33;6511:41;;6575:4;6569;6565:15;6557:23;;6393:192;;;;6594:108;;6689:6;6678:17;;6670:32;;;;6713:108;;6808:6;6797:17;;6789:32;;;;6832:108;;6927:6;6916:17;;6908:32;;;;6949:96;;7037:3;7027:13;;7021:24;;;;7052:96;;7140:3;7130:13;;7124:24;;;;7155:96;;7243:3;7233:13;;7227:24;;;;7258:91;;7338:5;7332:12;7322:22;;7316:33;;;;7357:120;;7466:4;7458:6;7454:17;7443:28;;7436:41;;;;7486:120;;7595:4;7587:6;7583:17;7572:28;;7565:41;;;;7615:120;;7724:4;7716:6;7712:17;7701:28;;7694:41;;;;7743:128;;7823:42;7816:5;7812:54;7801:65;;7795:76;;;;7878:79;;7947:5;7936:16;;7930:27;;;;7965:145;8046:6;8041:3;8036;8023:30;8102:1;8093:6;8088:3;8084:16;8077:27;8016:94;;;;8119:268;8184:1;8191:101;8205:6;8202:1;8199:13;8191:101;;;8281:1;8276:3;8272:11;8266:18;8262:1;8257:3;8253:11;8246:39;8227:2;8224:1;8220:10;8215:15;;8191:101;;;8307:6;8304:1;8301:13;8298:2;;;8372:1;8363:6;8358:3;8354:16;8347:27;8298:2;8168:219;;;;;8395:97;;8483:2;8479:7;8474:2;8467:5;8463:14;8459:28;8449:38;;8443:49;;;", + "source": "pragma solidity 0.4.24;\npragma experimental \"ABIEncoderV2\";\n\nimport { ZeroExOrderDataHandler } from \"../../core/external/lib/ZeroExOrderDataHandler.sol\";\n\n\n// Mock class implementing internal OrderHandler methods\ncontract MockZeroExOrderDataHandlerLibrary {\n function parseOrderDataHeader(bytes _orderData)\n public\n pure\n returns (uint256[4])\n {\n ZeroExOrderDataHandler.ZeroExHeader memory header = ZeroExOrderDataHandler.parseOrderHeader(_orderData);\n return [\n header.signatureLength,\n header.orderLength,\n header.makerAssetDataLength,\n header.takerAssetDataLength\n ];\n }\n\n function parseFillAmount(bytes _orderData)\n public\n pure\n returns (uint256)\n {\n return ZeroExOrderDataHandler.parseFillAmount(_orderData);\n }\n\n function parseSignature(bytes _orderData)\n public\n pure\n returns (bytes)\n {\n ZeroExOrderDataHandler.ZeroExHeader memory header = ZeroExOrderDataHandler.parseOrderHeader(_orderData);\n uint256 signatureLength = header.signatureLength;\n return ZeroExOrderDataHandler.sliceSignature(_orderData, signatureLength);\n }\n\n function parseZeroExOrderData(bytes _orderData)\n public\n pure\n returns(address[4], uint256[6], bytes, bytes)\n {\n ZeroExOrderDataHandler.Order memory order = ZeroExOrderDataHandler.parseZeroExOrderData(_orderData);\n\n return (\n [\n order.makerAddress,\n order.takerAddress,\n order.feeRecipientAddress,\n order.senderAddress\n ],\n [\n order.makerAssetAmount,\n order.takerAssetAmount,\n order.makerFee,\n order.takerFee,\n order.expirationTimeSeconds,\n order.salt\n ],\n order.makerAssetData,\n order.takerAssetData\n );\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/lib/ZeroExOrderDataHandlerLib.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/lib/ZeroExOrderDataHandlerLib.sol", + "exportedSymbols": { + "MockZeroExOrderDataHandlerLibrary": [ + 4644 + ] + }, + "id": 4645, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4515, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:37" + }, + { + "id": 4516, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:35:37" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/lib/ZeroExOrderDataHandler.sol", + "file": "../../core/external/lib/ZeroExOrderDataHandler.sol", + "id": 4518, + "nodeType": "ImportDirective", + "scope": 4645, + "sourceUnit": 2331, + "src": "61:92:37", + "symbolAliases": [ + { + "foreign": 4517, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4644, + "linearizedBaseContracts": [ + 4644 + ], + "name": "MockZeroExOrderDataHandlerLibrary", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4546, + "nodeType": "Block", + "src": "371:297:37", + "statements": [ + { + "assignments": [ + 4530 + ], + "declarations": [ + { + "constant": false, + "id": 4530, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 4547, + "src": "381:49:37", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 4529, + "name": "ZeroExOrderDataHandler.ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "381:35:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4535, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4533, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4520, + "src": "473:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4531, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "433:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseOrderHeader", + "nodeType": "MemberAccess", + "referencedDeclaration": 2160, + "src": "433:39:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_ZeroExHeader_$2140_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.ZeroExHeader memory)" + } + }, + "id": 4534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "433:51:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "381:103:37" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4536, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "515:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4537, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2133, + "src": "515:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4538, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "551:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4539, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2135, + "src": "551:18:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4540, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "583:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4541, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2137, + "src": "583:27:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4542, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "624:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2139, + "src": "624:27:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4544, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "501:160:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "functionReturnParameters": 4526, + "id": 4545, + "nodeType": "Return", + "src": "494:167:37" + } + ] + }, + "documentation": null, + "id": 4547, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseOrderDataHeader", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4520, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4547, + "src": "292:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4519, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "292:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "291:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4525, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4547, + "src": "355:10:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 4522, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "355:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4524, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 4523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "363:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "355:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "354:12:37" + }, + "scope": 4644, + "src": "262:406:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4559, + "nodeType": "Block", + "src": "775:74:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4556, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4549, + "src": "831:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4554, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "792:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseFillAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2180, + "src": "792:38:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 4557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "792:50:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4553, + "id": 4558, + "nodeType": "Return", + "src": "785:57:37" + } + ] + }, + "documentation": null, + "id": 4560, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseFillAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4549, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4560, + "src": "699:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4548, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "699:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "698:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4552, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4560, + "src": "762:7:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "762:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "761:9:37" + }, + "scope": 4644, + "src": "674:175:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4587, + "nodeType": "Block", + "src": "953:261:37", + "statements": [ + { + "assignments": [ + 4570 + ], + "declarations": [ + { + "constant": false, + "id": 4570, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "963:49:37", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 4569, + "name": "ZeroExOrderDataHandler.ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "963:35:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4575, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4573, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4562, + "src": "1055:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4571, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "1015:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseOrderHeader", + "nodeType": "MemberAccess", + "referencedDeclaration": 2160, + "src": "1015:39:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_ZeroExHeader_$2140_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.ZeroExHeader memory)" + } + }, + "id": 4574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1015:51:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "963:103:37" + }, + { + "assignments": [ + 4577 + ], + "declarations": [ + { + "constant": false, + "id": 4577, + "name": "signatureLength", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "1076:23:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1076:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4580, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4578, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4570, + "src": "1102:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4579, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2133, + "src": "1102:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1076:48:37" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4583, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4562, + "src": "1179:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 4584, + "name": "signatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4577, + "src": "1191:15:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4581, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "1141:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sliceSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 2203, + "src": "1141:37:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes memory)" + } + }, + "id": 4585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1141:66:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 4566, + "id": 4586, + "nodeType": "Return", + "src": "1134:73:37" + } + ] + }, + "documentation": null, + "id": 4588, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "879:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4561, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "879:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "878:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4566, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4565, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "942:5:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4564, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "942:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "941:7:37" + }, + "scope": 4644, + "src": "855:359:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4642, + "nodeType": "Block", + "src": "1354:637:37", + "statements": [ + { + "assignments": [ + 4608 + ], + "declarations": [ + { + "constant": false, + "id": 4608, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1364:41:37", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 4607, + "name": "ZeroExOrderDataHandler.Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "1364:28:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4613, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4611, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4590, + "src": "1452:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4609, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "1408:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseZeroExOrderData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2329, + "src": "1408:43:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_Order_$2131_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.Order memory)" + } + }, + "id": 4612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1408:55:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1364:99:37" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4614, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1513:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4615, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2108, + "src": "1513:18:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4616, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1549:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4617, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2110, + "src": "1549:18:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4618, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1585:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4619, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "feeRecipientAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2112, + "src": "1585:25:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4620, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1628:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4621, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "senderAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "1628:19:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 4622, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1495:166:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4623, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1693:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4624, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2116, + "src": "1693:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4625, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1733:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2118, + "src": "1733:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4627, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1773:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4628, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 2120, + "src": "1773:14:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4629, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1805:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4630, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 2122, + "src": "1805:14:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4631, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1837:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expirationTimeSeconds", + "nodeType": "MemberAccess", + "referencedDeclaration": 2124, + "src": "1837:27:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4633, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1882:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4634, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "salt", + "nodeType": "MemberAccess", + "referencedDeclaration": 2126, + "src": "1882:10:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4635, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1675:231:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4636, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1920:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4637, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2128, + "src": "1920:20:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4638, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1954:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4639, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2130, + "src": "1954:20:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + } + ], + "id": 4640, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1481:503:37", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$6_memory_ptr_$_t_bytes_memory_$_t_bytes_memory_$", + "typeString": "tuple(address[4] memory,uint256[6] memory,bytes memory,bytes memory)" + } + }, + "functionReturnParameters": 4604, + "id": 4641, + "nodeType": "Return", + "src": "1474:510:37" + } + ] + }, + "documentation": null, + "id": 4643, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseZeroExOrderData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4590, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1250:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4589, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1250:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1249:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4595, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1312:10:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 4592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1312:7:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4594, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 4593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1320:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "1312:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4599, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1324:10:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6]" + }, + "typeName": { + "baseType": { + "id": 4596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1324:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4598, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 4597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1332:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "1324:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4601, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1336:5:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4600, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1336:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4603, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1343:5:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4602, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1343:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1311:38:37" + }, + "scope": 4644, + "src": "1220:771:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4645, + "src": "213:1780:37" + } + ], + "src": "0:1994:37" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/lib/ZeroExOrderDataHandlerLib.sol", + "exportedSymbols": { + "MockZeroExOrderDataHandlerLibrary": [ + 4644 + ] + }, + "id": 4645, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4515, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:37" + }, + { + "id": 4516, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:35:37" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/lib/ZeroExOrderDataHandler.sol", + "file": "../../core/external/lib/ZeroExOrderDataHandler.sol", + "id": 4518, + "nodeType": "ImportDirective", + "scope": 4645, + "sourceUnit": 2331, + "src": "61:92:37", + "symbolAliases": [ + { + "foreign": 4517, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4644, + "linearizedBaseContracts": [ + 4644 + ], + "name": "MockZeroExOrderDataHandlerLibrary", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4546, + "nodeType": "Block", + "src": "371:297:37", + "statements": [ + { + "assignments": [ + 4530 + ], + "declarations": [ + { + "constant": false, + "id": 4530, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 4547, + "src": "381:49:37", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 4529, + "name": "ZeroExOrderDataHandler.ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "381:35:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4535, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4533, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4520, + "src": "473:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4531, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "433:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseOrderHeader", + "nodeType": "MemberAccess", + "referencedDeclaration": 2160, + "src": "433:39:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_ZeroExHeader_$2140_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.ZeroExHeader memory)" + } + }, + "id": 4534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "433:51:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "381:103:37" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4536, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "515:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4537, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2133, + "src": "515:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4538, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "551:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4539, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2135, + "src": "551:18:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4540, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "583:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4541, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2137, + "src": "583:27:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4542, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "624:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2139, + "src": "624:27:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4544, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "501:160:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "functionReturnParameters": 4526, + "id": 4545, + "nodeType": "Return", + "src": "494:167:37" + } + ] + }, + "documentation": null, + "id": 4547, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseOrderDataHeader", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4520, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4547, + "src": "292:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4519, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "292:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "291:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4525, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4547, + "src": "355:10:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 4522, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "355:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4524, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 4523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "363:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "355:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "354:12:37" + }, + "scope": 4644, + "src": "262:406:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4559, + "nodeType": "Block", + "src": "775:74:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4556, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4549, + "src": "831:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4554, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "792:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseFillAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2180, + "src": "792:38:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 4557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "792:50:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4553, + "id": 4558, + "nodeType": "Return", + "src": "785:57:37" + } + ] + }, + "documentation": null, + "id": 4560, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseFillAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4549, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4560, + "src": "699:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4548, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "699:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "698:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4552, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4560, + "src": "762:7:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "762:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "761:9:37" + }, + "scope": 4644, + "src": "674:175:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4587, + "nodeType": "Block", + "src": "953:261:37", + "statements": [ + { + "assignments": [ + 4570 + ], + "declarations": [ + { + "constant": false, + "id": 4570, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "963:49:37", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 4569, + "name": "ZeroExOrderDataHandler.ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "963:35:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4575, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4573, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4562, + "src": "1055:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4571, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "1015:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseOrderHeader", + "nodeType": "MemberAccess", + "referencedDeclaration": 2160, + "src": "1015:39:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_ZeroExHeader_$2140_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.ZeroExHeader memory)" + } + }, + "id": 4574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1015:51:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "963:103:37" + }, + { + "assignments": [ + 4577 + ], + "declarations": [ + { + "constant": false, + "id": 4577, + "name": "signatureLength", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "1076:23:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1076:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4580, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4578, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4570, + "src": "1102:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4579, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2133, + "src": "1102:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1076:48:37" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4583, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4562, + "src": "1179:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 4584, + "name": "signatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4577, + "src": "1191:15:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4581, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "1141:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sliceSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 2203, + "src": "1141:37:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes memory)" + } + }, + "id": 4585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1141:66:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 4566, + "id": 4586, + "nodeType": "Return", + "src": "1134:73:37" + } + ] + }, + "documentation": null, + "id": 4588, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "879:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4561, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "879:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "878:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4566, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4565, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "942:5:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4564, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "942:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "941:7:37" + }, + "scope": 4644, + "src": "855:359:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4642, + "nodeType": "Block", + "src": "1354:637:37", + "statements": [ + { + "assignments": [ + 4608 + ], + "declarations": [ + { + "constant": false, + "id": 4608, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1364:41:37", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 4607, + "name": "ZeroExOrderDataHandler.Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "1364:28:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4613, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4611, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4590, + "src": "1452:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4609, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "1408:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseZeroExOrderData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2329, + "src": "1408:43:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_Order_$2131_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.Order memory)" + } + }, + "id": 4612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1408:55:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1364:99:37" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4614, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1513:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4615, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2108, + "src": "1513:18:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4616, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1549:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4617, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2110, + "src": "1549:18:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4618, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1585:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4619, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "feeRecipientAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2112, + "src": "1585:25:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4620, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1628:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4621, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "senderAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "1628:19:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 4622, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1495:166:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4623, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1693:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4624, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2116, + "src": "1693:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4625, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1733:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2118, + "src": "1733:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4627, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1773:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4628, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 2120, + "src": "1773:14:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4629, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1805:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4630, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 2122, + "src": "1805:14:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4631, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1837:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expirationTimeSeconds", + "nodeType": "MemberAccess", + "referencedDeclaration": 2124, + "src": "1837:27:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4633, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1882:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4634, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "salt", + "nodeType": "MemberAccess", + "referencedDeclaration": 2126, + "src": "1882:10:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4635, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1675:231:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4636, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1920:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4637, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2128, + "src": "1920:20:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4638, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1954:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4639, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2130, + "src": "1954:20:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + } + ], + "id": 4640, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1481:503:37", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$6_memory_ptr_$_t_bytes_memory_$_t_bytes_memory_$", + "typeString": "tuple(address[4] memory,uint256[6] memory,bytes memory,bytes memory)" + } + }, + "functionReturnParameters": 4604, + "id": 4641, + "nodeType": "Return", + "src": "1474:510:37" + } + ] + }, + "documentation": null, + "id": 4643, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseZeroExOrderData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4590, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1250:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4589, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1250:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1249:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4595, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1312:10:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 4592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1312:7:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4594, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 4593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1320:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "1312:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4599, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1324:10:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6]" + }, + "typeName": { + "baseType": { + "id": 4596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1324:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4598, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 4597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1332:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "1324:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4601, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1336:5:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4600, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1336:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4603, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1343:5:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4602, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1343:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1311:38:37" + }, + "scope": 4644, + "src": "1220:771:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4645, + "src": "213:1780:37" + } + ], + "src": "0:1994:37" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.916Z" +} \ No newline at end of file diff --git a/artifacts/json/NoDecimalTokenMock.json b/artifacts/json/NoDecimalTokenMock.json new file mode 100644 index 000000000..b5a20d38b --- /dev/null +++ b/artifacts/json/NoDecimalTokenMock.json @@ -0,0 +1,1308 @@ +{ + "contractName": "NoDecimalTokenMock", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_addedValue", + "type": "uint256" + } + ], + "name": "increaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "initialAccount", + "type": "address" + }, + { + "name": "initialBalance", + "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040516200143e3803806200143e83398101806040528101908080519060200190929190805190602001909291908051820192919060200180518201929190505050826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550826005819055508160039080519060200190620000b6929190620000da565b508060049080519060200190620000cf929190620000da565b505050505062000189565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200011d57805160ff19168380011785556200014e565b828001600101855582156200014e579182015b828111156200014d57825182559160200191906001019062000130565b5b5090506200015d919062000161565b5090565b6200018691905b808211156200018257600081600090555060010162000168565b5090565b90565b6112a580620001996000396000f3006080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100a9578063095ea7b31461013957806318160ddd1461019e57806323b872dd146101c9578063661884631461024e57806370a08231146102b357806395d89b411461030a578063a9059cbb1461039a578063d73dd623146103ff578063dd62ed3e14610464575b600080fd5b3480156100b557600080fd5b506100be6104db565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100fe5780820151818401526020810190506100e3565b50505050905090810190601f16801561012b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014557600080fd5b50610184600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610579565b604051808215151515815260200191505060405180910390f35b3480156101aa57600080fd5b506101b361066b565b6040518082815260200191505060405180910390f35b3480156101d557600080fd5b50610234600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610671565b604051808215151515815260200191505060405180910390f35b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a2b565b604051808215151515815260200191505060405180910390f35b3480156102bf57600080fd5b506102f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cbc565b6040518082815260200191505060405180910390f35b34801561031657600080fd5b5061031f610d04565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035f578082015181840152602081019050610344565b50505050905090810190601f16801561038c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a657600080fd5b506103e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610da2565b604051808215151515815260200191505060405180910390f35b34801561040b57600080fd5b5061044a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fc1565b604051808215151515815260200191505060405180910390f35b34801561047057600080fd5b506104c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111bd565b6040518082815260200191505060405180910390f35b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105715780601f1061054657610100808354040283529160200191610571565b820191906000526020600020905b81548152906001019060200180831161055457829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60055481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106ae57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156106fb57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561078657600080fd5b6107d7826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124490919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061086a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b3c576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bd0565b610b4f838261124490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d9a5780601f10610d6f57610100808354040283529160200191610d9a565b820191906000526020600020905b815481529060010190602001808311610d7d57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610ddf57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e2c57600080fd5b610e7d826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f10826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061105282600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125d90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561125257fe5b818303905092915050565b6000818301905082811015151561127057fe5b809050929150505600a165627a7a7230582091740c772d45b5805fa321606374bfab60c58360b7a6cc39d2f0c24ab1f529f20029", + "deployedBytecode": "0x6080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100a9578063095ea7b31461013957806318160ddd1461019e57806323b872dd146101c9578063661884631461024e57806370a08231146102b357806395d89b411461030a578063a9059cbb1461039a578063d73dd623146103ff578063dd62ed3e14610464575b600080fd5b3480156100b557600080fd5b506100be6104db565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100fe5780820151818401526020810190506100e3565b50505050905090810190601f16801561012b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014557600080fd5b50610184600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610579565b604051808215151515815260200191505060405180910390f35b3480156101aa57600080fd5b506101b361066b565b6040518082815260200191505060405180910390f35b3480156101d557600080fd5b50610234600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610671565b604051808215151515815260200191505060405180910390f35b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a2b565b604051808215151515815260200191505060405180910390f35b3480156102bf57600080fd5b506102f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cbc565b6040518082815260200191505060405180910390f35b34801561031657600080fd5b5061031f610d04565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035f578082015181840152602081019050610344565b50505050905090810190601f16801561038c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a657600080fd5b506103e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610da2565b604051808215151515815260200191505060405180910390f35b34801561040b57600080fd5b5061044a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fc1565b604051808215151515815260200191505060405180910390f35b34801561047057600080fd5b506104c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111bd565b6040518082815260200191505060405180910390f35b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105715780601f1061054657610100808354040283529160200191610571565b820191906000526020600020905b81548152906001019060200180831161055457829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60055481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106ae57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156106fb57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561078657600080fd5b6107d7826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124490919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061086a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b3c576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bd0565b610b4f838261124490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d9a5780601f10610d6f57610100808354040283529160200191610d9a565b820191906000526020600020905b815481529060010190602001808311610d7d57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610ddf57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e2c57600080fd5b610e7d826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f10826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061105282600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125d90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561125257fe5b818303905092915050565b6000818301905082811015151561127057fe5b809050929150505600a165627a7a7230582091740c772d45b5805fa321606374bfab60c58360b7a6cc39d2f0c24ab1f529f20029", + "sourceMap": "96:375:33:-;;;222:246;8:9:-1;5:2;;;30:1;27;20:12;5:2;222:246:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;375:14;348:8;:24;357:14;348:24;;;;;;;;;;;;;;;:41;;;;409:14;395:11;:28;;;;436:5;429:4;:12;;;;;;;;;;;;:::i;:::-;;456:7;447:6;:16;;;;;;;;;;;;:::i;:::-;;222:246;;;;96:375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "96:375:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;145:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;145:18:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;145:18:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;191:26:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;191:26:33;;;;;;;;;;;;;;;;;;;;;;;736:470:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:425;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;167:20:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;167:20:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;167:20:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;145:18:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:45:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;191:26:33:-;;;;:::o;736:470:45:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;3701:425::-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:40:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;167:20:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;608:321:40:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:45:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "source": "pragma solidity 0.4.24;\n\n\nimport \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\n\n\ncontract NoDecimalTokenMock is StandardToken {\n string public name;\n string public symbol;\n uint256 public totalSupply;\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n }\n\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/NoDecimalTokenMock.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/NoDecimalTokenMock.sol", + "exportedSymbols": { + "NoDecimalTokenMock": [ + 4183 + ] + }, + "id": 4184, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4143, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:33" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "id": 4144, + "nodeType": "ImportDirective", + "scope": 4184, + "sourceUnit": 5383, + "src": "26:67:33", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 4145, + "name": "StandardToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5382, + "src": "127:13:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardToken_$5382", + "typeString": "contract StandardToken" + } + }, + "id": 4146, + "nodeType": "InheritanceSpecifier", + "src": "127:13:33" + } + ], + "contractDependencies": [ + 4920, + 4997, + 5029, + 5382 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4183, + "linearizedBaseContracts": [ + 4183, + 5382, + 4920, + 4997, + 5029 + ], + "name": "NoDecimalTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 4148, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 4183, + "src": "145:18:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 4147, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "145:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 4150, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 4183, + "src": "167:20:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 4149, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "167:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 4152, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 4183, + "src": "191:26:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "191:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 4181, + "nodeType": "Block", + "src": "342:126:33", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4163, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4837, + "src": "348:8:33", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4165, + "indexExpression": { + "argumentTypes": null, + "id": 4164, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4154, + "src": "357:14:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "348:24:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4166, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4156, + "src": "375:14:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "348:41:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4168, + "nodeType": "ExpressionStatement", + "src": "348:41:33" + }, + { + "expression": { + "argumentTypes": null, + "id": 4171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4169, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4152 + ], + "referencedDeclaration": 4152, + "src": "395:11:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4170, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4156, + "src": "409:14:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "395:28:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4172, + "nodeType": "ExpressionStatement", + "src": "395:28:33" + }, + { + "expression": { + "argumentTypes": null, + "id": 4175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4173, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "429:4:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4174, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4158, + "src": "436:5:33", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "429:12:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4176, + "nodeType": "ExpressionStatement", + "src": "429:12:33" + }, + { + "expression": { + "argumentTypes": null, + "id": 4179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4177, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4150, + "src": "447:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4178, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4160, + "src": "456:7:33", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "447:16:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4180, + "nodeType": "ExpressionStatement", + "src": "447:16:33" + } + ] + }, + "documentation": null, + "id": 4182, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4154, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "239:22:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4153, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "239:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4156, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "267:22:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4155, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "267:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4158, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "295:12:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4157, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "295:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4160, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "313:14:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4159, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "313:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "233:95:33" + }, + "payable": false, + "returnParameters": { + "id": 4162, + "nodeType": "ParameterList", + "parameters": [], + "src": "342:0:33" + }, + "scope": 4183, + "src": "222:246:33", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4184, + "src": "96:375:33" + } + ], + "src": "0:472:33" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/NoDecimalTokenMock.sol", + "exportedSymbols": { + "NoDecimalTokenMock": [ + 4183 + ] + }, + "id": 4184, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4143, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:33" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "id": 4144, + "nodeType": "ImportDirective", + "scope": 4184, + "sourceUnit": 5383, + "src": "26:67:33", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 4145, + "name": "StandardToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5382, + "src": "127:13:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardToken_$5382", + "typeString": "contract StandardToken" + } + }, + "id": 4146, + "nodeType": "InheritanceSpecifier", + "src": "127:13:33" + } + ], + "contractDependencies": [ + 4920, + 4997, + 5029, + 5382 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4183, + "linearizedBaseContracts": [ + 4183, + 5382, + 4920, + 4997, + 5029 + ], + "name": "NoDecimalTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 4148, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 4183, + "src": "145:18:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 4147, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "145:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 4150, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 4183, + "src": "167:20:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 4149, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "167:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 4152, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 4183, + "src": "191:26:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "191:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 4181, + "nodeType": "Block", + "src": "342:126:33", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4163, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4837, + "src": "348:8:33", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4165, + "indexExpression": { + "argumentTypes": null, + "id": 4164, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4154, + "src": "357:14:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "348:24:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4166, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4156, + "src": "375:14:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "348:41:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4168, + "nodeType": "ExpressionStatement", + "src": "348:41:33" + }, + { + "expression": { + "argumentTypes": null, + "id": 4171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4169, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4152 + ], + "referencedDeclaration": 4152, + "src": "395:11:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4170, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4156, + "src": "409:14:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "395:28:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4172, + "nodeType": "ExpressionStatement", + "src": "395:28:33" + }, + { + "expression": { + "argumentTypes": null, + "id": 4175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4173, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "429:4:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4174, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4158, + "src": "436:5:33", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "429:12:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4176, + "nodeType": "ExpressionStatement", + "src": "429:12:33" + }, + { + "expression": { + "argumentTypes": null, + "id": 4179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4177, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4150, + "src": "447:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4178, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4160, + "src": "456:7:33", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "447:16:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4180, + "nodeType": "ExpressionStatement", + "src": "447:16:33" + } + ] + }, + "documentation": null, + "id": 4182, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4154, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "239:22:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4153, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "239:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4156, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "267:22:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4155, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "267:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4158, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "295:12:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4157, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "295:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4160, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "313:14:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4159, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "313:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "233:95:33" + }, + "payable": false, + "returnParameters": { + "id": 4162, + "nodeType": "ParameterList", + "parameters": [], + "src": "342:0:33" + }, + "scope": 4183, + "src": "222:246:33", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4184, + "src": "96:375:33" + } + ], + "src": "0:472:33" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.914Z" +} \ No newline at end of file diff --git a/artifacts/json/OrderLibrary.json b/artifacts/json/OrderLibrary.json new file mode 100644 index 000000000..35b84e7d4 --- /dev/null +++ b/artifacts/json/OrderLibrary.json @@ -0,0 +1,3181 @@ +{ + "contractName": "OrderLibrary", + "abi": [], + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820dc0a2a6fe1c1ba48cbc5ffd528dfd23ab6bd911a01833dc78ba9dbfadba752f90029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820dc0a2a6fe1c1ba48cbc5ffd528dfd23ab6bd911a01833dc78ba9dbfadba752f90029", + "sourceMap": "772:2636:25:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "772:2636:25:-;;;;;;;;", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\n/**\n * @title OrderLibrary\n * @author Set Protocol\n *\n * The Order Library contains functions for checking validation and hashing of Orders.\n *\n */\n\nlibrary OrderLibrary {\n\n /* ============ Structs ============ */\n\n struct IssuanceOrder {\n address setAddress; // _addresses[0]\n uint256 quantity; // _values[0]\n address makerAddress; // _addresses[1]\n address makerToken; // _addresses[2]\n uint256 makerTokenAmount; // _values[1]\n uint256 expiration; // _values[2]\n address relayerToken; // _addresses[3]\n uint256 relayerTokenAmount; // _values[3]\n uint256 salt; // _values[4]\n bytes32 orderHash;\n }\n\n /* ============ Internal Functions ============ */\n\n /**\n * Create hash of order parameters\n *\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n * @param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]\n */\n function generateOrderHash(\n address[4] _addresses,\n uint[5] _values\n )\n internal\n pure\n returns(bytes32)\n {\n // Hash the order parameters\n return keccak256(\n abi.encodePacked(\n _addresses[0], // setAddress\n _addresses[1], // makerAddress\n _addresses[2], // makerToken\n _addresses[3], // relayerToken\n _values[0], // quantity\n _values[1], // makerTokenAmount\n _values[2], // expiration\n _values[3], // relayerTokenAmount\n _values[4] // salt\n )\n );\n }\n\n /**\n * Validate order signature\n *\n * @param _orderHash Hash of issuance order\n * @param _signerAddress Address of Issuance Order signer\n * @param _v v element of ECDSA signature\n * @param _r r element of ECDSA signature\n * @param _s s element of ECDSA signature\n */\n function validateSignature(\n bytes32 _orderHash,\n address _signerAddress,\n uint8 _v,\n bytes32 _r,\n bytes32 _s\n )\n internal\n pure\n returns(bool)\n {\n // Public address returned by ecrecover function\n address recAddress;\n\n // Ethereum msg prefix\n bytes memory msgPrefix = \"\\x19Ethereum Signed Message:\\n32\";\n\n // Find what address signed the order\n recAddress = ecrecover(\n keccak256(abi.encodePacked(msgPrefix, _orderHash)),\n _v,\n _r,\n _s\n );\n\n return recAddress == _signerAddress;\n }\n\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/OrderLibrary.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/OrderLibrary.sol", + "exportedSymbols": { + "OrderLibrary": [ + 2981 + ] + }, + "id": 2982, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2870, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title OrderLibrary\n@author Set Protocol\n * The Order Library contains functions for checking validation and hashing of Orders.\n ", + "fullyImplemented": true, + "id": 2981, + "linearizedBaseContracts": [ + 2981 + ], + "name": "OrderLibrary", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "OrderLibrary.IssuanceOrder", + "id": 2891, + "members": [ + { + "constant": false, + "id": 2872, + "name": "setAddress", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "876:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2871, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "876:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2874, + "name": "quantity", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "933:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "933:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2876, + "name": "makerAddress", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "987:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2875, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "987:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2878, + "name": "makerToken", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1044:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2877, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1044:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2880, + "name": "makerTokenAmount", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1101:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1101:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2882, + "name": "expiration", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1155:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2881, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1155:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2884, + "name": "relayerToken", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1209:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2883, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1209:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2886, + "name": "relayerTokenAmount", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1266:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2885, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1266:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2888, + "name": "salt", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1320:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2887, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1320:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2890, + "name": "orderHash", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1374:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1374:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "IssuanceOrder", + "nodeType": "StructDefinition", + "scope": 2981, + "src": "845:553:25", + "visibility": "public" + }, + { + "body": { + "id": 2937, + "nodeType": "Block", + "src": "1854:540:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2907, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "1965:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2909, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1976:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1965:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2910, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "2010:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2912, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2021:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2010:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2913, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "2057:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2915, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2068:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2057:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2916, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "2102:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2918, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 2917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2113:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2102:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2919, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2149:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2921, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2157:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2149:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2922, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2192:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2924, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2200:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2192:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2925, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2243:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2927, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2251:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2243:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2928, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2288:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2930, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2296:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2288:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2931, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2341:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2933, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 2932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2349:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2341:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2905, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5384, + "src": "1931:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1931:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1931:446:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2904, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "1908:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1908:479:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2903, + "id": 2936, + "nodeType": "Return", + "src": "1901:486:25" + } + ] + }, + "documentation": "Create hash of order parameters\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n@param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]", + "id": 2938, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "generateOrderHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2895, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 2938, + "src": "1742:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 2892, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1742:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2894, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 2893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1750:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "1742:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2899, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 2938, + "src": "1773:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2896, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1773:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2898, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1778:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "1773:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1732:62:25" + }, + "payable": false, + "returnParameters": { + "id": 2903, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2902, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2938, + "src": "1841:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2901, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1841:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1840:9:25" + }, + "scope": 2981, + "src": "1706:688:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2979, + "nodeType": "Block", + "src": "2965:440:25", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2954, + "name": "recAddress", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "3032:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3032:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2955, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3032:18:25" + }, + { + "assignments": [ + 2957 + ], + "declarations": [ + { + "constant": false, + "id": 2957, + "name": "msgPrefix", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "3092:22:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2956, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3092:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2959, + "initialValue": { + "argumentTypes": null, + "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", + "id": 2958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3117:34:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", + "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" + }, + "value": "\u0019Ethereum Signed Message:\n32" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3092:59:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 2973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2960, + "name": "recAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "3208:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2965, + "name": "msgPrefix", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2957, + "src": "3271:9:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 2966, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2940, + "src": "3282:10:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2963, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5384, + "src": "3254:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3254:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3254:39:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2962, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "3244:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3244:50:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2969, + "name": "_v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2944, + "src": "3308:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 2970, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2946, + "src": "3324:2:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2971, + "name": "_s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2948, + "src": "3340:2:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2961, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5389, + "src": "3221:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 2972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3221:131:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3208:144:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2974, + "nodeType": "ExpressionStatement", + "src": "3208:144:25" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2975, + "name": "recAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "3370:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2976, + "name": "_signerAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "3384:14:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3370:28:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2952, + "id": 2978, + "nodeType": "Return", + "src": "3363:35:25" + } + ] + }, + "documentation": "Validate order signature\n * @param _orderHash Hash of issuance order\n@param _signerAddress Address of Issuance Order signer\n@param _v v element of ECDSA signature\n@param _r r element of ECDSA signature\n@param _s s element of ECDSA signature", + "id": 2980, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validateSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2949, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2940, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2794:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2939, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2794:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2942, + "name": "_signerAddress", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2822:22:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2822:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2944, + "name": "_v", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2854:8:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2943, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2854:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2946, + "name": "_r", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2872:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2945, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2872:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2948, + "name": "_s", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2892:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2947, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2892:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2784:124:25" + }, + "payable": false, + "returnParameters": { + "id": 2952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2955:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2950, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2955:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2954:6:25" + }, + "scope": 2981, + "src": "2758:647:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2982, + "src": "772:2636:25" + } + ], + "src": "597:2812:25" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/OrderLibrary.sol", + "exportedSymbols": { + "OrderLibrary": [ + 2981 + ] + }, + "id": 2982, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2870, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title OrderLibrary\n@author Set Protocol\n * The Order Library contains functions for checking validation and hashing of Orders.\n ", + "fullyImplemented": true, + "id": 2981, + "linearizedBaseContracts": [ + 2981 + ], + "name": "OrderLibrary", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "OrderLibrary.IssuanceOrder", + "id": 2891, + "members": [ + { + "constant": false, + "id": 2872, + "name": "setAddress", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "876:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2871, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "876:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2874, + "name": "quantity", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "933:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "933:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2876, + "name": "makerAddress", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "987:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2875, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "987:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2878, + "name": "makerToken", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1044:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2877, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1044:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2880, + "name": "makerTokenAmount", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1101:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1101:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2882, + "name": "expiration", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1155:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2881, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1155:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2884, + "name": "relayerToken", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1209:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2883, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1209:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2886, + "name": "relayerTokenAmount", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1266:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2885, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1266:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2888, + "name": "salt", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1320:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2887, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1320:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2890, + "name": "orderHash", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1374:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1374:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "IssuanceOrder", + "nodeType": "StructDefinition", + "scope": 2981, + "src": "845:553:25", + "visibility": "public" + }, + { + "body": { + "id": 2937, + "nodeType": "Block", + "src": "1854:540:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2907, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "1965:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2909, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1976:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1965:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2910, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "2010:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2912, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2021:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2010:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2913, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "2057:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2915, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2068:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2057:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2916, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "2102:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2918, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 2917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2113:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2102:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2919, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2149:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2921, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2157:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2149:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2922, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2192:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2924, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2200:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2192:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2925, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2243:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2927, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2251:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2243:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2928, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2288:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2930, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2296:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2288:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2931, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2341:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2933, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 2932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2349:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2341:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2905, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5384, + "src": "1931:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1931:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1931:446:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2904, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "1908:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1908:479:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2903, + "id": 2936, + "nodeType": "Return", + "src": "1901:486:25" + } + ] + }, + "documentation": "Create hash of order parameters\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n@param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]", + "id": 2938, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "generateOrderHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2895, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 2938, + "src": "1742:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 2892, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1742:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2894, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 2893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1750:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "1742:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2899, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 2938, + "src": "1773:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2896, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1773:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2898, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1778:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "1773:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1732:62:25" + }, + "payable": false, + "returnParameters": { + "id": 2903, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2902, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2938, + "src": "1841:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2901, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1841:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1840:9:25" + }, + "scope": 2981, + "src": "1706:688:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2979, + "nodeType": "Block", + "src": "2965:440:25", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2954, + "name": "recAddress", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "3032:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3032:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2955, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3032:18:25" + }, + { + "assignments": [ + 2957 + ], + "declarations": [ + { + "constant": false, + "id": 2957, + "name": "msgPrefix", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "3092:22:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2956, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3092:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2959, + "initialValue": { + "argumentTypes": null, + "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", + "id": 2958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3117:34:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", + "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" + }, + "value": "\u0019Ethereum Signed Message:\n32" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3092:59:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 2973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2960, + "name": "recAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "3208:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2965, + "name": "msgPrefix", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2957, + "src": "3271:9:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 2966, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2940, + "src": "3282:10:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2963, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5384, + "src": "3254:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3254:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3254:39:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2962, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "3244:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3244:50:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2969, + "name": "_v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2944, + "src": "3308:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 2970, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2946, + "src": "3324:2:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2971, + "name": "_s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2948, + "src": "3340:2:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2961, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5389, + "src": "3221:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 2972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3221:131:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3208:144:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2974, + "nodeType": "ExpressionStatement", + "src": "3208:144:25" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2975, + "name": "recAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "3370:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2976, + "name": "_signerAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "3384:14:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3370:28:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2952, + "id": 2978, + "nodeType": "Return", + "src": "3363:35:25" + } + ] + }, + "documentation": "Validate order signature\n * @param _orderHash Hash of issuance order\n@param _signerAddress Address of Issuance Order signer\n@param _v v element of ECDSA signature\n@param _r r element of ECDSA signature\n@param _s s element of ECDSA signature", + "id": 2980, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validateSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2949, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2940, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2794:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2939, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2794:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2942, + "name": "_signerAddress", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2822:22:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2822:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2944, + "name": "_v", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2854:8:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2943, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2854:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2946, + "name": "_r", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2872:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2945, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2872:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2948, + "name": "_s", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2892:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2947, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2892:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2784:124:25" + }, + "payable": false, + "returnParameters": { + "id": 2952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2955:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2950, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2955:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2954:6:25" + }, + "scope": 2981, + "src": "2758:647:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2982, + "src": "772:2636:25" + } + ], + "src": "597:2812:25" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.906Z" +} \ No newline at end of file diff --git a/artifacts/json/Ownable.json b/artifacts/json/Ownable.json index 5c195c45a..032207f28 100644 --- a/artifacts/json/Ownable.json +++ b/artifacts/json/Ownable.json @@ -74,24 +74,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103c1806100606000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063715018a61461005c5780638da5cb5b14610073578063f2fde38b146100ca575b600080fd5b34801561006857600080fd5b5061007161010d565b005b34801561007f57600080fd5b5061008861020f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100d657600080fd5b5061010b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610234565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561016857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561028f57600080fd5b6102988161029b565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156102d757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058200bde9433d87d533aaca2eb3f6d8b43ae341e97a603406fdaec7ae390843b27d50029", - "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063715018a61461005c5780638da5cb5b14610073578063f2fde38b146100ca575b600080fd5b34801561006857600080fd5b5061007161010d565b005b34801561007f57600080fd5b5061008861020f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100d657600080fd5b5061010b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610234565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561016857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561028f57600080fd5b6102988161029b565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156102d757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058200bde9433d87d533aaca2eb3f6d8b43ae341e97a603406fdaec7ae390843b27d50029", - "sourceMap": "217:1294:11:-;;;540:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;540:50:11;575:10;567:5;;:18;;;;;;;;;;;;;;;;;;217:1294;;;;;;", - "deployedSourceMap": "217:1294:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:11;;;;;;238:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;238:20::-;;;;;;;;;;;;;:::o;1100:103::-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1338:171::-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", + "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103c1806100606000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063715018a61461005c5780638da5cb5b14610073578063f2fde38b146100ca575b600080fd5b34801561006857600080fd5b5061007161010d565b005b34801561007f57600080fd5b5061008861020f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100d657600080fd5b5061010b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610234565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561016857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561028f57600080fd5b6102988161029b565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156102d757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582000f70b9c0f690fcc97f2f556c70a4ca29cc04d0e8c5f25c1b038c2c26f904fac0029", + "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063715018a61461005c5780638da5cb5b14610073578063f2fde38b146100ca575b600080fd5b34801561006857600080fd5b5061007161010d565b005b34801561007f57600080fd5b5061008861020f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100d657600080fd5b5061010b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610234565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561016857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561028f57600080fd5b6102988161029b565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156102d757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582000f70b9c0f690fcc97f2f556c70a4ca29cc04d0e8c5f25c1b038c2c26f904fac0029", + "sourceMap": "217:1294:5:-;;;540:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;540:50:5;575:10;567:5;;:18;;;;;;;;;;;;;;;;;;217:1294;;;;;;", + "deployedSourceMap": "217:1294:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:5;;;;;;238:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:5;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;238:20::-;;;;;;;;;;;;;:::o;1100:103::-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1338:171::-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", "source": "pragma solidity ^0.4.23;\n\n\n/**\n * @title Ownable\n * @dev The Ownable contract has an owner address, and provides basic authorization control\n * functions, this simplifies the implementation of \"user permissions\".\n */\ncontract Ownable {\n address public owner;\n\n\n event OwnershipRenounced(address indexed previousOwner);\n event OwnershipTransferred(\n address indexed previousOwner,\n address indexed newOwner\n );\n\n\n /**\n * @dev The Ownable constructor sets the original `owner` of the contract to the sender\n * account.\n */\n constructor() public {\n owner = msg.sender;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(msg.sender == owner);\n _;\n }\n\n /**\n * @dev Allows the current owner to relinquish control of the contract.\n */\n function renounceOwnership() public onlyOwner {\n emit OwnershipRenounced(owner);\n owner = address(0);\n }\n\n /**\n * @dev Allows the current owner to transfer control of the contract to a newOwner.\n * @param _newOwner The address to transfer ownership to.\n */\n function transferOwnership(address _newOwner) public onlyOwner {\n _transferOwnership(_newOwner);\n }\n\n /**\n * @dev Transfers control of the contract to a newOwner.\n * @param _newOwner The address to transfer ownership to.\n */\n function _transferOwnership(address _newOwner) internal {\n require(_newOwner != address(0));\n emit OwnershipTransferred(owner, _newOwner);\n owner = _newOwner;\n }\n}\n", "sourcePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "ast": { "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "exportedSymbols": { "Ownable": [ - 2241 + 969 ] }, - "id": 2242, + "id": 970, "nodeType": "SourceUnit", "nodes": [ { - "id": 2157, + "id": 885, "literals": [ "solidity", "^", @@ -99,7 +99,7 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:11" + "src": "0:24:5" }, { "baseContracts": [], @@ -107,20 +107,20 @@ "contractKind": "contract", "documentation": "@title Ownable\n@dev The Ownable contract has an owner address, and provides basic authorization control\nfunctions, this simplifies the implementation of \"user permissions\".", "fullyImplemented": true, - "id": 2241, + "id": 969, "linearizedBaseContracts": [ - 2241 + 969 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2159, + "id": 887, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "238:20:11", + "scope": 969, + "src": "238:20:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -128,10 +128,10 @@ "typeString": "address" }, "typeName": { - "id": 2158, + "id": 886, "name": "address", "nodeType": "ElementaryTypeName", - "src": "238:7:11", + "src": "238:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -143,21 +143,21 @@ { "anonymous": false, "documentation": null, - "id": 2163, + "id": 891, "name": "OwnershipRenounced", "nodeType": "EventDefinition", "parameters": { - "id": 2162, + "id": 890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2161, + "id": 889, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 2163, - "src": "289:29:11", + "scope": 891, + "src": "289:29:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -165,10 +165,10 @@ "typeString": "address" }, "typeName": { - "id": 2160, + "id": 888, "name": "address", "nodeType": "ElementaryTypeName", - "src": "289:7:11", + "src": "289:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -178,28 +178,28 @@ "visibility": "internal" } ], - "src": "288:31:11" + "src": "288:31:5" }, - "src": "264:56:11" + "src": "264:56:5" }, { "anonymous": false, "documentation": null, - "id": 2169, + "id": 897, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 2168, + "id": 896, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2165, + "id": 893, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 2169, - "src": "355:29:11", + "scope": 897, + "src": "355:29:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -207,10 +207,10 @@ "typeString": "address" }, "typeName": { - "id": 2164, + "id": 892, "name": "address", "nodeType": "ElementaryTypeName", - "src": "355:7:11", + "src": "355:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -221,12 +221,12 @@ }, { "constant": false, - "id": 2167, + "id": 895, "indexed": true, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 2169, - "src": "390:24:11", + "scope": 897, + "src": "390:24:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -234,10 +234,10 @@ "typeString": "address" }, "typeName": { - "id": 2166, + "id": 894, "name": "address", "nodeType": "ElementaryTypeName", - "src": "390:7:11", + "src": "390:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -247,32 +247,32 @@ "visibility": "internal" } ], - "src": "349:69:11" + "src": "349:69:5" }, - "src": "323:96:11" + "src": "323:96:5" }, { "body": { - "id": 2177, + "id": 905, "nodeType": "Block", - "src": "561:29:11", + "src": "561:29:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 2175, + "id": 903, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2172, + "id": 900, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "567:5:11", + "referencedDeclaration": 887, + "src": "567:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -284,18 +284,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2173, + "id": 901, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "575:3:11", + "referencedDeclaration": 1436, + "src": "575:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2174, + "id": 902, "isConstant": false, "isLValue": false, "isPure": false, @@ -303,26 +303,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "575:10:11", + "src": "575:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "567:18:11", + "src": "567:18:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2176, + "id": 904, "nodeType": "ExpressionStatement", - "src": "567:18:11" + "src": "567:18:5" } ] }, "documentation": "@dev The Ownable constructor sets the original `owner` of the contract to the sender\naccount.", - "id": 2178, + "id": 906, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -330,29 +330,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2170, + "id": 898, "nodeType": "ParameterList", "parameters": [], - "src": "551:2:11" + "src": "551:2:5" }, "payable": false, "returnParameters": { - "id": 2171, + "id": 899, "nodeType": "ParameterList", "parameters": [], - "src": "561:0:11" + "src": "561:0:5" }, - "scope": 2241, - "src": "540:50:11", + "scope": 969, + "src": "540:50:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2188, + "id": 916, "nodeType": "Block", - "src": "691:46:11", + "src": "691:46:5", "statements": [ { "expression": { @@ -364,7 +364,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2184, + "id": 912, "isConstant": false, "isLValue": false, "isPure": false, @@ -373,18 +373,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2181, + "id": 909, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "705:3:11", + "referencedDeclaration": 1436, + "src": "705:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2182, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, @@ -392,7 +392,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "705:10:11", + "src": "705:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -402,18 +402,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2183, + "id": 911, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "719:5:11", + "referencedDeclaration": 887, + "src": "719:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "705:19:11", + "src": "705:19:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -427,21 +427,21 @@ "typeString": "bool" } ], - "id": 2180, + "id": 908, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "697:7:11", + "referencedDeclaration": 1439, + "src": "697:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2185, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, @@ -449,41 +449,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "697:28:11", + "src": "697:28:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2186, + "id": 914, "nodeType": "ExpressionStatement", - "src": "697:28:11" + "src": "697:28:5" }, { - "id": 2187, + "id": 915, "nodeType": "PlaceholderStatement", - "src": "731:1:11" + "src": "731:1:5" } ] }, "documentation": "@dev Throws if called by any account other than the owner.", - "id": 2189, + "id": 917, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 2179, + "id": 907, "nodeType": "ParameterList", "parameters": [], - "src": "688:2:11" + "src": "688:2:5" }, - "src": "670:67:11", + "src": "670:67:5", "visibility": "internal" }, { "body": { - "id": 2204, + "id": 932, "nodeType": "Block", - "src": "873:65:11", + "src": "873:65:5", "statements": [ { "eventCall": { @@ -491,12 +491,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2195, + "id": 923, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "903:5:11", + "referencedDeclaration": 887, + "src": "903:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -510,18 +510,18 @@ "typeString": "address" } ], - "id": 2194, + "id": 922, "name": "OwnershipRenounced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, - "src": "884:18:11", + "referencedDeclaration": 891, + "src": "884:18:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2196, + "id": 924, "isConstant": false, "isLValue": false, "isPure": false, @@ -529,32 +529,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "884:25:11", + "src": "884:25:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2197, + "id": 925, "nodeType": "EmitStatement", - "src": "879:30:11" + "src": "879:30:5" }, { "expression": { "argumentTypes": null, - "id": 2202, + "id": 930, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2198, + "id": 926, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "915:5:11", + "referencedDeclaration": 887, + "src": "915:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -568,14 +568,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2200, + "id": 928, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "931:1:11", + "src": "931:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -591,20 +591,20 @@ "typeString": "int_const 0" } ], - "id": 2199, + "id": 927, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "923:7:11", + "src": "923:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2201, + "id": 929, "isConstant": false, "isLValue": false, "isPure": true, @@ -612,76 +612,76 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "923:10:11", + "src": "923:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "915:18:11", + "src": "915:18:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2203, + "id": 931, "nodeType": "ExpressionStatement", - "src": "915:18:11" + "src": "915:18:5" } ] }, "documentation": "@dev Allows the current owner to relinquish control of the contract.", - "id": 2205, + "id": 933, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2192, + "id": 920, "modifierName": { "argumentTypes": null, - "id": 2191, + "id": 919, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "863:9:11", + "referencedDeclaration": 917, + "src": "863:9:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "863:9:11" + "src": "863:9:5" } ], "name": "renounceOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2190, + "id": 918, "nodeType": "ParameterList", "parameters": [], - "src": "853:2:11" + "src": "853:2:5" }, "payable": false, "returnParameters": { - "id": 2193, + "id": 921, "nodeType": "ParameterList", "parameters": [], - "src": "873:0:11" + "src": "873:0:5" }, - "scope": 2241, - "src": "827:111:11", + "scope": 969, + "src": "827:111:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2216, + "id": 944, "nodeType": "Block", - "src": "1163:40:11", + "src": "1163:40:5", "statements": [ { "expression": { @@ -689,12 +689,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2213, + "id": 941, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2207, - "src": "1188:9:11", + "referencedDeclaration": 935, + "src": "1188:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -708,18 +708,18 @@ "typeString": "address" } ], - "id": 2212, + "id": 940, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "1169:18:11", + "referencedDeclaration": 968, + "src": "1169:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2214, + "id": 942, "isConstant": false, "isLValue": false, "isPure": false, @@ -727,57 +727,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1169:29:11", + "src": "1169:29:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2215, + "id": 943, "nodeType": "ExpressionStatement", - "src": "1169:29:11" + "src": "1169:29:5" } ] }, "documentation": "@dev Allows the current owner to transfer control of the contract to a newOwner.\n@param _newOwner The address to transfer ownership to.", - "id": 2217, + "id": 945, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2210, + "id": 938, "modifierName": { "argumentTypes": null, - "id": 2209, + "id": 937, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "1153:9:11", + "referencedDeclaration": 917, + "src": "1153:9:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1153:9:11" + "src": "1153:9:5" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2208, + "id": 936, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2207, + "id": 935, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 2217, - "src": "1127:17:11", + "scope": 945, + "src": "1127:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -785,10 +785,10 @@ "typeString": "address" }, "typeName": { - "id": 2206, + "id": 934, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1127:7:11", + "src": "1127:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -798,26 +798,26 @@ "visibility": "internal" } ], - "src": "1126:19:11" + "src": "1126:19:5" }, "payable": false, "returnParameters": { - "id": 2211, + "id": 939, "nodeType": "ParameterList", "parameters": [], - "src": "1163:0:11" + "src": "1163:0:5" }, - "scope": 2241, - "src": "1100:103:11", + "scope": 969, + "src": "1100:103:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2239, + "id": 967, "nodeType": "Block", - "src": "1394:115:11", + "src": "1394:115:5", "statements": [ { "expression": { @@ -829,19 +829,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2227, + "id": 955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2223, + "id": 951, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "1408:9:11", + "referencedDeclaration": 947, + "src": "1408:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -855,14 +855,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2225, + "id": 953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1429:1:11", + "src": "1429:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -878,20 +878,20 @@ "typeString": "int_const 0" } ], - "id": 2224, + "id": 952, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1421:7:11", + "src": "1421:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2226, + "id": 954, "isConstant": false, "isLValue": false, "isPure": true, @@ -899,13 +899,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1421:10:11", + "src": "1421:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1408:23:11", + "src": "1408:23:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -919,21 +919,21 @@ "typeString": "bool" } ], - "id": 2222, + "id": 950, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "1400:7:11", + "referencedDeclaration": 1439, + "src": "1400:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2228, + "id": 956, "isConstant": false, "isLValue": false, "isPure": false, @@ -941,15 +941,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1400:32:11", + "src": "1400:32:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2229, + "id": 957, "nodeType": "ExpressionStatement", - "src": "1400:32:11" + "src": "1400:32:5" }, { "eventCall": { @@ -957,12 +957,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2231, + "id": 959, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "1464:5:11", + "referencedDeclaration": 887, + "src": "1464:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -970,12 +970,12 @@ }, { "argumentTypes": null, - "id": 2232, + "id": 960, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "1471:9:11", + "referencedDeclaration": 947, + "src": "1471:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -993,18 +993,18 @@ "typeString": "address" } ], - "id": 2230, + "id": 958, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "1443:20:11", + "referencedDeclaration": 897, + "src": "1443:20:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 2233, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, @@ -1012,32 +1012,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1443:38:11", + "src": "1443:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2234, + "id": 962, "nodeType": "EmitStatement", - "src": "1438:43:11" + "src": "1438:43:5" }, { "expression": { "argumentTypes": null, - "id": 2237, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2235, + "id": 963, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "1487:5:11", + "referencedDeclaration": 887, + "src": "1487:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1047,31 +1047,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2236, + "id": 964, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "1495:9:11", + "referencedDeclaration": 947, + "src": "1495:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1487:17:11", + "src": "1487:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2238, + "id": 966, "nodeType": "ExpressionStatement", - "src": "1487:17:11" + "src": "1487:17:5" } ] }, "documentation": "@dev Transfers control of the contract to a newOwner.\n@param _newOwner The address to transfer ownership to.", - "id": 2240, + "id": 968, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1079,16 +1079,16 @@ "name": "_transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2220, + "id": 948, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2219, + "id": 947, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "1366:17:11", + "scope": 968, + "src": "1366:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1096,10 +1096,10 @@ "typeString": "address" }, "typeName": { - "id": 2218, + "id": 946, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1366:7:11", + "src": "1366:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1109,40 +1109,40 @@ "visibility": "internal" } ], - "src": "1365:19:11" + "src": "1365:19:5" }, "payable": false, "returnParameters": { - "id": 2221, + "id": 949, "nodeType": "ParameterList", "parameters": [], - "src": "1394:0:11" + "src": "1394:0:5" }, - "scope": 2241, - "src": "1338:171:11", + "scope": 969, + "src": "1338:171:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 2242, - "src": "217:1294:11" + "scope": 970, + "src": "217:1294:5" } ], - "src": "0:1512:11" + "src": "0:1512:5" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "exportedSymbols": { "Ownable": [ - 2241 + 969 ] }, - "id": 2242, + "id": 970, "nodeType": "SourceUnit", "nodes": [ { - "id": 2157, + "id": 885, "literals": [ "solidity", "^", @@ -1150,7 +1150,7 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:11" + "src": "0:24:5" }, { "baseContracts": [], @@ -1158,20 +1158,20 @@ "contractKind": "contract", "documentation": "@title Ownable\n@dev The Ownable contract has an owner address, and provides basic authorization control\nfunctions, this simplifies the implementation of \"user permissions\".", "fullyImplemented": true, - "id": 2241, + "id": 969, "linearizedBaseContracts": [ - 2241 + 969 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2159, + "id": 887, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "238:20:11", + "scope": 969, + "src": "238:20:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1179,10 +1179,10 @@ "typeString": "address" }, "typeName": { - "id": 2158, + "id": 886, "name": "address", "nodeType": "ElementaryTypeName", - "src": "238:7:11", + "src": "238:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1194,21 +1194,21 @@ { "anonymous": false, "documentation": null, - "id": 2163, + "id": 891, "name": "OwnershipRenounced", "nodeType": "EventDefinition", "parameters": { - "id": 2162, + "id": 890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2161, + "id": 889, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 2163, - "src": "289:29:11", + "scope": 891, + "src": "289:29:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1216,10 +1216,10 @@ "typeString": "address" }, "typeName": { - "id": 2160, + "id": 888, "name": "address", "nodeType": "ElementaryTypeName", - "src": "289:7:11", + "src": "289:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1229,28 +1229,28 @@ "visibility": "internal" } ], - "src": "288:31:11" + "src": "288:31:5" }, - "src": "264:56:11" + "src": "264:56:5" }, { "anonymous": false, "documentation": null, - "id": 2169, + "id": 897, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 2168, + "id": 896, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2165, + "id": 893, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 2169, - "src": "355:29:11", + "scope": 897, + "src": "355:29:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1258,10 +1258,10 @@ "typeString": "address" }, "typeName": { - "id": 2164, + "id": 892, "name": "address", "nodeType": "ElementaryTypeName", - "src": "355:7:11", + "src": "355:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1272,12 +1272,12 @@ }, { "constant": false, - "id": 2167, + "id": 895, "indexed": true, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 2169, - "src": "390:24:11", + "scope": 897, + "src": "390:24:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1285,10 +1285,10 @@ "typeString": "address" }, "typeName": { - "id": 2166, + "id": 894, "name": "address", "nodeType": "ElementaryTypeName", - "src": "390:7:11", + "src": "390:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1298,32 +1298,32 @@ "visibility": "internal" } ], - "src": "349:69:11" + "src": "349:69:5" }, - "src": "323:96:11" + "src": "323:96:5" }, { "body": { - "id": 2177, + "id": 905, "nodeType": "Block", - "src": "561:29:11", + "src": "561:29:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 2175, + "id": 903, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2172, + "id": 900, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "567:5:11", + "referencedDeclaration": 887, + "src": "567:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1335,18 +1335,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2173, + "id": 901, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "575:3:11", + "referencedDeclaration": 1436, + "src": "575:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2174, + "id": 902, "isConstant": false, "isLValue": false, "isPure": false, @@ -1354,26 +1354,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "575:10:11", + "src": "575:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "567:18:11", + "src": "567:18:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2176, + "id": 904, "nodeType": "ExpressionStatement", - "src": "567:18:11" + "src": "567:18:5" } ] }, "documentation": "@dev The Ownable constructor sets the original `owner` of the contract to the sender\naccount.", - "id": 2178, + "id": 906, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1381,29 +1381,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2170, + "id": 898, "nodeType": "ParameterList", "parameters": [], - "src": "551:2:11" + "src": "551:2:5" }, "payable": false, "returnParameters": { - "id": 2171, + "id": 899, "nodeType": "ParameterList", "parameters": [], - "src": "561:0:11" + "src": "561:0:5" }, - "scope": 2241, - "src": "540:50:11", + "scope": 969, + "src": "540:50:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2188, + "id": 916, "nodeType": "Block", - "src": "691:46:11", + "src": "691:46:5", "statements": [ { "expression": { @@ -1415,7 +1415,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2184, + "id": 912, "isConstant": false, "isLValue": false, "isPure": false, @@ -1424,18 +1424,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2181, + "id": 909, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "705:3:11", + "referencedDeclaration": 1436, + "src": "705:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2182, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, @@ -1443,7 +1443,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "705:10:11", + "src": "705:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1453,18 +1453,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2183, + "id": 911, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "719:5:11", + "referencedDeclaration": 887, + "src": "719:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "705:19:11", + "src": "705:19:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1478,21 +1478,21 @@ "typeString": "bool" } ], - "id": 2180, + "id": 908, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "697:7:11", + "referencedDeclaration": 1439, + "src": "697:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2185, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, @@ -1500,41 +1500,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "697:28:11", + "src": "697:28:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2186, + "id": 914, "nodeType": "ExpressionStatement", - "src": "697:28:11" + "src": "697:28:5" }, { - "id": 2187, + "id": 915, "nodeType": "PlaceholderStatement", - "src": "731:1:11" + "src": "731:1:5" } ] }, "documentation": "@dev Throws if called by any account other than the owner.", - "id": 2189, + "id": 917, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 2179, + "id": 907, "nodeType": "ParameterList", "parameters": [], - "src": "688:2:11" + "src": "688:2:5" }, - "src": "670:67:11", + "src": "670:67:5", "visibility": "internal" }, { "body": { - "id": 2204, + "id": 932, "nodeType": "Block", - "src": "873:65:11", + "src": "873:65:5", "statements": [ { "eventCall": { @@ -1542,12 +1542,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2195, + "id": 923, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "903:5:11", + "referencedDeclaration": 887, + "src": "903:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1561,18 +1561,18 @@ "typeString": "address" } ], - "id": 2194, + "id": 922, "name": "OwnershipRenounced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, - "src": "884:18:11", + "referencedDeclaration": 891, + "src": "884:18:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2196, + "id": 924, "isConstant": false, "isLValue": false, "isPure": false, @@ -1580,32 +1580,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "884:25:11", + "src": "884:25:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2197, + "id": 925, "nodeType": "EmitStatement", - "src": "879:30:11" + "src": "879:30:5" }, { "expression": { "argumentTypes": null, - "id": 2202, + "id": 930, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2198, + "id": 926, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "915:5:11", + "referencedDeclaration": 887, + "src": "915:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1619,14 +1619,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2200, + "id": 928, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "931:1:11", + "src": "931:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1642,20 +1642,20 @@ "typeString": "int_const 0" } ], - "id": 2199, + "id": 927, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "923:7:11", + "src": "923:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2201, + "id": 929, "isConstant": false, "isLValue": false, "isPure": true, @@ -1663,76 +1663,76 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "923:10:11", + "src": "923:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "915:18:11", + "src": "915:18:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2203, + "id": 931, "nodeType": "ExpressionStatement", - "src": "915:18:11" + "src": "915:18:5" } ] }, "documentation": "@dev Allows the current owner to relinquish control of the contract.", - "id": 2205, + "id": 933, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2192, + "id": 920, "modifierName": { "argumentTypes": null, - "id": 2191, + "id": 919, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "863:9:11", + "referencedDeclaration": 917, + "src": "863:9:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "863:9:11" + "src": "863:9:5" } ], "name": "renounceOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2190, + "id": 918, "nodeType": "ParameterList", "parameters": [], - "src": "853:2:11" + "src": "853:2:5" }, "payable": false, "returnParameters": { - "id": 2193, + "id": 921, "nodeType": "ParameterList", "parameters": [], - "src": "873:0:11" + "src": "873:0:5" }, - "scope": 2241, - "src": "827:111:11", + "scope": 969, + "src": "827:111:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2216, + "id": 944, "nodeType": "Block", - "src": "1163:40:11", + "src": "1163:40:5", "statements": [ { "expression": { @@ -1740,12 +1740,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2213, + "id": 941, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2207, - "src": "1188:9:11", + "referencedDeclaration": 935, + "src": "1188:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1759,18 +1759,18 @@ "typeString": "address" } ], - "id": 2212, + "id": 940, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "1169:18:11", + "referencedDeclaration": 968, + "src": "1169:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2214, + "id": 942, "isConstant": false, "isLValue": false, "isPure": false, @@ -1778,57 +1778,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1169:29:11", + "src": "1169:29:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2215, + "id": 943, "nodeType": "ExpressionStatement", - "src": "1169:29:11" + "src": "1169:29:5" } ] }, "documentation": "@dev Allows the current owner to transfer control of the contract to a newOwner.\n@param _newOwner The address to transfer ownership to.", - "id": 2217, + "id": 945, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2210, + "id": 938, "modifierName": { "argumentTypes": null, - "id": 2209, + "id": 937, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "1153:9:11", + "referencedDeclaration": 917, + "src": "1153:9:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1153:9:11" + "src": "1153:9:5" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2208, + "id": 936, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2207, + "id": 935, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 2217, - "src": "1127:17:11", + "scope": 945, + "src": "1127:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1836,10 +1836,10 @@ "typeString": "address" }, "typeName": { - "id": 2206, + "id": 934, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1127:7:11", + "src": "1127:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1849,26 +1849,26 @@ "visibility": "internal" } ], - "src": "1126:19:11" + "src": "1126:19:5" }, "payable": false, "returnParameters": { - "id": 2211, + "id": 939, "nodeType": "ParameterList", "parameters": [], - "src": "1163:0:11" + "src": "1163:0:5" }, - "scope": 2241, - "src": "1100:103:11", + "scope": 969, + "src": "1100:103:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2239, + "id": 967, "nodeType": "Block", - "src": "1394:115:11", + "src": "1394:115:5", "statements": [ { "expression": { @@ -1880,19 +1880,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2227, + "id": 955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2223, + "id": 951, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "1408:9:11", + "referencedDeclaration": 947, + "src": "1408:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1906,14 +1906,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2225, + "id": 953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1429:1:11", + "src": "1429:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1929,20 +1929,20 @@ "typeString": "int_const 0" } ], - "id": 2224, + "id": 952, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1421:7:11", + "src": "1421:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2226, + "id": 954, "isConstant": false, "isLValue": false, "isPure": true, @@ -1950,13 +1950,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1421:10:11", + "src": "1421:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1408:23:11", + "src": "1408:23:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1970,21 +1970,21 @@ "typeString": "bool" } ], - "id": 2222, + "id": 950, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "1400:7:11", + "referencedDeclaration": 1439, + "src": "1400:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2228, + "id": 956, "isConstant": false, "isLValue": false, "isPure": false, @@ -1992,15 +1992,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1400:32:11", + "src": "1400:32:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2229, + "id": 957, "nodeType": "ExpressionStatement", - "src": "1400:32:11" + "src": "1400:32:5" }, { "eventCall": { @@ -2008,12 +2008,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2231, + "id": 959, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "1464:5:11", + "referencedDeclaration": 887, + "src": "1464:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2021,12 +2021,12 @@ }, { "argumentTypes": null, - "id": 2232, + "id": 960, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "1471:9:11", + "referencedDeclaration": 947, + "src": "1471:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2044,18 +2044,18 @@ "typeString": "address" } ], - "id": 2230, + "id": 958, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "1443:20:11", + "referencedDeclaration": 897, + "src": "1443:20:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 2233, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, @@ -2063,32 +2063,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1443:38:11", + "src": "1443:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2234, + "id": 962, "nodeType": "EmitStatement", - "src": "1438:43:11" + "src": "1438:43:5" }, { "expression": { "argumentTypes": null, - "id": 2237, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2235, + "id": 963, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "1487:5:11", + "referencedDeclaration": 887, + "src": "1487:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2098,31 +2098,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2236, + "id": 964, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "1495:9:11", + "referencedDeclaration": 947, + "src": "1495:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1487:17:11", + "src": "1487:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2238, + "id": 966, "nodeType": "ExpressionStatement", - "src": "1487:17:11" + "src": "1487:17:5" } ] }, "documentation": "@dev Transfers control of the contract to a newOwner.\n@param _newOwner The address to transfer ownership to.", - "id": 2240, + "id": 968, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2130,16 +2130,16 @@ "name": "_transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2220, + "id": 948, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2219, + "id": 947, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "1366:17:11", + "scope": 968, + "src": "1366:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2147,10 +2147,10 @@ "typeString": "address" }, "typeName": { - "id": 2218, + "id": 946, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1366:7:11", + "src": "1366:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2160,33 +2160,33 @@ "visibility": "internal" } ], - "src": "1365:19:11" + "src": "1365:19:5" }, "payable": false, "returnParameters": { - "id": 2221, + "id": 949, "nodeType": "ParameterList", "parameters": [], - "src": "1394:0:11" + "src": "1394:0:5" }, - "scope": 2241, - "src": "1338:171:11", + "scope": 969, + "src": "1338:171:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 2242, - "src": "217:1294:11" + "scope": 970, + "src": "217:1294:5" } ], - "src": "0:1512:11" + "src": "0:1512:5" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.581Z" + "updatedAt": "2018-07-07T15:28:53.734Z" } \ No newline at end of file diff --git a/artifacts/json/SafeMath.json b/artifacts/json/SafeMath.json index f79915945..fe8de8cb7 100644 --- a/artifacts/json/SafeMath.json +++ b/artifacts/json/SafeMath.json @@ -1,24 +1,24 @@ { "contractName": "SafeMath", "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820f41fd7e6ebc279505f2532be32bbe097cc9ba0831420461d07f56e23cdd0d7ca0029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820f41fd7e6ebc279505f2532be32bbe097cc9ba0831420461d07f56e23cdd0d7ca0029", - "sourceMap": "117:1222:10:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "117:1222:10:-;;;;;;;;", + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058203291af8d8fa31686103156453254fbb1b583fc2b8c3fe061aaa0d693017628b60029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058203291af8d8fa31686103156453254fbb1b583fc2b8c3fe061aaa0d693017628b60029", + "sourceMap": "117:1222:4:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "117:1222:4:-;;;;;;;;", "source": "pragma solidity ^0.4.23;\n\n\n/**\n * @title SafeMath\n * @dev Math operations with safety checks that throw on error\n */\nlibrary SafeMath {\n\n /**\n * @dev Multiplies two numbers, throws on overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\n // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\n if (a == 0) {\n return 0;\n }\n\n c = a * b;\n assert(c / a == b);\n return c;\n }\n\n /**\n * @dev Integer division of two numbers, truncating the quotient.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // assert(b > 0); // Solidity automatically throws when dividing by 0\n // uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n return a / b;\n }\n\n /**\n * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n assert(b <= a);\n return a - b;\n }\n\n /**\n * @dev Adds two numbers, throws on overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\n c = a + b;\n assert(c >= a);\n return c;\n }\n}\n", "sourcePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "ast": { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 2155 + 883 ] }, - "id": 2156, + "id": 884, "nodeType": "SourceUnit", "nodes": [ { - "id": 2063, + "id": 791, "literals": [ "solidity", "^", @@ -26,7 +26,7 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:10" + "src": "0:24:4" }, { "baseContracts": [], @@ -34,18 +34,18 @@ "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that throw on error", "fullyImplemented": true, - "id": 2155, + "id": 883, "linearizedBaseContracts": [ - 2155 + 883 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2095, + "id": 823, "nodeType": "Block", - "src": "272:304:10", + "src": "272:304:4", "statements": [ { "condition": { @@ -54,19 +54,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2074, + "id": 802, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2072, + "id": 800, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "487:1:10", + "referencedDeclaration": 793, + "src": "487:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -77,14 +77,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2073, + "id": 801, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "492:1:10", + "src": "492:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -92,33 +92,33 @@ }, "value": "0" }, - "src": "487:6:10", + "src": "487:6:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2078, + "id": 806, "nodeType": "IfStatement", - "src": "483:35:10", + "src": "483:35:4", "trueBody": { - "id": 2077, + "id": 805, "nodeType": "Block", - "src": "495:23:10", + "src": "495:23:4", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 2075, + "id": 803, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "510:1:10", + "src": "510:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -126,10 +126,10 @@ }, "value": "0" }, - "functionReturnParameters": 2071, - "id": 2076, + "functionReturnParameters": 799, + "id": 804, "nodeType": "Return", - "src": "503:8:10" + "src": "503:8:4" } ] } @@ -137,19 +137,19 @@ { "expression": { "argumentTypes": null, - "id": 2083, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2079, + "id": 807, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "524:1:10", + "referencedDeclaration": 798, + "src": "524:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -163,19 +163,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2082, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2080, + "id": 808, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "528:1:10", + "referencedDeclaration": 793, + "src": "528:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -185,32 +185,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 2081, + "id": 809, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "532:1:10", + "referencedDeclaration": 795, + "src": "532:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "528:5:10", + "src": "528:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "524:9:10", + "src": "524:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2084, + "id": 812, "nodeType": "ExpressionStatement", - "src": "524:9:10" + "src": "524:9:4" }, { "expression": { @@ -222,7 +222,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2090, + "id": 818, "isConstant": false, "isLValue": false, "isPure": false, @@ -233,19 +233,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2088, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2086, + "id": 814, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "546:1:10", + "referencedDeclaration": 798, + "src": "546:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -255,18 +255,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 2087, + "id": 815, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "550:1:10", + "referencedDeclaration": 793, + "src": "550:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "546:5:10", + "src": "546:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -276,18 +276,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2089, + "id": 817, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "555:1:10", + "referencedDeclaration": 795, + "src": "555:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "546:10:10", + "src": "546:10:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -301,18 +301,18 @@ "typeString": "bool" } ], - "id": 2085, + "id": 813, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "539:6:10", + "referencedDeclaration": 1425, + "src": "539:6:4", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2091, + "id": 819, "isConstant": false, "isLValue": false, "isPure": false, @@ -320,39 +320,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "539:18:10", + "src": "539:18:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2092, + "id": 820, "nodeType": "ExpressionStatement", - "src": "539:18:10" + "src": "539:18:4" }, { "expression": { "argumentTypes": null, - "id": 2093, + "id": 821, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "570:1:10", + "referencedDeclaration": 798, + "src": "570:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2071, - "id": 2094, + "functionReturnParameters": 799, + "id": 822, "nodeType": "Return", - "src": "563:8:10" + "src": "563:8:4" } ] }, "documentation": "@dev Multiplies two numbers, throws on overflow.", - "id": 2096, + "id": 824, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -360,16 +360,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 2068, + "id": 796, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2065, + "id": 793, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "216:9:10", + "scope": 824, + "src": "216:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -377,10 +377,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2064, + "id": 792, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "216:7:10", + "src": "216:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -391,11 +391,11 @@ }, { "constant": false, - "id": 2067, + "id": 795, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "227:9:10", + "scope": 824, + "src": "227:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -403,10 +403,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2066, + "id": 794, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "227:7:10", + "src": "227:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -416,20 +416,20 @@ "visibility": "internal" } ], - "src": "215:22:10" + "src": "215:22:4" }, "payable": false, "returnParameters": { - "id": 2071, + "id": 799, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2070, + "id": 798, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "261:9:10", + "scope": 824, + "src": "261:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -437,10 +437,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2069, + "id": 797, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "261:7:10", + "src": "261:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -450,19 +450,19 @@ "visibility": "internal" } ], - "src": "260:11:10" + "src": "260:11:4" }, - "scope": 2155, - "src": "203:373:10", + "scope": 883, + "src": "203:373:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2109, + "id": 837, "nodeType": "Block", - "src": "725:205:10", + "src": "725:205:4", "statements": [ { "expression": { @@ -471,19 +471,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2107, + "id": 835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2105, + "id": 833, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2098, - "src": "920:1:10", + "referencedDeclaration": 826, + "src": "920:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -493,32 +493,32 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 2106, + "id": 834, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "924:1:10", + "referencedDeclaration": 828, + "src": "924:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "920:5:10", + "src": "920:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2104, - "id": 2108, + "functionReturnParameters": 832, + "id": 836, "nodeType": "Return", - "src": "913:12:10" + "src": "913:12:4" } ] }, "documentation": "@dev Integer division of two numbers, truncating the quotient.", - "id": 2110, + "id": 838, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -526,16 +526,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 2101, + "id": 829, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2098, + "id": 826, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "671:9:10", + "scope": 838, + "src": "671:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -543,10 +543,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2097, + "id": 825, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "671:7:10", + "src": "671:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -557,11 +557,11 @@ }, { "constant": false, - "id": 2100, + "id": 828, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "682:9:10", + "scope": 838, + "src": "682:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -569,10 +569,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2099, + "id": 827, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "682:7:10", + "src": "682:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -582,20 +582,20 @@ "visibility": "internal" } ], - "src": "670:22:10" + "src": "670:22:4" }, "payable": false, "returnParameters": { - "id": 2104, + "id": 832, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2103, + "id": 831, "name": "", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "716:7:10", + "scope": 838, + "src": "716:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -603,10 +603,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2102, + "id": 830, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "716:7:10", + "src": "716:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -616,19 +616,19 @@ "visibility": "internal" } ], - "src": "715:9:10" + "src": "715:9:4" }, - "scope": 2155, - "src": "658:272:10", + "scope": 883, + "src": "658:272:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2129, + "id": 857, "nodeType": "Block", - "src": "1109:43:10", + "src": "1109:43:4", "statements": [ { "expression": { @@ -640,19 +640,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2122, + "id": 850, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2120, + "id": 848, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2114, - "src": "1122:1:10", + "referencedDeclaration": 842, + "src": "1122:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -662,18 +662,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 2121, + "id": 849, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2112, - "src": "1127:1:10", + "referencedDeclaration": 840, + "src": "1127:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1122:6:10", + "src": "1122:6:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -687,18 +687,18 @@ "typeString": "bool" } ], - "id": 2119, + "id": 847, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "1115:6:10", + "referencedDeclaration": 1425, + "src": "1115:6:4", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2123, + "id": 851, "isConstant": false, "isLValue": false, "isPure": false, @@ -706,15 +706,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1115:14:10", + "src": "1115:14:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2124, + "id": 852, "nodeType": "ExpressionStatement", - "src": "1115:14:10" + "src": "1115:14:4" }, { "expression": { @@ -723,19 +723,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2127, + "id": 855, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2125, + "id": 853, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2112, - "src": "1142:1:10", + "referencedDeclaration": 840, + "src": "1142:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -745,32 +745,32 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 2126, + "id": 854, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2114, - "src": "1146:1:10", + "referencedDeclaration": 842, + "src": "1146:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1142:5:10", + "src": "1142:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2118, - "id": 2128, + "functionReturnParameters": 846, + "id": 856, "nodeType": "Return", - "src": "1135:12:10" + "src": "1135:12:4" } ] }, "documentation": "@dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).", - "id": 2130, + "id": 858, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -778,16 +778,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 2115, + "id": 843, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2112, + "id": 840, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2130, - "src": "1055:9:10", + "scope": 858, + "src": "1055:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -795,10 +795,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2111, + "id": 839, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1055:7:10", + "src": "1055:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -809,11 +809,11 @@ }, { "constant": false, - "id": 2114, + "id": 842, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2130, - "src": "1066:9:10", + "scope": 858, + "src": "1066:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -821,10 +821,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2113, + "id": 841, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1066:7:10", + "src": "1066:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -834,20 +834,20 @@ "visibility": "internal" } ], - "src": "1054:22:10" + "src": "1054:22:4" }, "payable": false, "returnParameters": { - "id": 2118, + "id": 846, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2117, + "id": 845, "name": "", "nodeType": "VariableDeclaration", - "scope": 2130, - "src": "1100:7:10", + "scope": 858, + "src": "1100:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -855,10 +855,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2116, + "id": 844, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1100:7:10", + "src": "1100:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -868,36 +868,36 @@ "visibility": "internal" } ], - "src": "1099:9:10" + "src": "1099:9:4" }, - "scope": 2155, - "src": "1042:110:10", + "scope": 883, + "src": "1042:110:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2153, + "id": 881, "nodeType": "Block", - "src": "1283:54:10", + "src": "1283:54:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 2143, + "id": 871, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2139, + "id": 867, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "1289:1:10", + "referencedDeclaration": 865, + "src": "1289:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -911,19 +911,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2142, + "id": 870, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2140, + "id": 868, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, - "src": "1293:1:10", + "referencedDeclaration": 860, + "src": "1293:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -933,32 +933,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2141, + "id": 869, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "1297:1:10", + "referencedDeclaration": 862, + "src": "1297:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1293:5:10", + "src": "1293:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1289:9:10", + "src": "1289:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2144, + "id": 872, "nodeType": "ExpressionStatement", - "src": "1289:9:10" + "src": "1289:9:4" }, { "expression": { @@ -970,19 +970,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2148, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2146, + "id": 874, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "1311:1:10", + "referencedDeclaration": 865, + "src": "1311:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -992,18 +992,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 2147, + "id": 875, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, - "src": "1316:1:10", + "referencedDeclaration": 860, + "src": "1316:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1311:6:10", + "src": "1311:6:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1017,18 +1017,18 @@ "typeString": "bool" } ], - "id": 2145, + "id": 873, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "1304:6:10", + "referencedDeclaration": 1425, + "src": "1304:6:4", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2149, + "id": 877, "isConstant": false, "isLValue": false, "isPure": false, @@ -1036,39 +1036,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1304:14:10", + "src": "1304:14:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2150, + "id": 878, "nodeType": "ExpressionStatement", - "src": "1304:14:10" + "src": "1304:14:4" }, { "expression": { "argumentTypes": null, - "id": 2151, + "id": 879, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "1331:1:10", + "referencedDeclaration": 865, + "src": "1331:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2138, - "id": 2152, + "functionReturnParameters": 866, + "id": 880, "nodeType": "Return", - "src": "1324:8:10" + "src": "1324:8:4" } ] }, "documentation": "@dev Adds two numbers, throws on overflow.", - "id": 2154, + "id": 882, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1076,16 +1076,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 2135, + "id": 863, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2132, + "id": 860, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2154, - "src": "1227:9:10", + "scope": 882, + "src": "1227:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1093,10 +1093,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2131, + "id": 859, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1227:7:10", + "src": "1227:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1107,11 +1107,11 @@ }, { "constant": false, - "id": 2134, + "id": 862, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2154, - "src": "1238:9:10", + "scope": 882, + "src": "1238:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1119,10 +1119,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2133, + "id": 861, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1238:7:10", + "src": "1238:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1132,20 +1132,20 @@ "visibility": "internal" } ], - "src": "1226:22:10" + "src": "1226:22:4" }, "payable": false, "returnParameters": { - "id": 2138, + "id": 866, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2137, + "id": 865, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2154, - "src": "1272:9:10", + "scope": 882, + "src": "1272:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1153,10 +1153,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2136, + "id": 864, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1272:7:10", + "src": "1272:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1166,33 +1166,33 @@ "visibility": "internal" } ], - "src": "1271:11:10" + "src": "1271:11:4" }, - "scope": 2155, - "src": "1214:123:10", + "scope": 883, + "src": "1214:123:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 2156, - "src": "117:1222:10" + "scope": 884, + "src": "117:1222:4" } ], - "src": "0:1340:10" + "src": "0:1340:4" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 2155 + 883 ] }, - "id": 2156, + "id": 884, "nodeType": "SourceUnit", "nodes": [ { - "id": 2063, + "id": 791, "literals": [ "solidity", "^", @@ -1200,7 +1200,7 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:10" + "src": "0:24:4" }, { "baseContracts": [], @@ -1208,18 +1208,18 @@ "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that throw on error", "fullyImplemented": true, - "id": 2155, + "id": 883, "linearizedBaseContracts": [ - 2155 + 883 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2095, + "id": 823, "nodeType": "Block", - "src": "272:304:10", + "src": "272:304:4", "statements": [ { "condition": { @@ -1228,19 +1228,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2074, + "id": 802, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2072, + "id": 800, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "487:1:10", + "referencedDeclaration": 793, + "src": "487:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1251,14 +1251,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2073, + "id": 801, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "492:1:10", + "src": "492:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1266,33 +1266,33 @@ }, "value": "0" }, - "src": "487:6:10", + "src": "487:6:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2078, + "id": 806, "nodeType": "IfStatement", - "src": "483:35:10", + "src": "483:35:4", "trueBody": { - "id": 2077, + "id": 805, "nodeType": "Block", - "src": "495:23:10", + "src": "495:23:4", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 2075, + "id": 803, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "510:1:10", + "src": "510:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1300,10 +1300,10 @@ }, "value": "0" }, - "functionReturnParameters": 2071, - "id": 2076, + "functionReturnParameters": 799, + "id": 804, "nodeType": "Return", - "src": "503:8:10" + "src": "503:8:4" } ] } @@ -1311,19 +1311,19 @@ { "expression": { "argumentTypes": null, - "id": 2083, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2079, + "id": 807, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "524:1:10", + "referencedDeclaration": 798, + "src": "524:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1337,19 +1337,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2082, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2080, + "id": 808, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "528:1:10", + "referencedDeclaration": 793, + "src": "528:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1359,32 +1359,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 2081, + "id": 809, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "532:1:10", + "referencedDeclaration": 795, + "src": "532:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "528:5:10", + "src": "528:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "524:9:10", + "src": "524:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2084, + "id": 812, "nodeType": "ExpressionStatement", - "src": "524:9:10" + "src": "524:9:4" }, { "expression": { @@ -1396,7 +1396,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2090, + "id": 818, "isConstant": false, "isLValue": false, "isPure": false, @@ -1407,19 +1407,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2088, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2086, + "id": 814, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "546:1:10", + "referencedDeclaration": 798, + "src": "546:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1429,18 +1429,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 2087, + "id": 815, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "550:1:10", + "referencedDeclaration": 793, + "src": "550:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "546:5:10", + "src": "546:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1450,18 +1450,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2089, + "id": 817, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "555:1:10", + "referencedDeclaration": 795, + "src": "555:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "546:10:10", + "src": "546:10:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1475,18 +1475,18 @@ "typeString": "bool" } ], - "id": 2085, + "id": 813, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "539:6:10", + "referencedDeclaration": 1425, + "src": "539:6:4", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2091, + "id": 819, "isConstant": false, "isLValue": false, "isPure": false, @@ -1494,39 +1494,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "539:18:10", + "src": "539:18:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2092, + "id": 820, "nodeType": "ExpressionStatement", - "src": "539:18:10" + "src": "539:18:4" }, { "expression": { "argumentTypes": null, - "id": 2093, + "id": 821, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "570:1:10", + "referencedDeclaration": 798, + "src": "570:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2071, - "id": 2094, + "functionReturnParameters": 799, + "id": 822, "nodeType": "Return", - "src": "563:8:10" + "src": "563:8:4" } ] }, "documentation": "@dev Multiplies two numbers, throws on overflow.", - "id": 2096, + "id": 824, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1534,16 +1534,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 2068, + "id": 796, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2065, + "id": 793, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "216:9:10", + "scope": 824, + "src": "216:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1551,10 +1551,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2064, + "id": 792, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "216:7:10", + "src": "216:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1565,11 +1565,11 @@ }, { "constant": false, - "id": 2067, + "id": 795, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "227:9:10", + "scope": 824, + "src": "227:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1577,10 +1577,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2066, + "id": 794, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "227:7:10", + "src": "227:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1590,20 +1590,20 @@ "visibility": "internal" } ], - "src": "215:22:10" + "src": "215:22:4" }, "payable": false, "returnParameters": { - "id": 2071, + "id": 799, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2070, + "id": 798, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "261:9:10", + "scope": 824, + "src": "261:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1611,10 +1611,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2069, + "id": 797, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "261:7:10", + "src": "261:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1624,19 +1624,19 @@ "visibility": "internal" } ], - "src": "260:11:10" + "src": "260:11:4" }, - "scope": 2155, - "src": "203:373:10", + "scope": 883, + "src": "203:373:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2109, + "id": 837, "nodeType": "Block", - "src": "725:205:10", + "src": "725:205:4", "statements": [ { "expression": { @@ -1645,19 +1645,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2107, + "id": 835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2105, + "id": 833, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2098, - "src": "920:1:10", + "referencedDeclaration": 826, + "src": "920:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1667,32 +1667,32 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 2106, + "id": 834, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "924:1:10", + "referencedDeclaration": 828, + "src": "924:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "920:5:10", + "src": "920:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2104, - "id": 2108, + "functionReturnParameters": 832, + "id": 836, "nodeType": "Return", - "src": "913:12:10" + "src": "913:12:4" } ] }, "documentation": "@dev Integer division of two numbers, truncating the quotient.", - "id": 2110, + "id": 838, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1700,16 +1700,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 2101, + "id": 829, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2098, + "id": 826, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "671:9:10", + "scope": 838, + "src": "671:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1717,10 +1717,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2097, + "id": 825, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "671:7:10", + "src": "671:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1731,11 +1731,11 @@ }, { "constant": false, - "id": 2100, + "id": 828, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "682:9:10", + "scope": 838, + "src": "682:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1743,10 +1743,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2099, + "id": 827, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "682:7:10", + "src": "682:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1756,20 +1756,20 @@ "visibility": "internal" } ], - "src": "670:22:10" + "src": "670:22:4" }, "payable": false, "returnParameters": { - "id": 2104, + "id": 832, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2103, + "id": 831, "name": "", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "716:7:10", + "scope": 838, + "src": "716:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1777,10 +1777,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2102, + "id": 830, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "716:7:10", + "src": "716:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1790,19 +1790,19 @@ "visibility": "internal" } ], - "src": "715:9:10" + "src": "715:9:4" }, - "scope": 2155, - "src": "658:272:10", + "scope": 883, + "src": "658:272:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2129, + "id": 857, "nodeType": "Block", - "src": "1109:43:10", + "src": "1109:43:4", "statements": [ { "expression": { @@ -1814,19 +1814,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2122, + "id": 850, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2120, + "id": 848, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2114, - "src": "1122:1:10", + "referencedDeclaration": 842, + "src": "1122:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1836,18 +1836,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 2121, + "id": 849, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2112, - "src": "1127:1:10", + "referencedDeclaration": 840, + "src": "1127:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1122:6:10", + "src": "1122:6:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1861,18 +1861,18 @@ "typeString": "bool" } ], - "id": 2119, + "id": 847, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "1115:6:10", + "referencedDeclaration": 1425, + "src": "1115:6:4", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2123, + "id": 851, "isConstant": false, "isLValue": false, "isPure": false, @@ -1880,15 +1880,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1115:14:10", + "src": "1115:14:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2124, + "id": 852, "nodeType": "ExpressionStatement", - "src": "1115:14:10" + "src": "1115:14:4" }, { "expression": { @@ -1897,19 +1897,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2127, + "id": 855, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2125, + "id": 853, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2112, - "src": "1142:1:10", + "referencedDeclaration": 840, + "src": "1142:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1919,32 +1919,32 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 2126, + "id": 854, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2114, - "src": "1146:1:10", + "referencedDeclaration": 842, + "src": "1146:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1142:5:10", + "src": "1142:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2118, - "id": 2128, + "functionReturnParameters": 846, + "id": 856, "nodeType": "Return", - "src": "1135:12:10" + "src": "1135:12:4" } ] }, "documentation": "@dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).", - "id": 2130, + "id": 858, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1952,16 +1952,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 2115, + "id": 843, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2112, + "id": 840, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2130, - "src": "1055:9:10", + "scope": 858, + "src": "1055:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1969,10 +1969,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2111, + "id": 839, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1055:7:10", + "src": "1055:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1983,11 +1983,11 @@ }, { "constant": false, - "id": 2114, + "id": 842, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2130, - "src": "1066:9:10", + "scope": 858, + "src": "1066:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1995,10 +1995,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2113, + "id": 841, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1066:7:10", + "src": "1066:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2008,20 +2008,20 @@ "visibility": "internal" } ], - "src": "1054:22:10" + "src": "1054:22:4" }, "payable": false, "returnParameters": { - "id": 2118, + "id": 846, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2117, + "id": 845, "name": "", "nodeType": "VariableDeclaration", - "scope": 2130, - "src": "1100:7:10", + "scope": 858, + "src": "1100:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2029,10 +2029,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2116, + "id": 844, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1100:7:10", + "src": "1100:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2042,36 +2042,36 @@ "visibility": "internal" } ], - "src": "1099:9:10" + "src": "1099:9:4" }, - "scope": 2155, - "src": "1042:110:10", + "scope": 883, + "src": "1042:110:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2153, + "id": 881, "nodeType": "Block", - "src": "1283:54:10", + "src": "1283:54:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 2143, + "id": 871, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2139, + "id": 867, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "1289:1:10", + "referencedDeclaration": 865, + "src": "1289:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2085,19 +2085,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2142, + "id": 870, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2140, + "id": 868, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, - "src": "1293:1:10", + "referencedDeclaration": 860, + "src": "1293:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2107,32 +2107,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2141, + "id": 869, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "1297:1:10", + "referencedDeclaration": 862, + "src": "1297:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1293:5:10", + "src": "1293:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1289:9:10", + "src": "1289:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2144, + "id": 872, "nodeType": "ExpressionStatement", - "src": "1289:9:10" + "src": "1289:9:4" }, { "expression": { @@ -2144,19 +2144,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2148, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2146, + "id": 874, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "1311:1:10", + "referencedDeclaration": 865, + "src": "1311:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2166,18 +2166,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 2147, + "id": 875, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, - "src": "1316:1:10", + "referencedDeclaration": 860, + "src": "1316:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1311:6:10", + "src": "1311:6:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2191,18 +2191,18 @@ "typeString": "bool" } ], - "id": 2145, + "id": 873, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "1304:6:10", + "referencedDeclaration": 1425, + "src": "1304:6:4", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2149, + "id": 877, "isConstant": false, "isLValue": false, "isPure": false, @@ -2210,39 +2210,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1304:14:10", + "src": "1304:14:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2150, + "id": 878, "nodeType": "ExpressionStatement", - "src": "1304:14:10" + "src": "1304:14:4" }, { "expression": { "argumentTypes": null, - "id": 2151, + "id": 879, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "1331:1:10", + "referencedDeclaration": 865, + "src": "1331:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2138, - "id": 2152, + "functionReturnParameters": 866, + "id": 880, "nodeType": "Return", - "src": "1324:8:10" + "src": "1324:8:4" } ] }, "documentation": "@dev Adds two numbers, throws on overflow.", - "id": 2154, + "id": 882, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2250,16 +2250,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 2135, + "id": 863, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2132, + "id": 860, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2154, - "src": "1227:9:10", + "scope": 882, + "src": "1227:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2267,10 +2267,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2131, + "id": 859, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1227:7:10", + "src": "1227:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2281,11 +2281,11 @@ }, { "constant": false, - "id": 2134, + "id": 862, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2154, - "src": "1238:9:10", + "scope": 882, + "src": "1238:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2293,10 +2293,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2133, + "id": 861, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1238:7:10", + "src": "1238:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2306,20 +2306,20 @@ "visibility": "internal" } ], - "src": "1226:22:10" + "src": "1226:22:4" }, "payable": false, "returnParameters": { - "id": 2138, + "id": 866, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2137, + "id": 865, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2154, - "src": "1272:9:10", + "scope": 882, + "src": "1272:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2327,10 +2327,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2136, + "id": 864, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1272:7:10", + "src": "1272:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2340,26 +2340,26 @@ "visibility": "internal" } ], - "src": "1271:11:10" + "src": "1271:11:4" }, - "scope": 2155, - "src": "1214:123:10", + "scope": 883, + "src": "1214:123:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 2156, - "src": "117:1222:10" + "scope": 884, + "src": "117:1222:4" } ], - "src": "0:1340:10" + "src": "0:1340:4" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.580Z" + "updatedAt": "2018-07-07T15:28:53.733Z" } \ No newline at end of file diff --git a/artifacts/json/SetToken.json b/artifacts/json/SetToken.json index 78e3ec62a..77c218dc2 100644 --- a/artifacts/json/SetToken.json +++ b/artifacts/json/SetToken.json @@ -136,6 +136,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "factory", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -207,6 +221,10 @@ }, { "inputs": [ + { + "name": "_factory", + "type": "address" + }, { "name": "_components", "type": "address[]" @@ -218,84 +236,19 @@ { "name": "_naturalUnit", "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_sender", - "type": "address" - }, - { - "indexed": false, - "name": "_quantity", - "type": "uint256" - }, - { - "indexed": false, - "name": "_excludedComponents", - "type": "bytes32" - } - ], - "name": "LogPartialRedemption", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_sender", - "type": "address" - }, - { - "indexed": false, - "name": "_components", - "type": "bytes32" - } - ], - "name": "LogRedeemExcluded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_sender", - "type": "address" }, { - "indexed": false, - "name": "_quantity", - "type": "uint256" - } - ], - "name": "LogIssuance", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_sender", - "type": "address" + "name": "_name", + "type": "string" }, { - "indexed": false, - "name": "_quantity", - "type": "uint256" + "name": "_symbol", + "type": "string" } ], - "name": "LogRedemption", - "type": "event" + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" }, { "anonymous": false, @@ -345,36 +298,16 @@ "constant": false, "inputs": [ { - "name": "_quantity", - "type": "uint256" - } - ], - "name": "issue", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ + "name": "_issuer", + "type": "address" + }, { "name": "_quantity", "type": "uint256" } ], - "name": "redeem", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], + "name": "mint", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" @@ -383,40 +316,16 @@ "constant": false, "inputs": [ { - "name": "_quantity", - "type": "uint256" + "name": "_from", + "type": "address" }, { - "name": "_componentsToExclude", - "type": "bytes32" - } - ], - "name": "partialRedeem", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_componentsToRedeem", - "type": "bytes32" - } - ], - "name": "redeemExcluded", - "outputs": [ - { - "name": "", - "type": "bool" + "name": "_quantity", + "type": "uint256" } ], + "name": "burn", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" @@ -449,29 +358,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": true, - "inputs": [ - { - "name": "_componentAddress", - "type": "address" - }, - { - "name": "_userAddress", - "type": "address" - } - ], - "name": "getUnredeemedBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": false, "inputs": [ @@ -523,105 +409,94 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162003b8a38038062003b8a83398101806040526200003791908101906200069e565b6000806000602060405190810160405280600081525060206040519081016040528060008152506012826003908051906020019062000078929190620004a5565b50816004908051906020019062000091929190620004a5565b5080600560006101000a81548160ff021916908360ff16021790555050505083600081111515620000c157600080fd5b600087511115156200010a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001019062000915565b60405180910390fd5b6000865111151562000153576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014a9062000937565b60405180910390fd5b855187511415156200019c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001939062000959565b60405180910390fd5b84600681905550600093505b85518461ffff1610156200041657858461ffff16815181101515620001c957fe5b9060200190602002015192506000831115156200021d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200021490620008d1565b60405180910390fd5b868461ffff168151811015156200023057fe5b906020019060200201519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515620002b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002a890620008f3565b60405180910390fd5b620002cb8262000423640100000000026401000000009004565b151515620002d857600080fd5b60016008600084604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600760408051908101604052808473ffffffffffffffffffffffffffffffffffffffff168152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050508380600101945050620001a8565b5050505050505062000a25565b60006008600083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004e857805160ff191683800117855562000519565b8280016001018555821562000519579182015b8281111562000518578251825591602001919060010190620004fb565b5b5090506200052891906200052c565b5090565b6200055191905b808211156200054d57600081600090555060010162000533565b5090565b90565b6000620005628251620009fb565b905092915050565b600082601f83011215156200057e57600080fd5b8151620005956200058f82620009a9565b6200097b565b91508181835260208401935060208101905083856020840282011115620005bb57600080fd5b60005b83811015620005ef5781620005d4888262000554565b845260208401935060208301925050600181019050620005be565b5050505092915050565b600082601f83011215156200060d57600080fd5b8151620006246200061e82620009d2565b6200097b565b915081818352602084019350602081019050838560208402820111156200064a57600080fd5b60005b838110156200067e578162000663888262000688565b8452602084019350602083019250506001810190506200064d565b5050505092915050565b600062000696825162000a1b565b905092915050565b600080600060608486031215620006b457600080fd5b600084015167ffffffffffffffff811115620006cf57600080fd5b620006dd868287016200056a565b935050602084015167ffffffffffffffff811115620006fb57600080fd5b6200070986828701620005f9565b92505060406200071c8682870162000688565b9150509250925092565b6000602282527f556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a6560208301527f726f0000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602582527f436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616460208301527f64726573730000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602982527f436f6d706f6e656e74206c656e677468206e6565647320746f2062652067726560208301527f6174207468616e203000000000000000000000000000000000000000000000006040830152606082019050919050565b6000601c82527f556e697473206d7573742062652067726561746572207468616e2030000000006020830152604082019050919050565b6000602b82527f436f6d706f6e656e7420616e6420756e6974206c656e67746873206d7573742060208301527f6265207468652073616d650000000000000000000000000000000000000000006040830152606082019050919050565b60006020820190508181036000830152620008ec8162000726565b9050919050565b600060208201905081810360008301526200090e8162000783565b9050919050565b600060208201905081810360008301526200093081620007e0565b9050919050565b6000602082019050818103600083015262000952816200083d565b9050919050565b60006020820190508181036000830152620009748162000874565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156200099f57600080fd5b8060405250919050565b600067ffffffffffffffff821115620009c157600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115620009ea57600080fd5b602082029050602081019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6131558062000a356000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461011757806306fdde0314610142578063095ea7b31461016d57806315698812146101aa57806318160ddd146101e757806323b872dd14610212578063313ce5671461024f57806338c7db751461027a57806342a7cfd5146102b757806366188463146102e257806370a082311461031f57806395d89b411461035c57806399d50d5d14610387578063a9059cbb146103b2578063b5d65f61146103ef578063c5d574fe1461042c578063cc872b661461046a578063d73dd623146104a7578063db006a75146104e4578063dd62ed3e14610521575b600080fd5b34801561012357600080fd5b5061012c61055e565b6040516101399190612e8f565b60405180910390f35b34801561014e57600080fd5b5061015761060a565b6040516101649190612f02565b60405180910390f35b34801561017957600080fd5b50610194600480360361018f9190810190612a94565b6106a8565b6040516101a19190612eb1565b60405180910390f35b3480156101b657600080fd5b506101d160048036036101cc9190810190612af9565b61079a565b6040516101de9190612eb1565b60405180910390f35b3480156101f357600080fd5b506101fc610a32565b6040516102099190612f84565b60405180910390f35b34801561021e57600080fd5b5061023960048036036102349190810190612a45565b610a3c565b6040516102469190612eb1565b60405180910390f35b34801561025b57600080fd5b50610264610acb565b6040516102719190612fc8565b60405180910390f35b34801561028657600080fd5b506102a1600480360361029c9190810190612a09565b610ade565b6040516102ae9190612f84565b60405180910390f35b3480156102c357600080fd5b506102cc610be9565b6040516102d99190612f84565b60405180910390f35b3480156102ee57600080fd5b5061030960048036036103049190810190612a94565b610bef565b6040516103169190612eb1565b60405180910390f35b34801561032b57600080fd5b50610346600480360361034191908101906129e0565b610e80565b6040516103539190612f84565b60405180910390f35b34801561036857600080fd5b50610371610ec8565b60405161037e9190612f02565b60405180910390f35b34801561039357600080fd5b5061039c610f66565b6040516103a99190612e6d565b60405180910390f35b3480156103be57600080fd5b506103d960048036036103d49190810190612a94565b611060565b6040516103e69190612eb1565b60405180910390f35b3480156103fb57600080fd5b5061041660048036036104119190810190612b74565b6110ed565b6040516104239190612eb1565b60405180910390f35b34801561043857600080fd5b50610453600480360361044e9190810190612b22565b611622565b604051610461929190612e44565b60405180910390f35b34801561047657600080fd5b50610491600480360361048c9190810190612b22565b611675565b60405161049e9190612eb1565b60405180910390f35b3480156104b357600080fd5b506104ce60048036036104c99190810190612a94565b6119d7565b6040516104db9190612eb1565b60405180910390f35b3480156104f057600080fd5b5061050b60048036036105069190810190612b22565b611bd3565b6040516105189190612eb1565b60405180910390f35b34801561052d57600080fd5b5061054860048036036105439190810190612a09565b611fb8565b6040516105559190612f84565b60405180910390f35b60608060006007805490506040519080825280602002602001820160405280156105975781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156106025760078161ffff168154811015156105c357fe5b906000526020600020906002020160010154828261ffff168151811015156105e757fe5b9060200190602002018181525050808060010191505061059f565b819250505090565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107889190612f84565b60405180910390a36001905092915050565b600080600080600060010285600019161115156107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e390612f44565b60405180910390fd5b600092505b6007805490508361ffff1610156109d85760006001028360020a61ffff1660010286166000191611156109cb5760078361ffff1681548110151561083157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600960008461ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960008561ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161096d929190612e44565b602060405180830381600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109bf9190810190612ad0565b15156109ca57600080fd5b5b82806001019350506107f1565b3373ffffffffffffffffffffffffffffffffffffffff167f49e084e0b5b0bd93a9af05d1992881e35dee865cfbddbee0f1adea644fcaae1386604051610a1e9190612ecc565b60405180910390a260019350505050919050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a7b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ab657600080fd5b610ac185858561203f565b9150509392505050565b600560009054906101000a900460ff1681565b6000806000610aec856123f9565b1515610af757600080fd5b600090505b600780549050811015610b8e578473ffffffffffffffffffffffffffffffffffffffff16600782815481101515610b2f57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b81578091505b8080600101915050610afc565b6009600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505092915050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d00576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d94565b610d13838261247b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610e6d9190612f84565b60405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b505050505081565b6060806000600780549050604051908082528060200260200182016040528015610f9f5781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156110585760078161ffff16815481101515610fcb57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561100f57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610fa7565b819250505090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561109f57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156110da57600080fd5b6110e48484612494565b91505092915050565b60008060008060008660006006548281151561110557fe5b0614151561111257600080fd5b8760008111151561112257600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612f24565b60405180910390fd5b600060010289600019161115156111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612f64565b60405180910390fd5b6111fb8a6126b3565b600096505b6007805490508761ffff1610156115c15761123f60078861ffff1681548110151561122757fe5b9060005260206000209060020201600101548b6127ca565b955060006001028760020a61ffff166001028a166000191611156112c45785600960008961ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506115b4565b60078761ffff168154811015156112d757fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161135d9190612ee7565b602060405180830381600087803b15801561137757600080fd5b505af115801561138b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113af9190810190612b4b565b945060078761ffff168154811015156113c457fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33886040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161144c929190612e44565b602060405180830381600087803b15801561146657600080fd5b505af115801561147a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061149e9190810190612ad0565b15156114a957600080fd5b60078761ffff168154811015156114bc57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016115429190612ee7565b602060405180830381600087803b15801561155c57600080fd5b505af1158015611570573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115949190810190612b4b565b9350836115aa878761247b90919063ffffffff16565b1415156115b357fe5b5b8680600101975050611200565b3373ffffffffffffffffffffffffffffffffffffffff167f3d769c4a894e0b550ed0fa6c7342fa3c9261c59842db6606168cf3f3288eccfa8b8b604051611609929190612f9f565b60405180910390a2600197505050505050505092915050565b60078181548110151561163157fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60008060008060008060008760006006548281151561169057fe5b0614151561169d57600080fd5b886000811115156116ad57600080fd5b600097505b6007805490508861ffff16101561196f5760078861ffff168154811015156116d657fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16965060078861ffff1681548110151561171d57fe5b90600052602060002090600202016001015495508673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016117869190612ee7565b602060405180830381600087803b1580156117a057600080fd5b505af11580156117b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117d89190810190612b4b565b94506117e4868b6127ca565b93508673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161183f93929190612e0d565b602060405180830381600087803b15801561185957600080fd5b505af115801561186d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118919190810190612ad0565b151561189c57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016118f19190612ee7565b602060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119439190810190612b4b565b92508261195985876127fb90919063ffffffff16565b14151561196257fe5b87806001019850506116b2565b6119788a612817565b3373ffffffffffffffffffffffffffffffffffffffff167ffbd21f8762dc0c4fc0dbc03a2f816a0a617102a0f9d1908bbc09d377a0b9c6ab8b6040516119be9190612f84565b60405180910390a2600198505050505050505050919050565b6000611a6882600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051611bc19190612f84565b60405180910390a36001905092915050565b600080600080600080600087600060065482811515611bee57fe5b06141515611bfb57600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690612f24565b60405180910390fd5b89600081111515611c8f57600080fd5b611c988b6126b3565b600098505b6007805490508961ffff161015611f585760078961ffff16815481101515611cc157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16975060078961ffff16815481101515611d0857fe5b90600052602060002090600202016001015496508773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611d719190612ee7565b602060405180830381600087803b158015611d8b57600080fd5b505af1158015611d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dc39190810190612b4b565b9550611dcf878c6127ca565b94508773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611e28929190612e44565b602060405180830381600087803b158015611e4257600080fd5b505af1158015611e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e7a9190810190612ad0565b1515611e8557600080fd5b8773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611eda9190612ee7565b602060405180830381600087803b158015611ef457600080fd5b505af1158015611f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f2c9190810190612b4b565b935083611f42868861247b90919063ffffffff16565b141515611f4b57fe5b8880600101995050611c9d565b3373ffffffffffffffffffffffffffffffffffffffff167f2de3ebe1bb56079998f2617612ba527a2690a100757600dfc0d7253c808b74298c604051611f9e9190612f84565b60405180910390a260019950505050505050505050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561207c57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156120c957600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561215457600080fd5b6121a5826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612238826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123e69190612f84565b60405180910390a3600190509392505050565b60006008600083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b600082821115151561248957fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156124d157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561251e57600080fd5b61256f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612602826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126a19190612f84565b60405180910390a36001905092915050565b612704816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061275b8160015461247b90919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127bf9190612f84565b60405180910390a350565b60006127f3836127e56006548561292e90919063ffffffff16565b61294490919063ffffffff16565b905092915050565b6000818301905082811015151561280e57fe5b80905092915050565b612868816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128bf816001546127fb90919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129239190612f84565b60405180910390a350565b6000818381151561293b57fe5b04905092915050565b6000808314156129575760009050612976565b818302905081838281151561296857fe5b0414151561297257fe5b8090505b92915050565b60006129888235613085565b905092915050565b600061299c82516130a5565b905092915050565b60006129b082356130b1565b905092915050565b60006129c482356130bb565b905092915050565b60006129d882516130bb565b905092915050565b6000602082840312156129f257600080fd5b6000612a008482850161297c565b91505092915050565b60008060408385031215612a1c57600080fd5b6000612a2a8582860161297c565b9250506020612a3b8582860161297c565b9150509250929050565b600080600060608486031215612a5a57600080fd5b6000612a688682870161297c565b9350506020612a798682870161297c565b9250506040612a8a868287016129b8565b9150509250925092565b60008060408385031215612aa757600080fd5b6000612ab58582860161297c565b9250506020612ac6858286016129b8565b9150509250929050565b600060208284031215612ae257600080fd5b6000612af084828501612990565b91505092915050565b600060208284031215612b0b57600080fd5b6000612b19848285016129a4565b91505092915050565b600060208284031215612b3457600080fd5b6000612b42848285016129b8565b91505092915050565b600060208284031215612b5d57600080fd5b6000612b6b848285016129cc565b91505092915050565b60008060408385031215612b8757600080fd5b6000612b95858286016129b8565b9250506020612ba6858286016129a4565b9150509250929050565b612bb981613038565b82525050565b6000612bca82612ffd565b808452602084019350612bdc83612fe3565b60005b82811015612c0e57612bf2868351612bb0565b612bfb8261301e565b9150602086019550600181019050612bdf565b50849250505092915050565b6000612c2582613008565b808452602084019350612c3783612ff0565b60005b82811015612c6957612c4d868351612def565b612c568261302b565b9150602086019550600181019050612c3a565b50849250505092915050565b612c7e81613058565b82525050565b612c8d81613064565b82525050565b612c9c816130c5565b82525050565b6000612cad82613013565b808452612cc18160208601602086016130d7565b612cca8161310a565b602085010191505092915050565b6000602582527f5573657220646f6573206e6f7420686176652073756666696369656e7420626160208301527f6c616e63650000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602582527f436f6d706f6e656e747320746f2072656465656d206d757374206265206e6f6e60208301527f2d7a65726f0000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602482527f4578636c7564656420636f6d706f6e656e7473206d757374206265206e6f6e2d60208301527f7a65726f000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b612df88161306e565b82525050565b612e0781613078565b82525050565b6000606082019050612e226000830186612bb0565b612e2f6020830185612c93565b612e3c6040830184612def565b949350505050565b6000604082019050612e596000830185612bb0565b612e666020830184612def565b9392505050565b60006020820190508181036000830152612e878184612bbf565b905092915050565b60006020820190508181036000830152612ea98184612c1a565b905092915050565b6000602082019050612ec66000830184612c75565b92915050565b6000602082019050612ee16000830184612c84565b92915050565b6000602082019050612efc6000830184612c93565b92915050565b60006020820190508181036000830152612f1c8184612ca2565b905092915050565b60006020820190508181036000830152612f3d81612cd8565b9050919050565b60006020820190508181036000830152612f5d81612d35565b9050919050565b60006020820190508181036000830152612f7d81612d92565b9050919050565b6000602082019050612f996000830184612def565b92915050565b6000604082019050612fb46000830185612def565b612fc16020830184612c84565b9392505050565b6000602082019050612fdd6000830184612dfe565b92915050565b6000602082019050919050565b6000602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b60006130d082613038565b9050919050565b60005b838110156130f55780820151818401526020810190506130da565b83811115613104576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820805f242316e68b7836682369632fcea18dc45fcb1c42c4f40e6f3028e71265e36c6578706572696d656e74616cf50037", - "deployedBytecode": "0x608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461011757806306fdde0314610142578063095ea7b31461016d57806315698812146101aa57806318160ddd146101e757806323b872dd14610212578063313ce5671461024f57806338c7db751461027a57806342a7cfd5146102b757806366188463146102e257806370a082311461031f57806395d89b411461035c57806399d50d5d14610387578063a9059cbb146103b2578063b5d65f61146103ef578063c5d574fe1461042c578063cc872b661461046a578063d73dd623146104a7578063db006a75146104e4578063dd62ed3e14610521575b600080fd5b34801561012357600080fd5b5061012c61055e565b6040516101399190612e8f565b60405180910390f35b34801561014e57600080fd5b5061015761060a565b6040516101649190612f02565b60405180910390f35b34801561017957600080fd5b50610194600480360361018f9190810190612a94565b6106a8565b6040516101a19190612eb1565b60405180910390f35b3480156101b657600080fd5b506101d160048036036101cc9190810190612af9565b61079a565b6040516101de9190612eb1565b60405180910390f35b3480156101f357600080fd5b506101fc610a32565b6040516102099190612f84565b60405180910390f35b34801561021e57600080fd5b5061023960048036036102349190810190612a45565b610a3c565b6040516102469190612eb1565b60405180910390f35b34801561025b57600080fd5b50610264610acb565b6040516102719190612fc8565b60405180910390f35b34801561028657600080fd5b506102a1600480360361029c9190810190612a09565b610ade565b6040516102ae9190612f84565b60405180910390f35b3480156102c357600080fd5b506102cc610be9565b6040516102d99190612f84565b60405180910390f35b3480156102ee57600080fd5b5061030960048036036103049190810190612a94565b610bef565b6040516103169190612eb1565b60405180910390f35b34801561032b57600080fd5b50610346600480360361034191908101906129e0565b610e80565b6040516103539190612f84565b60405180910390f35b34801561036857600080fd5b50610371610ec8565b60405161037e9190612f02565b60405180910390f35b34801561039357600080fd5b5061039c610f66565b6040516103a99190612e6d565b60405180910390f35b3480156103be57600080fd5b506103d960048036036103d49190810190612a94565b611060565b6040516103e69190612eb1565b60405180910390f35b3480156103fb57600080fd5b5061041660048036036104119190810190612b74565b6110ed565b6040516104239190612eb1565b60405180910390f35b34801561043857600080fd5b50610453600480360361044e9190810190612b22565b611622565b604051610461929190612e44565b60405180910390f35b34801561047657600080fd5b50610491600480360361048c9190810190612b22565b611675565b60405161049e9190612eb1565b60405180910390f35b3480156104b357600080fd5b506104ce60048036036104c99190810190612a94565b6119d7565b6040516104db9190612eb1565b60405180910390f35b3480156104f057600080fd5b5061050b60048036036105069190810190612b22565b611bd3565b6040516105189190612eb1565b60405180910390f35b34801561052d57600080fd5b5061054860048036036105439190810190612a09565b611fb8565b6040516105559190612f84565b60405180910390f35b60608060006007805490506040519080825280602002602001820160405280156105975781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156106025760078161ffff168154811015156105c357fe5b906000526020600020906002020160010154828261ffff168151811015156105e757fe5b9060200190602002018181525050808060010191505061059f565b819250505090565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107889190612f84565b60405180910390a36001905092915050565b600080600080600060010285600019161115156107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e390612f44565b60405180910390fd5b600092505b6007805490508361ffff1610156109d85760006001028360020a61ffff1660010286166000191611156109cb5760078361ffff1681548110151561083157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600960008461ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960008561ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161096d929190612e44565b602060405180830381600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109bf9190810190612ad0565b15156109ca57600080fd5b5b82806001019350506107f1565b3373ffffffffffffffffffffffffffffffffffffffff167f49e084e0b5b0bd93a9af05d1992881e35dee865cfbddbee0f1adea644fcaae1386604051610a1e9190612ecc565b60405180910390a260019350505050919050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a7b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ab657600080fd5b610ac185858561203f565b9150509392505050565b600560009054906101000a900460ff1681565b6000806000610aec856123f9565b1515610af757600080fd5b600090505b600780549050811015610b8e578473ffffffffffffffffffffffffffffffffffffffff16600782815481101515610b2f57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b81578091505b8080600101915050610afc565b6009600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505092915050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d00576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d94565b610d13838261247b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610e6d9190612f84565b60405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b505050505081565b6060806000600780549050604051908082528060200260200182016040528015610f9f5781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156110585760078161ffff16815481101515610fcb57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561100f57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610fa7565b819250505090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561109f57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156110da57600080fd5b6110e48484612494565b91505092915050565b60008060008060008660006006548281151561110557fe5b0614151561111257600080fd5b8760008111151561112257600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612f24565b60405180910390fd5b600060010289600019161115156111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612f64565b60405180910390fd5b6111fb8a6126b3565b600096505b6007805490508761ffff1610156115c15761123f60078861ffff1681548110151561122757fe5b9060005260206000209060020201600101548b6127ca565b955060006001028760020a61ffff166001028a166000191611156112c45785600960008961ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506115b4565b60078761ffff168154811015156112d757fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161135d9190612ee7565b602060405180830381600087803b15801561137757600080fd5b505af115801561138b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113af9190810190612b4b565b945060078761ffff168154811015156113c457fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33886040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161144c929190612e44565b602060405180830381600087803b15801561146657600080fd5b505af115801561147a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061149e9190810190612ad0565b15156114a957600080fd5b60078761ffff168154811015156114bc57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016115429190612ee7565b602060405180830381600087803b15801561155c57600080fd5b505af1158015611570573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115949190810190612b4b565b9350836115aa878761247b90919063ffffffff16565b1415156115b357fe5b5b8680600101975050611200565b3373ffffffffffffffffffffffffffffffffffffffff167f3d769c4a894e0b550ed0fa6c7342fa3c9261c59842db6606168cf3f3288eccfa8b8b604051611609929190612f9f565b60405180910390a2600197505050505050505092915050565b60078181548110151561163157fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60008060008060008060008760006006548281151561169057fe5b0614151561169d57600080fd5b886000811115156116ad57600080fd5b600097505b6007805490508861ffff16101561196f5760078861ffff168154811015156116d657fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16965060078861ffff1681548110151561171d57fe5b90600052602060002090600202016001015495508673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016117869190612ee7565b602060405180830381600087803b1580156117a057600080fd5b505af11580156117b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117d89190810190612b4b565b94506117e4868b6127ca565b93508673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161183f93929190612e0d565b602060405180830381600087803b15801561185957600080fd5b505af115801561186d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118919190810190612ad0565b151561189c57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016118f19190612ee7565b602060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119439190810190612b4b565b92508261195985876127fb90919063ffffffff16565b14151561196257fe5b87806001019850506116b2565b6119788a612817565b3373ffffffffffffffffffffffffffffffffffffffff167ffbd21f8762dc0c4fc0dbc03a2f816a0a617102a0f9d1908bbc09d377a0b9c6ab8b6040516119be9190612f84565b60405180910390a2600198505050505050505050919050565b6000611a6882600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051611bc19190612f84565b60405180910390a36001905092915050565b600080600080600080600087600060065482811515611bee57fe5b06141515611bfb57600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690612f24565b60405180910390fd5b89600081111515611c8f57600080fd5b611c988b6126b3565b600098505b6007805490508961ffff161015611f585760078961ffff16815481101515611cc157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16975060078961ffff16815481101515611d0857fe5b90600052602060002090600202016001015496508773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611d719190612ee7565b602060405180830381600087803b158015611d8b57600080fd5b505af1158015611d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dc39190810190612b4b565b9550611dcf878c6127ca565b94508773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611e28929190612e44565b602060405180830381600087803b158015611e4257600080fd5b505af1158015611e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e7a9190810190612ad0565b1515611e8557600080fd5b8773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611eda9190612ee7565b602060405180830381600087803b158015611ef457600080fd5b505af1158015611f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f2c9190810190612b4b565b935083611f42868861247b90919063ffffffff16565b141515611f4b57fe5b8880600101995050611c9d565b3373ffffffffffffffffffffffffffffffffffffffff167f2de3ebe1bb56079998f2617612ba527a2690a100757600dfc0d7253c808b74298c604051611f9e9190612f84565b60405180910390a260019950505050505050505050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561207c57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156120c957600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561215457600080fd5b6121a5826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612238826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123e69190612f84565b60405180910390a3600190509392505050565b60006008600083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b600082821115151561248957fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156124d157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561251e57600080fd5b61256f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612602826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126a19190612f84565b60405180910390a36001905092915050565b612704816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061275b8160015461247b90919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127bf9190612f84565b60405180910390a350565b60006127f3836127e56006548561292e90919063ffffffff16565b61294490919063ffffffff16565b905092915050565b6000818301905082811015151561280e57fe5b80905092915050565b612868816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128bf816001546127fb90919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129239190612f84565b60405180910390a350565b6000818381151561293b57fe5b04905092915050565b6000808314156129575760009050612976565b818302905081838281151561296857fe5b0414151561297257fe5b8090505b92915050565b60006129888235613085565b905092915050565b600061299c82516130a5565b905092915050565b60006129b082356130b1565b905092915050565b60006129c482356130bb565b905092915050565b60006129d882516130bb565b905092915050565b6000602082840312156129f257600080fd5b6000612a008482850161297c565b91505092915050565b60008060408385031215612a1c57600080fd5b6000612a2a8582860161297c565b9250506020612a3b8582860161297c565b9150509250929050565b600080600060608486031215612a5a57600080fd5b6000612a688682870161297c565b9350506020612a798682870161297c565b9250506040612a8a868287016129b8565b9150509250925092565b60008060408385031215612aa757600080fd5b6000612ab58582860161297c565b9250506020612ac6858286016129b8565b9150509250929050565b600060208284031215612ae257600080fd5b6000612af084828501612990565b91505092915050565b600060208284031215612b0b57600080fd5b6000612b19848285016129a4565b91505092915050565b600060208284031215612b3457600080fd5b6000612b42848285016129b8565b91505092915050565b600060208284031215612b5d57600080fd5b6000612b6b848285016129cc565b91505092915050565b60008060408385031215612b8757600080fd5b6000612b95858286016129b8565b9250506020612ba6858286016129a4565b9150509250929050565b612bb981613038565b82525050565b6000612bca82612ffd565b808452602084019350612bdc83612fe3565b60005b82811015612c0e57612bf2868351612bb0565b612bfb8261301e565b9150602086019550600181019050612bdf565b50849250505092915050565b6000612c2582613008565b808452602084019350612c3783612ff0565b60005b82811015612c6957612c4d868351612def565b612c568261302b565b9150602086019550600181019050612c3a565b50849250505092915050565b612c7e81613058565b82525050565b612c8d81613064565b82525050565b612c9c816130c5565b82525050565b6000612cad82613013565b808452612cc18160208601602086016130d7565b612cca8161310a565b602085010191505092915050565b6000602582527f5573657220646f6573206e6f7420686176652073756666696369656e7420626160208301527f6c616e63650000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602582527f436f6d706f6e656e747320746f2072656465656d206d757374206265206e6f6e60208301527f2d7a65726f0000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602482527f4578636c7564656420636f6d706f6e656e7473206d757374206265206e6f6e2d60208301527f7a65726f000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b612df88161306e565b82525050565b612e0781613078565b82525050565b6000606082019050612e226000830186612bb0565b612e2f6020830185612c93565b612e3c6040830184612def565b949350505050565b6000604082019050612e596000830185612bb0565b612e666020830184612def565b9392505050565b60006020820190508181036000830152612e878184612bbf565b905092915050565b60006020820190508181036000830152612ea98184612c1a565b905092915050565b6000602082019050612ec66000830184612c75565b92915050565b6000602082019050612ee16000830184612c84565b92915050565b6000602082019050612efc6000830184612c93565b92915050565b60006020820190508181036000830152612f1c8184612ca2565b905092915050565b60006020820190508181036000830152612f3d81612cd8565b9050919050565b60006020820190508181036000830152612f5d81612d35565b9050919050565b60006020820190508181036000830152612f7d81612d92565b9050919050565b6000602082019050612f996000830184612def565b92915050565b6000604082019050612fb46000830185612def565b612fc16020830184612c84565b9392505050565b6000602082019050612fdd6000830184612dfe565b92915050565b6000602082019050919050565b6000602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b60006130d082613038565b9050919050565b60005b838110156130f55780820151818401526020810190506130da565b83811115613104576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820805f242316e68b7836682369632fcea18dc45fcb1c42c4f40e6f3028e71265e36c6578706572696d656e74616cf50037", - "sourceMap": "485:13419:1:-;;;2810:1700;8:9:-1;5:2;;;30:1;27;20:12;5:2;2810:1700:1;;;;;;;;;;;;;;;;;;;;;;;;3677:8;3811:17;3985:24;391:137:13;;;;;;;;;;;;;;;;;;;;;;;;;;551:2:1;470:5:13;463:4;:12;;;;;;;;;;;;:::i;:::-;;490:7;481:6;:16;;;;;;;;;;;;:::i;:::-;;514:9;503:8;;:20;;;;;;;;;;;;;;;;;;391:137;;;2927:12:1;2497:1;2485:9;:13;2477:22;;;;;;;;3038:1;3017:11;:18;:22;3009:76;;;;;;;;;;;;;;;;;;;;;;;;3163:1;3147:6;:13;:17;3139:58;;;;;;;;;;;;;;;;;;;;;;;;3305:6;:13;3283:11;:18;:35;3275:91;;;;;;;;;;;;;;;;;;;;;;;;3391:12;3377:11;:26;;;;3688:1;3677:12;;3672:832;3695:6;:13;3691:1;:17;;;3672:832;;;3831:6;3838:1;3831:9;;;;;;;;;;;;;;;;;;;;3811:29;;3877:1;3862:12;:16;3854:63;;;;;;;;;;;;;;;;;;;;;;;;4012:11;4024:1;4012:14;;;;;;;;;;;;;;;;;;;;3985:41;;4076:1;4048:30;;:16;:30;;;;4040:80;;;;;;;;;;;;;;;;;;;;;;;;4206:34;4223:16;4206;;;:34;;;:::i;:::-;4205:35;4197:44;;;;;;;;4351:4;4308:11;:40;4330:16;4320:27;;;;;;;;;;;;;;;;;;;;;;;;4308:40;;;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;4370:10;4386:106;;;;;;;;;4424:16;4386:106;;;;;;4465:12;4386:106;;;4370:123;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;4370:123:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3710:3;;;;;;;3672:832;;;2810:1700;;;;;;;485:13419;;12996:181;13106:4;13133:11;:37;13155:13;13145:24;;;;;;;;;;;;;;;;;;;;;;;;13133:37;;;;;;;;;;;;;;;;;;;;;;;;;;;13126:44;;12996:181;;;:::o;485:13419::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:122:-1:-;;83:39;114:6;108:13;83:39;;;74:48;;68:59;;;;;152:722;;280:3;273:4;265:6;261:17;257:27;250:35;247:2;;;298:1;295;288:12;247:2;328:6;322:13;350:80;365:64;422:6;365:64;;;350:80;;;341:89;;447:5;472:6;465:5;458:21;502:4;494:6;490:17;480:27;;524:4;519:3;515:14;508:21;;577:6;624:3;616:4;608:6;604:17;599:3;595:27;592:36;589:2;;;641:1;638;631:12;589:2;666:1;651:217;676:6;673:1;670:13;651:217;;;734:3;756:48;800:3;788:10;756:48;;;751:3;744:61;828:4;823:3;819:14;812:21;;856:4;851:3;847:14;840:21;;708:160;698:1;695;691:9;686:14;;651:217;;;655:14;240:634;;;;;;;;900:722;;1028:3;1021:4;1013:6;1009:17;1005:27;998:35;995:2;;;1046:1;1043;1036:12;995:2;1076:6;1070:13;1098:80;1113:64;1170:6;1113:64;;;1098:80;;;1089:89;;1195:5;1220:6;1213:5;1206:21;1250:4;1242:6;1238:17;1228:27;;1272:4;1267:3;1263:14;1256:21;;1325:6;1372:3;1364:4;1356:6;1352:17;1347:3;1343:27;1340:36;1337:2;;;1389:1;1386;1379:12;1337:2;1414:1;1399:217;1424:6;1421:1;1418:13;1399:217;;;1482:3;1504:48;1548:3;1536:10;1504:48;;;1499:3;1492:61;1576:4;1571:3;1567:14;1560:21;;1604:4;1599:3;1595:14;1588:21;;1456:160;1446:1;1443;1439:9;1434:14;;1399:217;;;1403:14;988:634;;;;;;;;1630:122;;1708:39;1739:6;1733:13;1708:39;;;1699:48;;1693:59;;;;;1759:793;;;;1958:2;1946:9;1937:7;1933:23;1929:32;1926:2;;;1974:1;1971;1964:12;1926:2;2030:1;2019:9;2015:17;2009:24;2053:18;2045:6;2042:30;2039:2;;;2085:1;2082;2075:12;2039:2;2105:89;2186:7;2177:6;2166:9;2162:22;2105:89;;;2095:99;;1988:212;2252:2;2241:9;2237:18;2231:25;2276:18;2268:6;2265:30;2262:2;;;2308:1;2305;2298:12;2262:2;2328:89;2409:7;2400:6;2389:9;2385:22;2328:89;;;2318:99;;2210:213;2454:2;2472:64;2528:7;2519:6;2508:9;2504:22;2472:64;;;2462:74;;2433:109;1920:632;;;;;;2560:397;;2715:2;2710:3;2703:15;2752:66;2747:2;2742:3;2738:12;2731:88;2853:66;2848:2;2843:3;2839:12;2832:88;2948:2;2943:3;2939:12;2932:19;;2696:261;;;;2966:397;;3121:2;3116:3;3109:15;3158:66;3153:2;3148:3;3144:12;3137:88;3259:66;3254:2;3249:3;3245:12;3238:88;3354:2;3349:3;3345:12;3338:19;;3102:261;;;;3372:397;;3527:2;3522:3;3515:15;3564:66;3559:2;3554:3;3550:12;3543:88;3665:66;3660:2;3655:3;3651:12;3644:88;3760:2;3755:3;3751:12;3744:19;;3508:261;;;;3778:296;;3933:2;3928:3;3921:15;3970:66;3965:2;3960:3;3956:12;3949:88;4065:2;4060:3;4056:12;4049:19;;3914:160;;;;4083:397;;4238:2;4233:3;4226:15;4275:66;4270:2;4265:3;4261:12;4254:88;4376:66;4371:2;4366:3;4362:12;4355:88;4471:2;4466:3;4462:12;4455:19;;4219:261;;;;4488:387;;4669:2;4658:9;4654:18;4646:26;;4719:9;4713:4;4709:20;4705:1;4694:9;4690:17;4683:47;4744:121;4860:4;4744:121;;;4736:129;;4640:235;;;;4882:387;;5063:2;5052:9;5048:18;5040:26;;5113:9;5107:4;5103:20;5099:1;5088:9;5084:17;5077:47;5138:121;5254:4;5138:121;;;5130:129;;5034:235;;;;5276:387;;5457:2;5446:9;5442:18;5434:26;;5507:9;5501:4;5497:20;5493:1;5482:9;5478:17;5471:47;5532:121;5648:4;5532:121;;;5524:129;;5428:235;;;;5670:387;;5851:2;5840:9;5836:18;5828:26;;5901:9;5895:4;5891:20;5887:1;5876:9;5872:17;5865:47;5926:121;6042:4;5926:121;;;5918:129;;5822:235;;;;6064:387;;6245:2;6234:9;6230:18;6222:26;;6295:9;6289:4;6285:20;6281:1;6270:9;6266:17;6259:47;6320:121;6436:4;6320:121;;;6312:129;;6216:235;;;;6458:256;;6520:2;6514:9;6504:19;;6558:4;6550:6;6546:17;6657:6;6645:10;6642:22;6621:18;6609:10;6606:34;6603:62;6600:2;;;6678:1;6675;6668:12;6600:2;6698:10;6694:2;6687:22;6498:216;;;;;6721:258;;6880:18;6872:6;6869:30;6866:2;;;6912:1;6909;6902:12;6866:2;6941:4;6933:6;6929:17;6921:25;;6969:4;6963;6959:15;6951:23;;6803:176;;;;6986:258;;7145:18;7137:6;7134:30;7131:2;;;7177:1;7174;7167:12;7131:2;7206:4;7198:6;7194:17;7186:25;;7234:4;7228;7224:15;7216:23;;7068:176;;;;7251:128;;7331:42;7324:5;7320:54;7309:65;;7303:76;;;;7386:79;;7455:5;7444:16;;7438:27;;;;485:13419:1;;;;;;;", - "deployedSourceMap": "485:13419:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11471:277;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11471:277:1;;;;;;;;;;;;;;;;;;;;319:18:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;319:18:13;;;;;;;;;;;;;;;;;;;;1829:188:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10193:788:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10193:788:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:12;;;;;;;;;;;;;;;;;;;;12606:230:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12606:230:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;365:21:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;365:21:13;;;;;;;;;;;;;;;;;;;;11754:495:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11754:495:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1023:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1023:23:1;;;;;;;;;;;;;;;;;;;;3701:425:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;341:20:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;341:20:13;;;;;;;;;;;;;;;;;;;;11131:334:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11131:334:1;;;;;;;;;;;;;;;;;;;;12408:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12408:192:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8161:1513;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8161:1513:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1052:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1052:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4999:1102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4999:1102:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6384:981:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6384:981:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11471:277:1;11535:6;11557:19;11623:8;11590:10;:17;;;;11579:29;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;11579:29:1;;;;11557:51;;11634:1;11623:12;;11618:102;11641:10;:17;;;;11637:1;:21;;;11618:102;;;11690:10;11701:1;11690:13;;;;;;;;;;;;;;;;;;;;;;:19;;;11679:5;11685:1;11679:8;;;;;;;;;;;;;;;;;;;:30;;;;;11660:3;;;;;;;11618:102;;;11736:5;11729:12;;11471:277;;;:::o;319:18:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:17:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;10193:788:1:-;10278:4;10387:8;10508:24;10575:21;10328:1;10306:23;;:19;:23;;;;10298:73;;;;;;;;;;;;;;;;;;;;;;;;10398:1;10387:12;;10382:505;10405:10;:17;;;;10401:1;:21;;;10382:505;;;10487:1;10447:41;;10482:1;10477;:6;10469:15;;;;10447:19;:37;:41;;;;10443:434;;;10535:10;10546:1;10535:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;10508:49;;10599:18;:21;10618:1;10599:21;;;;;;;;;;;;;:33;10621:10;10599:33;;;;;;;;;;;;;;;;10575:57;;10771:1;10735:18;:21;10754:1;10735:21;;;;;;;;;;;;;:33;10757:10;10735:33;;;;;;;;;;;;;;;:37;;;;10805:16;10799:32;;;10832:10;10844:16;10799:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10799:62:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10799:62:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10799:62:1;;;;;;;;;10791:71;;;;;;;;10443:434;10424:3;;;;;;;10382:505;;;10920:10;10902:50;;;10932:19;10902:50;;;;;;;;;;;;;;;10970:4;10963:11;;10193:788;;;;;;:::o;371:83:12:-;415:7;437:12;;430:19;;371:83;:::o;12606:230:1:-;12764:4;12727:3;2244:1;2229:17;;:3;:17;;;;2221:26;;;;;;;;2280:4;2265:20;;:3;:20;;;;2257:29;;;;;;;;12791:38;12810:5;12817:3;12822:6;12791:18;:38::i;:::-;12784:45;;12606:230;;;;;;:::o;365:21:13:-;;;;;;;;;;;;;:::o;11754:495:1:-;11900:7;11978:19;12013:6;11931:35;11948:17;11931:16;:35::i;:::-;11923:44;;;;;;;;12022:1;12013:10;;12008:169;12029:10;:17;;;;12025:1;:21;12008:169;;;12097:17;12071:43;;:10;12082:1;12071:13;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:43;;;12067:100;;;12151:1;12134:18;;12067:100;12048:3;;;;;;;12008:169;;;12194:18;:34;12213:14;12194:34;;;;;;;;;;;:48;12229:12;12194:48;;;;;;;;;;;;;;;;12187:55;;11754:495;;;;;;:::o;1023:23::-;;;;:::o;3701:425:17:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:12:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;341:20:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11131:334:1:-;11201:9;11226:35;11311:8;11278:10;:17;;;;11264:32;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;11264:32:1;;;;11226:70;;11322:1;11311:12;;11306:118;11329:10;:17;;;;11325:1;:21;;;11306:118;;;11391:10;11402:1;11391:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;11367:18;11386:1;11367:21;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;11348:3;;;;;;;11306:118;;;11440:18;11433:25;;11131:334;;;:::o;12408:192::-;12539:4;12502:3;2244:1;2229:17;;:3;:17;;;;2221:26;;;;;;;;2280:4;2265:20;;:3;:20;;;;2257:29;;;;;;;;12566:27;12581:3;12586:6;12566:14;:27::i;:::-;12559:34;;12408:192;;;;;:::o;8161:1513::-;8374:4;8634:8;8690:18;9098:23;9382:24;8277:9;2406:1;2390:11;;2378:9;:23;;;;;;;;2377:30;2369:39;;;;;;;;8306:9;2497:1;2485:9;:13;2477:22;;;;;;;;8346:9;2098:8;2074;:20;2083:10;2074:20;;;;;;;;;;;;;;;;:32;;2066:82;;;;;;;;;;;;;;;;;;;;;;;;8550:1;8527:24;;:20;:24;;;;8519:73;;;;;;;;;;;;;;;;;;;;;;;;8603:15;8608:9;8603:4;:15::i;:::-;8645:1;8634:12;;8629:936;8652:10;:17;;;;8648:1;:21;;;8629:936;;;8711:54;8734:10;8745:1;8734:13;;;;;;;;;;;;;;;;;;;;;;:19;;;8755:9;8711:22;:54::i;:::-;8690:75;;8988:1;8947:42;;8983:1;8978;:6;8970:15;;;;8947:20;:38;:42;;;;8943:612;;;9046:13;9009:18;:21;9028:1;9009:21;;;;;;;;;;;;;:33;9031:10;9009:33;;;;;;;;;;;;;;;;:50;;;;;;;;;;;8943:612;;;9130:10;9141:1;9130:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;9124:39;;;9164:4;9124:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9124:45:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9124:45:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9124:45:1;;;;;;;;;9098:71;;9202:10;9213:1;9202:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;9196:38;;;9235:10;9247:13;9196:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9196:65:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9196:65:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9196:65:1;;;;;;;;;9188:74;;;;;;;;9415:10;9426:1;9415:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;9409:39;;;9449:4;9409:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9409:45:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9409:45:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9409:45:1;;;;;;;;;9382:72;;9520:19;9479:37;9502:13;9479:18;:22;;:37;;;;:::i;:::-;:60;9472:68;;;;;;8943:612;8671:3;;;;;;;8629:936;;;9601:10;9580:65;;;9613:9;9624:20;9580:65;;;;;;;;;;;;;;;;9663:4;9656:11;;2509:1;2418;8161:1513;;;;;;;;;:::o;1052:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4999:1102::-;5126:4;5313:8;5369:24;5432:17;5486:23;5566:18;5838:24;5062:9;2406:1;2390:11;;2378:9;:23;;;;;;;;2377:30;2369:39;;;;;;;;5091:9;2497:1;2485:9;:13;2477:22;;;;;;;;5324:1;5313:12;;5308:689;5331:10;:17;;;;5327:1;:21;;;5308:689;;;5396:10;5407:1;5396:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;5369:49;;5452:10;5463:1;5452:13;;;;;;;;;;;;;;;;;;;;;;:19;;;5432:39;;5518:16;5512:33;;;5546:4;5512:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5512:39:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5512:39:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5512:39:1;;;;;;;;;5486:65;;5587:47;5610:12;5624:9;5587:22;:47::i;:::-;5566:68;;5662:16;5656:36;;;5693:10;5705:4;5711:13;5656:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5656:69:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5656:69:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5656:69:1;;;;;;;;;5648:78;;;;;;;;5871:16;5865:33;;;5899:4;5865:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5865:39:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5865:39:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5865:39:1;;;;;;;;;5838:66;;5966:19;5925:37;5948:13;5925:18;:22;;:37;;;;:::i;:::-;:60;5918:68;;;;;;5350:3;;;;;;;5308:689;;;6007:15;6012:9;6007:4;:15::i;:::-;6050:10;6038:34;;;6062:9;6038:34;;;;;;;;;;;;;;;6090:4;6083:11;;2418:1;4999:1102;;;;;;;;;;:::o;2946:293:17:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;6384:981:1:-;6560:4;6611:8;6667:24;6730:17;6784:23;6864:18;7126:24;6463:9;2406:1;2390:11;;2378:9;:23;;;;;;;;2377:30;2369:39;;;;;;;;6503:9;2098:8;2074;:20;2083:10;2074:20;;;;;;;;;;;;;;;;:32;;2066:82;;;;;;;;;;;;;;;;;;;;;;;;6532:9;2497:1;2485:9;:13;2477:22;;;;;;;;6580:15;6585:9;6580:4;:15::i;:::-;6622:1;6611:12;;6606:679;6629:10;:17;;;;6625:1;:21;;;6606:679;;;6694:10;6705:1;6694:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;6667:49;;6750:10;6761:1;6750:13;;;;;;;;;;;;;;;;;;;;;;:19;;;6730:39;;6816:16;6810:33;;;6844:4;6810:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6810:39:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6810:39:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6810:39:1;;;;;;;;;6784:65;;6885:47;6908:12;6922:9;6885:22;:47::i;:::-;6864:68;;6960:16;6954:32;;;6987:10;6999:13;6954:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6954:59:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6954:59:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6954:59:1;;;;;;;;;6946:68;;;;;;;;7159:16;7153:33;;;7187:4;7153:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7153:39:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7153:39:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7153:39:1;;;;;;;;;7126:66;;7254:19;7213:37;7236:13;7213:18;:22;;:37;;;;:::i;:::-;:60;7206:68;;;;;;6648:3;;;;;;;6606:679;;;7314:10;7300:36;;;7326:9;7300:36;;;;;;;;;;;;;;;7354:4;7347:11;;2158:1;2418;6384:981;;;;;;;;;;:::o;2336:153:17:-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;736:470::-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;12996:181:1:-;13106:4;13133:11;:37;13155:13;13145:24;;;;;;;;;;;;;;;;;;;;;;;;13133:37;;;;;;;;;;;;;;;;;;;;;;;;;;;13126:44;;12996:181;;;:::o;1042:110:10:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;608:321:12:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;13656:246:1:-;13753:34;13778:8;13753;:20;13762:10;13753:20;;;;;;;;;;;;;;;;:24;;:34;;;;:::i;:::-;13730:8;:20;13739:10;13730:20;;;;;;;;;;;;;;;:57;;;;13812:26;13829:8;13812:12;;:16;;:26;;;;:::i;:::-;13797:12;:41;;;;13882:1;13853:42;;13862:10;13853:42;;;13886:8;13853:42;;;;;;;;;;;;;;;13656:246;:::o;13183:215::-;13319:4;13346:45;13376:14;13346:25;13359:11;;13346:8;:12;;:25;;;;:::i;:::-;:29;;:45;;;;:::i;:::-;13339:52;;13183:215;;;;:::o;1214:123:10:-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;13404:246:1:-;13501:34;13526:8;13501;:20;13510:10;13501:20;;;;;;;;;;;;;;;;:24;;:34;;;;:::i;:::-;13478:8;:20;13487:10;13478:20;;;;;;;;;;;;;;;:57;;;;13560:26;13577:8;13560:12;;:16;;:26;;;;:::i;:::-;13545:12;:41;;;;13622:10;13601:42;;13618:1;13601:42;;;13634:8;13601:42;;;;;;;;;;;;;;;13404:246;:::o;658:272:10:-;716:7;924:1;920;:5;;;;;;;;913:12;;658:272;;;;:::o;203:373::-;261:9;492:1;487;:6;483:35;;;510:1;503:8;;;;483:35;532:1;528;:5;524:9;;555:1;550;546;:5;;;;;;;;:10;539:18;;;;;;570:1;563:8;;203:373;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;;57:66;;;;;130:116;;205:36;233:6;227:13;205:36;;;196:45;;190:56;;;;;253:118;;320:46;358:6;345:20;320:46;;;311:55;;305:66;;;;;378:118;;445:46;483:6;470:20;445:46;;;436:55;;430:66;;;;;503:122;;581:39;612:6;606:13;581:39;;;572:48;;566:59;;;;;632:241;;736:2;724:9;715:7;711:23;707:32;704:2;;;752:1;749;742:12;704:2;787:1;804:53;849:7;840:6;829:9;825:22;804:53;;;794:63;;766:97;698:175;;;;;880:366;;;1001:2;989:9;980:7;976:23;972:32;969:2;;;1017:1;1014;1007:12;969:2;1052:1;1069:53;1114:7;1105:6;1094:9;1090:22;1069:53;;;1059:63;;1031:97;1159:2;1177:53;1222:7;1213:6;1202:9;1198:22;1177:53;;;1167:63;;1138:98;963:283;;;;;;1253:491;;;;1391:2;1379:9;1370:7;1366:23;1362:32;1359:2;;;1407:1;1404;1397:12;1359:2;1442:1;1459:53;1504:7;1495:6;1484:9;1480:22;1459:53;;;1449:63;;1421:97;1549:2;1567:53;1612:7;1603:6;1592:9;1588:22;1567:53;;;1557:63;;1528:98;1657:2;1675:53;1720:7;1711:6;1700:9;1696:22;1675:53;;;1665:63;;1636:98;1353:391;;;;;;1751:366;;;1872:2;1860:9;1851:7;1847:23;1843:32;1840:2;;;1888:1;1885;1878:12;1840:2;1923:1;1940:53;1985:7;1976:6;1965:9;1961:22;1940:53;;;1930:63;;1902:97;2030:2;2048:53;2093:7;2084:6;2073:9;2069:22;2048:53;;;2038:63;;2009:98;1834:283;;;;;;2124:257;;2236:2;2224:9;2215:7;2211:23;2207:32;2204:2;;;2252:1;2249;2242:12;2204:2;2287:1;2304:61;2357:7;2348:6;2337:9;2333:22;2304:61;;;2294:71;;2266:105;2198:183;;;;;2388:241;;2492:2;2480:9;2471:7;2467:23;2463:32;2460:2;;;2508:1;2505;2498:12;2460:2;2543:1;2560:53;2605:7;2596:6;2585:9;2581:22;2560:53;;;2550:63;;2522:97;2454:175;;;;;2636:241;;2740:2;2728:9;2719:7;2715:23;2711:32;2708:2;;;2756:1;2753;2746:12;2708:2;2791:1;2808:53;2853:7;2844:6;2833:9;2829:22;2808:53;;;2798:63;;2770:97;2702:175;;;;;2884:263;;2999:2;2987:9;2978:7;2974:23;2970:32;2967:2;;;3015:1;3012;3005:12;2967:2;3050:1;3067:64;3123:7;3114:6;3103:9;3099:22;3067:64;;;3057:74;;3029:108;2961:186;;;;;3154:366;;;3275:2;3263:9;3254:7;3250:23;3246:32;3243:2;;;3291:1;3288;3281:12;3243:2;3326:1;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;;;3333:63;;3305:97;3433:2;3451:53;3496:7;3487:6;3476:9;3472:22;3451:53;;;3441:63;;3412:98;3237:283;;;;;;3527:110;3600:31;3625:5;3600:31;;;3595:3;3588:44;3582:55;;;3675:590;;3810:54;3858:5;3810:54;;;3882:6;3877:3;3870:19;3906:4;3901:3;3897:14;3890:21;;3951:56;4001:5;3951:56;;;4028:1;4013:230;4038:6;4035:1;4032:13;4013:230;;;4078:53;4127:3;4118:6;4112:13;4078:53;;;4148:60;4201:6;4148:60;;;4138:70;;4231:4;4226:3;4222:14;4215:21;;4060:1;4057;4053:9;4048:14;;4013:230;;;4017:14;4256:3;4249:10;;3789:476;;;;;;;4304:590;;4439:54;4487:5;4439:54;;;4511:6;4506:3;4499:19;4535:4;4530:3;4526:14;4519:21;;4580:56;4630:5;4580:56;;;4657:1;4642:230;4667:6;4664:1;4661:13;4642:230;;;4707:53;4756:3;4747:6;4741:13;4707:53;;;4777:60;4830:6;4777:60;;;4767:70;;4860:4;4855:3;4851:14;4844:21;;4689:1;4686;4682:9;4677:14;;4642:230;;;4646:14;4885:3;4878:10;;4418:476;;;;;;;4902:101;4969:28;4991:5;4969:28;;;4964:3;4957:41;4951:52;;;5010:110;5083:31;5108:5;5083:31;;;5078:3;5071:44;5065:55;;;5127:148;5216:53;5263:5;5216:53;;;5211:3;5204:66;5198:77;;;5282:292;;5380:35;5409:5;5380:35;;;5432:6;5427:3;5420:19;5444:63;5500:6;5493:4;5488:3;5484:14;5477:4;5470:5;5466:16;5444:63;;;5539:29;5561:6;5539:29;;;5532:4;5527:3;5523:14;5519:50;5512:57;;5360:214;;;;;;5582:397;;5737:2;5732:3;5725:15;5774:66;5769:2;5764:3;5760:12;5753:88;5875:66;5870:2;5865:3;5861:12;5854:88;5970:2;5965:3;5961:12;5954:19;;5718:261;;;;5988:397;;6143:2;6138:3;6131:15;6180:66;6175:2;6170:3;6166:12;6159:88;6281:66;6276:2;6271:3;6267:12;6260:88;6376:2;6371:3;6367:12;6360:19;;6124:261;;;;6394:397;;6549:2;6544:3;6537:15;6586:66;6581:2;6576:3;6572:12;6565:88;6687:66;6682:2;6677:3;6673:12;6666:88;6782:2;6777:3;6773:12;6766:19;;6530:261;;;;6799:110;6872:31;6897:5;6872:31;;;6867:3;6860:44;6854:55;;;6916:104;6985:29;7008:5;6985:29;;;6980:3;6973:42;6967:53;;;7027:427;;7207:2;7196:9;7192:18;7184:26;;7221:61;7279:1;7268:9;7264:17;7255:6;7221:61;;;7293:78;7367:2;7356:9;7352:18;7343:6;7293:78;;;7382:62;7440:2;7429:9;7425:18;7416:6;7382:62;;;7178:276;;;;;;;7461:294;;7597:2;7586:9;7582:18;7574:26;;7611:61;7669:1;7658:9;7654:17;7645:6;7611:61;;;7683:62;7741:2;7730:9;7726:18;7717:6;7683:62;;;7568:187;;;;;;7762:341;;7920:2;7909:9;7905:18;7897:26;;7970:9;7964:4;7960:20;7956:1;7945:9;7941:17;7934:47;7995:98;8088:4;8079:6;7995:98;;;7987:106;;7891:212;;;;;8110:341;;8268:2;8257:9;8253:18;8245:26;;8318:9;8312:4;8308:20;8304:1;8293:9;8289:17;8282:47;8343:98;8436:4;8427:6;8343:98;;;8335:106;;8239:212;;;;;8458:181;;8560:2;8549:9;8545:18;8537:26;;8574:55;8626:1;8615:9;8611:17;8602:6;8574:55;;;8531:108;;;;;8646:193;;8754:2;8743:9;8739:18;8731:26;;8768:61;8826:1;8815:9;8811:17;8802:6;8768:61;;;8725:114;;;;;8846:225;;8970:2;8959:9;8955:18;8947:26;;8984:77;9058:1;9047:9;9043:17;9034:6;8984:77;;;8941:130;;;;;9078:273;;9202:2;9191:9;9187:18;9179:26;;9252:9;9246:4;9242:20;9238:1;9227:9;9223:17;9216:47;9277:64;9336:4;9327:6;9277:64;;;9269:72;;9173:178;;;;;9358:387;;9539:2;9528:9;9524:18;9516:26;;9589:9;9583:4;9579:20;9575:1;9564:9;9560:17;9553:47;9614:121;9730:4;9614:121;;;9606:129;;9510:235;;;;9752:387;;9933:2;9922:9;9918:18;9910:26;;9983:9;9977:4;9973:20;9969:1;9958:9;9954:17;9947:47;10008:121;10124:4;10008:121;;;10000:129;;9904:235;;;;10146:387;;10327:2;10316:9;10312:18;10304:26;;10377:9;10371:4;10367:20;10363:1;10352:9;10348:17;10341:47;10402:121;10518:4;10402:121;;;10394:129;;10298:235;;;;10540:193;;10648:2;10637:9;10633:18;10625:26;;10662:61;10720:1;10709:9;10705:17;10696:6;10662:61;;;10619:114;;;;;10740:294;;10876:2;10865:9;10861:18;10853:26;;10890:61;10948:1;10937:9;10933:17;10924:6;10890:61;;;10962:62;11020:2;11009:9;11005:18;10996:6;10962:62;;;10847:187;;;;;;11041:185;;11145:2;11134:9;11130:18;11122:26;;11159:57;11213:1;11202:9;11198:17;11189:6;11159:57;;;11116:110;;;;;11235:121;;11344:4;11336:6;11332:17;11321:28;;11313:43;;;;11367:121;;11476:4;11468:6;11464:17;11453:28;;11445:43;;;;11497:107;;11593:5;11587:12;11577:22;;11571:33;;;;11611:107;;11707:5;11701:12;11691:22;;11685:33;;;;11725:88;;11802:5;11796:12;11786:22;;11780:33;;;;11821:122;;11932:4;11924:6;11920:17;11909:28;;11902:41;;;;11952:122;;12063:4;12055:6;12051:17;12040:28;;12033:41;;;;12082:128;;12162:42;12155:5;12151:54;12140:65;;12134:76;;;;12217:92;;12297:5;12290:13;12283:21;12272:32;;12266:43;;;;12316:79;;12385:5;12374:16;;12368:27;;;;12402:79;;12471:5;12460:16;;12454:27;;;;12488:88;;12566:4;12559:5;12555:16;12544:27;;12538:38;;;;12583:128;;12663:42;12656:5;12652:54;12641:65;;12635:76;;;;12718:92;;12798:5;12791:13;12784:21;12773:32;;12767:43;;;;12817:79;;12886:5;12875:16;;12869:27;;;;12903:79;;12972:5;12961:16;;12955:27;;;;12989:131;;13084:31;13109:5;13084:31;;;13071:44;;13065:55;;;;13128:268;13193:1;13200:101;13214:6;13211:1;13208:13;13200:101;;;13290:1;13285:3;13281:11;13275:18;13271:1;13266:3;13262:11;13255:39;13236:2;13233:1;13229:10;13224:15;;13200:101;;;13316:6;13313:1;13310:13;13307:2;;;13381:1;13372:6;13367:3;13363:16;13356:27;13307:2;13177:219;;;;;13404:97;;13492:2;13488:7;13483:2;13476:5;13472:14;13468:28;13458:38;;13452:49;;;", - "source": "pragma solidity 0.4.23;\npragma experimental ABIEncoderV2;\n\n\nimport \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\nimport \"zeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol\";\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"../lib/AddressArrayUtils.sol\";\nimport \"./interfaces/ISetToken.sol\";\n\n\n/**\n * @title {Set}\n * @author Felix Feng\n * @dev Implementation of the basic {Set} token.\n */\ncontract SetToken is\n StandardToken,\n DetailedERC20(\"\", \"\", 18),\n ISetToken\n{\n using SafeMath for uint256;\n using AddressArrayUtils for address[];\n\n ///////////////////////////////////////////////////////////\n /// Data Structures\n ///////////////////////////////////////////////////////////\n struct Component {\n address address_;\n uint unit_;\n }\n\n ///////////////////////////////////////////////////////////\n /// States\n ///////////////////////////////////////////////////////////\n uint public naturalUnit;\n Component[] public components;\n\n // Mapping of componentHash to isComponent\n mapping(bytes32 => bool) internal isComponent;\n // Mapping of index of component -> user address -> balance\n mapping(uint => mapping(address => uint)) internal unredeemedBalances;\n\n\n ///////////////////////////////////////////////////////////\n /// Events\n ///////////////////////////////////////////////////////////\n event LogPartialRedemption(\n address indexed _sender,\n uint _quantity,\n bytes32 _excludedComponents\n );\n\n event LogRedeemExcluded(\n address indexed _sender,\n bytes32 _components\n );\n\n ///////////////////////////////////////////////////////////\n /// Modifiers\n ///////////////////////////////////////////////////////////\n modifier hasSufficientBalance(uint quantity) {\n // Check that the sender has sufficient components\n // Since the component length is defined ahead of time, this is not\n // an unbounded loop\n require(balances[msg.sender] >= quantity, \"User does not have sufficient balance\");\n _;\n }\n\n modifier validDestination(address _to) {\n require(_to != address(0));\n require(_to != address(this));\n _;\n }\n\n modifier isMultipleOfNaturalUnit(uint _quantity) {\n require((_quantity % naturalUnit) == 0);\n _;\n }\n\n modifier isNonZero(uint _quantity) {\n require(_quantity > 0);\n _;\n }\n\n /**\n * @dev Constructor Function for the issuance of an {Set} token\n * @param _components address[] A list of component address which you want to include\n * @param _units uint[] A list of quantities in gWei of each component (corresponds to the {Set} of _components)\n */\n constructor(\n address[] _components,\n uint[] _units,\n uint _naturalUnit\n )\n isNonZero(_naturalUnit)\n public {\n // There must be component present\n require(_components.length > 0, \"Component length needs to be great than 0\");\n\n // There must be an array of units\n require(_units.length > 0, \"Units must be greater than 0\");\n\n // The number of components must equal the number of units\n require(_components.length == _units.length, \"Component and unit lengths must be the same\");\n\n naturalUnit = _naturalUnit;\n\n // As looping operations are expensive, checking for duplicates will be\n // on the onus of the application developer\n\n // NOTE: It will be the onus of developers to check whether the addressExists\n // are in fact ERC20 addresses\n for (uint16 i = 0; i < _units.length; i++) {\n // Check that all units are non-zero. Negative numbers will underflow\n uint currentUnits = _units[i];\n require(currentUnits > 0, \"Unit declarations must be non-zero\");\n\n // Check that all addresses are non-zero\n address currentComponent = _components[i];\n require(currentComponent != address(0), \"Components must have non-zero address\");\n\n // Check the component has not already been added\n require(!tokenIsComponent(currentComponent));\n\n // add component to isComponent mapping\n isComponent[keccak256(currentComponent)] = true;\n\n components.push(Component({\n address_: currentComponent,\n unit_: currentUnits\n }));\n }\n }\n\n ///////////////////////////////////////////////////////////\n /// Set Functions\n ///////////////////////////////////////////////////////////\n\n /**\n * @dev Function to convert component into {Set} Tokens\n *\n * Please note that the user's ERC20 component must be approved by\n * their ERC20 contract to transfer their components to this contract.\n *\n * @param _quantity uint The quantity of Sets desired to issue in Wei as a multiple of naturalUnit\n */\n function issue(uint _quantity)\n isMultipleOfNaturalUnit(_quantity)\n isNonZero(_quantity)\n public returns (bool) {\n // Transfers the sender's components to the contract\n // Since the component length is defined ahead of time, this is not\n // an unbounded loop\n for (uint16 i = 0; i < components.length; i++) {\n address currentComponent = components[i].address_;\n uint currentUnits = components[i].unit_;\n\n uint preTransferBalance = ERC20(currentComponent).balanceOf(this);\n\n uint transferValue = calculateTransferValue(currentUnits, _quantity);\n require(ERC20(currentComponent).transferFrom(msg.sender, this, transferValue));\n\n // Check that preTransferBalance + transfer value is the same as postTransferBalance\n uint postTransferBalance = ERC20(currentComponent).balanceOf(this);\n assert(preTransferBalance.add(transferValue) == postTransferBalance);\n }\n\n mint(_quantity);\n\n emit LogIssuance(msg.sender, _quantity);\n\n return true;\n }\n\n /**\n * @dev Function to convert {Set} Tokens into underlying components\n *\n * The ERC20 components do not need to be approved to call this function\n *\n * @param _quantity uint The quantity of Sets desired to redeem in Wei as a multiple of naturalUnit\n */\n function redeem(uint _quantity)\n public\n isMultipleOfNaturalUnit(_quantity)\n hasSufficientBalance(_quantity)\n isNonZero(_quantity)\n returns (bool)\n {\n burn(_quantity);\n\n for (uint16 i = 0; i < components.length; i++) {\n address currentComponent = components[i].address_;\n uint currentUnits = components[i].unit_;\n\n uint preTransferBalance = ERC20(currentComponent).balanceOf(this);\n\n uint transferValue = calculateTransferValue(currentUnits, _quantity);\n require(ERC20(currentComponent).transfer(msg.sender, transferValue));\n\n // Check that preTransferBalance + transfer value is the same as postTransferBalance\n uint postTransferBalance = ERC20(currentComponent).balanceOf(this);\n assert(preTransferBalance.sub(transferValue) == postTransferBalance);\n }\n\n emit LogRedemption(msg.sender, _quantity);\n\n return true;\n }\n\n /**\n * @dev Function to withdraw a portion of the component tokens of a Set\n *\n * This function should be used in the event that a component token has been\n * paused for transfer temporarily or permanently. This allows users a\n * method to withdraw tokens in the event that one token has been frozen.\n *\n * The mask can be computed by summing the powers of 2 of indexes of components to exclude.\n * For example, to exclude the 0th, 1st, and 3rd components, we pass in the hex of\n * 1 + 2 + 8 = 11, padded to length 32 i.e. 0x000000000000000000000000000000000000000000000000000000000000000b\n *\n * @param _quantity uint The quantity of Sets desired to redeem in Wei\n * @param _componentsToExclude bytes32 Hex of bitmask of components to exclude\n */\n function partialRedeem(uint _quantity, bytes32 _componentsToExclude)\n public\n isMultipleOfNaturalUnit(_quantity)\n isNonZero(_quantity)\n hasSufficientBalance(_quantity)\n returns (bool)\n {\n // Excluded tokens should be less than the number of components\n // Otherwise, use the normal redeem function\n require(_componentsToExclude > 0, \"Excluded components must be non-zero\");\n\n burn(_quantity);\n\n for (uint16 i = 0; i < components.length; i++) {\n uint transferValue = calculateTransferValue(components[i].unit_, _quantity);\n\n // Exclude tokens if 2 raised to the power of their indexes in the components\n // array results in a non zero value following a bitwise AND\n if (_componentsToExclude & bytes32(2 ** i) > 0) {\n unredeemedBalances[i][msg.sender] += transferValue;\n } else {\n uint preTransferBalance = ERC20(components[i].address_).balanceOf(this);\n\n require(ERC20(components[i].address_).transfer(msg.sender, transferValue));\n\n // Check that preTransferBalance + transfer value is the same as postTransferBalance\n uint postTransferBalance = ERC20(components[i].address_).balanceOf(this);\n assert(preTransferBalance.sub(transferValue) == postTransferBalance);\n }\n }\n\n emit LogPartialRedemption(msg.sender, _quantity, _componentsToExclude);\n\n return true;\n }\n\n /**\n * @dev Function to withdraw tokens that have previously been excluded when calling\n * the partialRedeem method\n\n * The mask can be computed by summing the powers of 2 of indexes of components to redeem.\n * For example, to redeem the 0th, 1st, and 3rd components, we pass in the hex of\n * 1 + 2 + 8 = 11, padded to length 32 i.e. 0x000000000000000000000000000000000000000000000000000000000000000b\n *\n * @param _componentsToRedeem bytes32 Hex of bitmask of components to redeem\n */\n function redeemExcluded(bytes32 _componentsToRedeem)\n public\n returns (bool)\n {\n require(_componentsToRedeem > 0, \"Components to redeem must be non-zero\");\n\n for (uint16 i = 0; i < components.length; i++) {\n if (_componentsToRedeem & bytes32(2 ** i) > 0) {\n address currentComponent = components[i].address_;\n uint remainingBalance = unredeemedBalances[i][msg.sender];\n\n // To prevent re-entrancy attacks, decrement the user's Set balance\n unredeemedBalances[i][msg.sender] = 0;\n\n require(ERC20(currentComponent).transfer(msg.sender, remainingBalance));\n }\n }\n\n emit LogRedeemExcluded(msg.sender, _componentsToRedeem);\n\n return true;\n }\n\n ///////////////////////////////////////////////////////////\n /// Getters\n ///////////////////////////////////////////////////////////\n function getComponents()\n public \n view\n returns(address[])\n {\n address[] memory componentAddresses = new address[](components.length);\n for (uint16 i = 0; i < components.length; i++) {\n componentAddresses[i] = components[i].address_;\n }\n return componentAddresses;\n }\n\n function getUnits()\n public\n view\n returns(uint[])\n {\n uint[] memory units = new uint[](components.length);\n for (uint16 i = 0; i < components.length; i++) {\n units[i] = components[i].unit_;\n }\n return units;\n }\n\n function getUnredeemedBalance(\n address _componentAddress,\n address _userAddress\n )\n public\n view\n returns (uint256)\n {\n require(tokenIsComponent(_componentAddress));\n\n uint componentIndex;\n\n for (uint i = 0; i < components.length; i++) {\n if (components[i].address_ == _componentAddress) {\n componentIndex = i;\n }\n }\n\n return unredeemedBalances[componentIndex][_userAddress];\n }\n\n ///////////////////////////////////////////////////////////\n /// Transfer Updates\n ///////////////////////////////////////////////////////////\n function transfer(\n address _to,\n uint256 _value\n )\n validDestination(_to)\n public\n returns (bool)\n {\n return super.transfer(_to, _value);\n }\n\n function transferFrom(\n address _from,\n address _to,\n uint256 _value\n )\n validDestination(_to)\n public\n returns (bool)\n {\n return super.transferFrom(_from, _to, _value);\n }\n\n ///////////////////////////////////////////////////////////\n /// Private Function\n ///////////////////////////////////////////////////////////\n\n function tokenIsComponent(\n address _tokenAddress\n )\n view\n internal\n returns (bool)\n {\n return isComponent[keccak256(_tokenAddress)];\n }\n\n function calculateTransferValue(\n uint componentUnits,\n uint quantity\n )\n view\n internal\n returns(uint)\n {\n return quantity.div(naturalUnit).mul(componentUnits);\n }\n\n function mint(\n uint quantity\n )\n internal\n {\n balances[msg.sender] = balances[msg.sender].add(quantity);\n totalSupply_ = totalSupply_.add(quantity);\n emit Transfer(address(0), msg.sender, quantity);\n }\n\n function burn(\n uint quantity\n )\n internal\n {\n balances[msg.sender] = balances[msg.sender].sub(quantity);\n totalSupply_ = totalSupply_.sub(quantity);\n emit Transfer(msg.sender, address(0), quantity);\n }\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetToken.sol", + "bytecode": "0x60806040523480156200001157600080fd5b50604051620028b3380380620028b383398101806040528101908080519060200190929190805182019291906020018051820192919060200180519060200190929190805182019291906020018051820192919050505060008060008060008686601282600390805190602001906200008c929190620007f9565b508160049080519060200190620000a5929190620007f9565b5080600560006101000a81548160ff021916908360ff16021790555050505060129450600092505b88518361ffff161015620006b057888361ffff16815181101515620000ee57fe5b90602001906020020151915060008211606060405190810160405280602381526020017f556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a6581526020017f726f2e000000000000000000000000000000000000000000000000000000000081525090151562000207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620001cb578082015181840152602081019050620001ae565b50505050905090810190601f168015620001f95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50898361ffff168151811015156200021b57fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415606060405190810160405280602681526020017f436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616481526020017f64726573732e000000000000000000000000000000000000000000000000000081525090151562000361576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200032557808201518184015260208101905062000308565b50505050905090810190601f168015620003535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508073ffffffffffffffffffffffffffffffffffffffff1660405180807f646563696d616c73282900000000000000000000000000000000000000000000815250600a01905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016000604051808303816000875af19250505015620004d8578073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200047a57600080fd5b505af11580156200048f573d6000803e3d6000fd5b505050506040513d6020811015620004a657600080fd5b810190808051906020019092919050505093508460ff168460ff1610620004ce5784620004d0565b835b9450620004dd565b600094505b620004f78162000709640100000000026401000000009004565b1515156200050457600080fd5b60016008600083604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b6020831015156200059c578051825260208201915060208101905060208303925062000575565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600760408051908101604052808373ffffffffffffffffffffffffffffffffffffffff168152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050508280600101935050620000cd565b8a600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550876006819055505050505050505050505050620008a8565b60006008600083604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b602083101515620007a157805182526020820191506020810190506020830392506200077a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200083c57805160ff19168380011785556200086d565b828001600101855582156200086d579182015b828111156200086c5782518255916020019190600101906200084f565b5b5090506200087c919062000880565b5090565b620008a591905b80821115620008a157600081600090555060010162000887565b5090565b90565b611ffb80620008b86000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461010157806306fdde031461016d578063095ea7b3146101fd57806318160ddd1461026257806323b872dd1461028d578063313ce5671461031257806340c10f191461034357806342a7cfd51461039057806366188463146103bb57806370a082311461042057806395d89b411461047757806399d50d5d146105075780639dc29fac14610573578063a9059cbb146105c0578063c45a015514610625578063c5d574fe1461067c578063d73dd623146106f0578063dd62ed3e14610755575b600080fd5b34801561010d57600080fd5b506101166107cc565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561015957808201518184015260208101905061013e565b505050509050019250505060405180910390f35b34801561017957600080fd5b50610182610878565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020957600080fd5b50610248600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610916565b604051808215151515815260200191505060405180910390f35b34801561026e57600080fd5b50610277610a08565b6040518082815260200191505060405180910390f35b34801561029957600080fd5b506102f8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a12565b604051808215151515815260200191505060405180910390f35b34801561031e57600080fd5b50610327610aa1565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034f57600080fd5b5061038e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ab4565b005b34801561039c57600080fd5b506103a5610d5b565b6040518082815260200191505060405180910390f35b3480156103c757600080fd5b50610406600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d61565b604051808215151515815260200191505060405180910390f35b34801561042c57600080fd5b50610461600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff2565b6040518082815260200191505060405180910390f35b34801561048357600080fd5b5061048c61103a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104cc5780820151818401526020810190506104b1565b50505050905090810190601f1680156104f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051357600080fd5b5061051c6110d8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561055f578082015181840152602081019050610544565b505050509050019250505060405180910390f35b34801561057f57600080fd5b506105be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d2565b005b3480156105cc57600080fd5b5061060b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611638565b604051808215151515815260200191505060405180910390f35b34801561063157600080fd5b5061063a6116c5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068857600080fd5b506106a7600480360381019080803590602001909291905050506116eb565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b3480156106fc57600080fd5b5061073b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061173e565b604051808215151515815260200191505060405180910390f35b34801561076157600080fd5b506107b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061193a565b6040518082815260200191505060405180910390f35b60608060006007805490506040519080825280602002602001820160405280156108055781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156108705760078161ffff1681548110151561083157fe5b906000526020600020906002020160010154828261ffff1681518110151561085557fe5b9060200190602002018181525050808060010191505061080d565b819250505090565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561090e5780601f106108e35761010080835404028352916020019161090e565b820191906000526020600020905b8154815290600101906020018083116108f157829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a5157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a8c57600080fd5b610a978585856119c1565b9150509392505050565b600560009054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b3a57600080fd5b505af1158015610b4e573d6000803e3d6000fd5b505050506040513d6020811015610b6457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e000000000000000000000000000000815250901515610ca8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c6d578082015181840152602081019050610c52565b50505050905090810190601f168015610c9a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610cfa816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d5181600154611d7b90919063ffffffff16565b6001819055505050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610e72576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f06565b610e858382611d9790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110d05780601f106110a5576101008083540402835291602001916110d0565b820191906000526020600020905b8154815290600101906020018083116110b357829003601f168201915b505050505081565b60608060006007805490506040519080825280602002602001820160405280156111115781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156111ca5760078161ffff1681548110151561113d57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561118157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050611119565b819250505090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e0000000000000000000000000000008152509015156113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561138b578082015181840152602081019050611370565b50505050905090810190601f1680156113b85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e00000000000000000000000000000000000000000000000000000000008152509015156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561149657808201518184015260208101905061147b565b50505050905090810190601f1680156114c35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561151f57600080fd5b611570826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115c782600154611d9790919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561167757600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116b257600080fd5b6116bc8484611db0565b91505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007818154811015156116fa57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60006117cf82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156119fe57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611a4b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611ad657600080fd5b611b27826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bba826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c8b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008183019050828110151515611d8e57fe5b80905092915050565b6000828211151515611da557fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ded57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611e3a57600080fd5b611e8b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820df41b023d91b0489bc8d71be113287d3f5667870ed67e9fbf04ae6e2505c0b790029", + "deployedBytecode": "0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461010157806306fdde031461016d578063095ea7b3146101fd57806318160ddd1461026257806323b872dd1461028d578063313ce5671461031257806340c10f191461034357806342a7cfd51461039057806366188463146103bb57806370a082311461042057806395d89b411461047757806399d50d5d146105075780639dc29fac14610573578063a9059cbb146105c0578063c45a015514610625578063c5d574fe1461067c578063d73dd623146106f0578063dd62ed3e14610755575b600080fd5b34801561010d57600080fd5b506101166107cc565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561015957808201518184015260208101905061013e565b505050509050019250505060405180910390f35b34801561017957600080fd5b50610182610878565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020957600080fd5b50610248600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610916565b604051808215151515815260200191505060405180910390f35b34801561026e57600080fd5b50610277610a08565b6040518082815260200191505060405180910390f35b34801561029957600080fd5b506102f8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a12565b604051808215151515815260200191505060405180910390f35b34801561031e57600080fd5b50610327610aa1565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034f57600080fd5b5061038e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ab4565b005b34801561039c57600080fd5b506103a5610d5b565b6040518082815260200191505060405180910390f35b3480156103c757600080fd5b50610406600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d61565b604051808215151515815260200191505060405180910390f35b34801561042c57600080fd5b50610461600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff2565b6040518082815260200191505060405180910390f35b34801561048357600080fd5b5061048c61103a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104cc5780820151818401526020810190506104b1565b50505050905090810190601f1680156104f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051357600080fd5b5061051c6110d8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561055f578082015181840152602081019050610544565b505050509050019250505060405180910390f35b34801561057f57600080fd5b506105be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d2565b005b3480156105cc57600080fd5b5061060b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611638565b604051808215151515815260200191505060405180910390f35b34801561063157600080fd5b5061063a6116c5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068857600080fd5b506106a7600480360381019080803590602001909291905050506116eb565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b3480156106fc57600080fd5b5061073b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061173e565b604051808215151515815260200191505060405180910390f35b34801561076157600080fd5b506107b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061193a565b6040518082815260200191505060405180910390f35b60608060006007805490506040519080825280602002602001820160405280156108055781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156108705760078161ffff1681548110151561083157fe5b906000526020600020906002020160010154828261ffff1681518110151561085557fe5b9060200190602002018181525050808060010191505061080d565b819250505090565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561090e5780601f106108e35761010080835404028352916020019161090e565b820191906000526020600020905b8154815290600101906020018083116108f157829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a5157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a8c57600080fd5b610a978585856119c1565b9150509392505050565b600560009054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b3a57600080fd5b505af1158015610b4e573d6000803e3d6000fd5b505050506040513d6020811015610b6457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e000000000000000000000000000000815250901515610ca8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c6d578082015181840152602081019050610c52565b50505050905090810190601f168015610c9a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610cfa816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d5181600154611d7b90919063ffffffff16565b6001819055505050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610e72576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f06565b610e858382611d9790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110d05780601f106110a5576101008083540402835291602001916110d0565b820191906000526020600020905b8154815290600101906020018083116110b357829003601f168201915b505050505081565b60608060006007805490506040519080825280602002602001820160405280156111115781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156111ca5760078161ffff1681548110151561113d57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561118157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050611119565b819250505090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e0000000000000000000000000000008152509015156113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561138b578082015181840152602081019050611370565b50505050905090810190601f1680156113b85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e00000000000000000000000000000000000000000000000000000000008152509015156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561149657808201518184015260208101905061147b565b50505050905090810190601f1680156114c35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561151f57600080fd5b611570826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115c782600154611d9790919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561167757600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116b257600080fd5b6116bc8484611db0565b91505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007818154811015156116fa57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60006117cf82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156119fe57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611a4b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611ad657600080fd5b611b27826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bba826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c8b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008183019050828110151515611d8e57fe5b80905092915050565b6000828211151515611da557fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ded57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611e3a57600080fd5b611e8b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820df41b023d91b0489bc8d71be113287d3f5667870ed67e9fbf04ae6e2505c0b790029", + "sourceMap": "1039:7917:0:-;;;4036:2261;8:9:-1;5:2;;;30:1;27;20:12;5:2;4036:2261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4498:17;4530:21;4566:8;4700:17;4906:24;4244:5;4251:7;4260:2;470:5:7;463:4;:12;;;;;;;;;;;;:::i;:::-;;490:7;481:6;:16;;;;;;;;;;;;:::i;:::-;;514:9;503:8;;:20;;;;;;;;;;;;;;;;;;391:137;;;4518:2:0;4498:22;;4577:1;4566:12;;4561:1445;4584:6;:13;4580:1;:17;;;4561:1445;;;4720:6;4727:1;4720:9;;;;;;;;;;;;;;;;;;;;4700:29;;4783:1;4768:12;:16;4802:22;;;;;;;;;;;;;;;;;;;;;;;4743:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4743:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4933:11;4945:1;4933:14;;;;;;;;;;;;;;;;;;;;4906:41;;5014:1;4986:30;;:16;:30;;;;5034:25;;;;;;;;;;;;;;;;;;;;;;;4961:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4961:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5172:16;:21;;5201:23;;;;;;;;;;;;;;;;;;;5172:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5168:437;;;5278:16;5264:40;;;:42;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5264:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5264:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5264:42:0;;;;;;;;;;;;;;;;5246:60;;5356:11;5338:29;;:15;:29;;;:61;;5388:11;5338:61;;;5370:15;5338:61;5324:75;;5168:437;;;5589:1;5575:15;;5168:437;5690:34;5707:16;5690;;;:34;;;:::i;:::-;5689:35;5681:44;;;;;;;;5853:4;5792:11;:58;5831:16;5814:34;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5814:34:0;;;5804:45;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5804:45:0;;;;;;;;;;;;;;;;5792:58;;;;;;;;;;;;;;;;;;:65;;;;;;;;;;;;;;;;;;5872:10;5888:106;;;;;;;;;5926:16;5888:106;;;;;;5967:12;5888:106;;;5872:123;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;5872:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4599:3;;;;;;;4561:1445;;;6246:8;6236:7;;:18;;;;;;;;;;;;;;;;;;6278:12;6264:11;:26;;;;4036:2261;;;;;;;;;;;1039:7917;;8755:199;8865:4;8892:11;:55;8931:13;8914:31;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8914:31:0;;;8904:42;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8904:42:0;;;;;;;;;;;;;;;;8892:55;;;;;;;;;;;;;;;;;;;;;;;;;;;8885:62;;8755:199;;;:::o;1039:7917::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "1039:7917:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7925:277;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7925:277:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7925:277:0;;;;;;;;;;;;;;;;;319:18:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;319:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;319:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:6;;;;;;;;;;;;;;;;;;;;;;;8464:232:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8464:232:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;365:21:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;365:21:7;;;;;;;;;;;;;;;;;;;;;;;;;;;6604:325:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6604:325:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2030:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2030:23:0;;;;;;;;;;;;;;;;;;;;;;;3701:425:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;341:20:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;341:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;341:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7586:333:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7586:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7586:333:0;;;;;;;;;;;;;;;;;7183:352;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7183:352:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8264:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8264:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2259:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2259:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2059:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2059:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7925:277:0;7989:6;8011:19;8077:8;8044:10;:17;;;;8033:29;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;8033:29:0;;;;8011:51;;8088:1;8077:12;;8072:102;8095:10;:17;;;;8091:1;:21;;;8072:102;;;8144:10;8155:1;8144:13;;;;;;;;;;;;;;;;;;;;;;:19;;;8133:5;8139:1;8133:8;;;;;;;;;;;;;;;;;;;:30;;;;;8114:3;;;;;;;8072:102;;;8190:5;8183:12;;7925:277;;;:::o;319:18:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:10:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;371:83:6:-;415:7;437:12;;430:19;;371:83;:::o;8464:232:0:-;8624:4;8602:3;3342:1;3327:17;;:3;:17;;;;3319:26;;;;;;;;3378:4;3363:20;;:3;:20;;;;3355:29;;;;;;;;8651:38;8670:5;8677:3;8682:6;8651:18;:38::i;:::-;8644:45;;8464:232;;;;;;:::o;365:21:7:-;;;;;;;;;;;;;:::o;6604:325:0:-;2410:7;;;;;;;;;;;2398:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2398:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2398:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2398:27:0;;;;;;;;;;;;;;;;2384:41;;:10;:41;;;2439:14;;;;;;;;;;;;;;;;;;;;;;;2363:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2363:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6785:32;6807:9;6785:8;:17;6794:7;6785:17;;;;;;;;;;;;;;;;:21;;:32;;;;:::i;:::-;6765:8;:17;6774:7;6765:17;;;;;;;;;;;;;;;:52;;;;6895:27;6912:9;6895:12;;:16;;:27;;;;:::i;:::-;6880:12;:42;;;;6604:325;;:::o;2030:23::-;;;;:::o;3701:425:10:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:6:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;341:20:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7586:333:0:-;7655:9;7680:35;7765:8;7732:10;:17;;;;7718:32;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;7718:32:0;;;;7680:70;;7776:1;7765:12;;7760:118;7783:10;:17;;;;7779:1;:21;;;7760:118;;;7845:10;7856:1;7845:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;7821:18;7840:1;7821:21;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;7802:3;;;;;;;7760:118;;;7894:18;7887:25;;7586:333;;;:::o;7183:352::-;2410:7;;;;;;;;;;;2398:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2398:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2398:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2398:27:0;;;;;;;;;;;;;;;;2384:41;;:10;:41;;;2439:14;;;;;;;;;;;;;;;;;;;;;;;2363:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2363:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7301:9;3206:1;3194:9;:13;3221;;;;;;;;;;;;;;;;;;;;;;;3173:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3173:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:9;7334:8;:15;7343:5;7334:15;;;;;;;;;;;;;;;;:28;;7326:37;;;;;;;;7392:30;7412:9;7392:8;:15;7401:5;7392:15;;;;;;;;;;;;;;;;:19;;:30;;;;:::i;:::-;7374:8;:15;7383:5;7374:15;;;;;;;;;;;;;;;:48;;;;7447:27;7464:9;7447:12;;:16;;:27;;;;:::i;:::-;7432:12;:42;;;;7514:1;7490:38;;7499:5;7490:38;;;7518:9;7490:38;;;;;;;;;;;;;;;;;;2473:1;7183:352;;:::o;8264:194::-;8397:4;8375:3;3342:1;3327:17;;:3;:17;;;;3319:26;;;;;;;;3378:4;3363:20;;:3;:20;;;;3355:29;;;;;;;;8424:27;8439:3;8444:6;8424:14;:27::i;:::-;8417:34;;8264:194;;;;;:::o;2259:22::-;;;;;;;;;;;;;:::o;2059:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2946:293:10:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;736:470::-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;1214:123:4:-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;1042:110::-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;608:321:6:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\nimport { DetailedERC20 } from \"zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol\";\nimport { StandardToken } from \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { ISetFactory } from \"./interfaces/ISetFactory.sol\";\n\n\n/**\n * @title SetToken\n * @author Set Protocol\n *\n * Implementation of the basic {Set} token.\n */\ncontract SetToken is\n StandardToken,\n DetailedERC20\n{\n using SafeMath for uint256;\n\n /* ============ Constants ============ */\n\n string constant COMPONENTS_INPUT_MISMATCH = \"Components and units must be the same length.\";\n string constant COMPONENTS_MISSING = \"Components must not be empty.\";\n string constant INVALID_COMPONENT_UNIT = \"Unit declarations must be non-zero.\";\n string constant INVALID_COMPONENT_ADDRESS = \"Components must have non-zero address.\";\n string constant INVALID_NATURAL_UNIT = \"Natural unit does not work with component decimals.\";\n string constant INVALID_SENDER = \"Sender is not permitted to perform this function.\";\n string constant UNITS_MISSING = \"Units must not be empty.\";\n string constant ZERO_QUANTITY = \"Quantity must be greater than zero.\";\n\n /* ============ Structs ============ */\n\n struct Component {\n address address_;\n uint unit_;\n }\n\n /* ============ State Variables ============ */\n\n uint public naturalUnit;\n Component[] public components;\n\n // Mapping of componentHash to isComponent\n mapping(bytes32 => bool) internal isComponent;\n\n // Address of the Factory contract that created the SetToken\n address public factory;\n\n /* ============ Modifiers ============ */\n\n modifier isCore() {\n require(\n msg.sender == ISetFactory(factory).core(),\n INVALID_SENDER\n );\n _;\n }\n\n // Confirm that all inputs for creating a set are valid\n modifier areValidCreationParameters(address[] _components, uint[] _units) {\n // Confirm an empty _components array is not passed\n require(\n _components.length > 0,\n COMPONENTS_MISSING\n );\n\n // Confirm an empty _quantities array is not passed\n require(\n _units.length > 0,\n UNITS_MISSING\n );\n\n // Confirm there is one quantity for every token address\n require(\n _components.length == _units.length,\n COMPONENTS_INPUT_MISMATCH\n );\n _;\n }\n\n modifier isPositive(uint _quantity) {\n require(\n _quantity > 0,\n ZERO_QUANTITY\n );\n _;\n }\n\n modifier isValidDestination(address _to) {\n require(_to != address(0));\n require(_to != address(this));\n _;\n }\n\n /* ============ Constructor ============ */\n\n /**\n * Constructor function for {Set} token\n *\n * As looping operations are expensive, checking for duplicates will be on the onus of the application developer\n *\n * @param _components address[] A list of component address which you want to include\n * @param _units uint[] A list of quantities in gWei of each component (corresponds to the {Set} of _components)\n * @param _naturalUnit uint The minimum multiple of Sets that can be issued or redeeemed\n * @param _name string The Set's name\n * @param _symbol string the Set's symbol\n */\n constructor(\n address _factory,\n address[] _components,\n uint[] _units,\n uint _naturalUnit,\n string _name,\n string _symbol\n )\n public\n DetailedERC20(_name, _symbol, 18)\n // isPositive(_naturalUnit)\n // areValidCreationParameters(_components, _units)\n {\n // NOTE: It will be the onus of developers to check whether the addressExists\n // are in fact ERC20 addresses\n uint8 minDecimals = 18;\n uint8 currentDecimals;\n for (uint16 i = 0; i < _units.length; i++) {\n // Check that all units are non-zero. Negative numbers will underflow\n uint currentUnits = _units[i];\n require(\n currentUnits > 0,\n INVALID_COMPONENT_UNIT\n );\n\n // Check that all addresses are non-zero\n address currentComponent = _components[i];\n require(\n currentComponent != address(0),\n INVALID_COMPONENT_ADDRESS\n );\n\n // Figure out which of the components has the minimum decimal value\n if (currentComponent.call(bytes4(keccak256(\"decimals()\")))) {\n currentDecimals = DetailedERC20(currentComponent).decimals();\n minDecimals = currentDecimals < minDecimals ? currentDecimals : minDecimals;\n } else {\n // If one of the components does not implement decimals, we assume the worst\n // and set minDecimals to 0\n minDecimals = 0;\n }\n\n // Check the component has not already been added\n require(!tokenIsComponent(currentComponent));\n\n // add component to isComponent mapping\n isComponent[keccak256(abi.encodePacked(currentComponent))] = true;\n\n components.push(Component({\n address_: currentComponent,\n unit_: currentUnits\n }));\n }\n\n // This is the minimum natural unit possible for a Set with these components.\n // require(\n // _naturalUnit >= uint(10) ** (18 - minDecimals),\n // INVALID_NATURAL_UNIT\n // );\n\n factory = _factory;\n naturalUnit = _naturalUnit;\n }\n\n /* ============ Public Functions ============ */\n\n /*\n * Mint set token for given address.\n * Can only be called by authorized contracts.\n *\n * @param _issuer The address of the issuing account\n * @param _quantity The number of sets to attribute to issuer\n */\n function mint(\n address _issuer,\n uint _quantity\n )\n external\n isCore\n {\n // Update token balance of the issuer\n balances[_issuer] = balances[_issuer].add(_quantity);\n\n // Update the total supply of the set token\n totalSupply_ = totalSupply_.add(_quantity);\n }\n\n /*\n * Burn set token for given address.\n * Can only be called by authorized contracts.\n *\n * @param _from The address of the redeeming account\n * @param _quantity The number of sets to burn from redeemer\n */\n function burn(\n address _from,\n uint _quantity\n )\n external\n isCore\n isPositive(_quantity)\n {\n require(balances[_from] >= _quantity);\n\n balances[_from] = balances[_from].sub(_quantity);\n totalSupply_ = totalSupply_.sub(_quantity);\n\n emit Transfer(_from, address(0), _quantity);\n }\n\n /* ============ Getters ============ */\n\n function getComponents()\n public\n view\n returns(address[])\n {\n address[] memory componentAddresses = new address[](components.length);\n for (uint16 i = 0; i < components.length; i++) {\n componentAddresses[i] = components[i].address_;\n }\n return componentAddresses;\n }\n\n function getUnits()\n public\n view\n returns(uint[])\n {\n uint[] memory units = new uint[](components.length);\n for (uint16 i = 0; i < components.length; i++) {\n units[i] = components[i].unit_;\n }\n return units;\n }\n\n /* ============ Transfer Overrides ============ */\n\n function transfer(\n address _to,\n uint256 _value\n )\n public\n isValidDestination(_to)\n returns (bool)\n {\n return super.transfer(_to, _value);\n }\n\n function transferFrom(\n address _from,\n address _to,\n uint256 _value\n )\n public\n isValidDestination(_to)\n returns (bool)\n {\n return super.transferFrom(_from, _to, _value);\n }\n\n /* ============ Private Helpers ============ */\n\n function tokenIsComponent(\n address _tokenAddress\n )\n view\n internal\n returns (bool)\n {\n return isComponent[keccak256(abi.encodePacked(_tokenAddress))];\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetToken.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetToken.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetToken.sol", "exportedSymbols": { "SetToken": [ - 980 + 498 ] }, - "id": 981, + "id": 499, "nodeType": "SourceUnit", "nodes": [ { - "id": 58, + "id": 1, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:1" + "src": "597:23:0" }, { - "id": 59, - "literals": [ - "experimental", - "ABIEncoderV2" + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 499, + "sourceUnit": 1100, + "src": "623:90:0", + "symbolAliases": [ + { + "foreign": 2, + "local": null + } ], - "nodeType": "PragmaDirective", - "src": "24:33:1" + "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", - "id": 60, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2800, - "src": "60:67:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 61, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2415, - "src": "128:59:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "id": 62, + "id": 5, "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2372, - "src": "188:67:1", - "symbolAliases": [], + "scope": 499, + "sourceUnit": 1422, + "src": "714:90:0", + "symbolAliases": [ + { + "foreign": 4, + "local": null + } + ], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "zeppelin-solidity/contracts/math/SafeMath.sol", - "id": 63, + "id": 7, "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2156, - "src": "256:55:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/lib/AddressArrayUtils.sol", - "file": "../lib/AddressArrayUtils.sol", - "id": 64, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 1688, - "src": "312:38:1", - "symbolAliases": [], + "scope": 499, + "sourceUnit": 884, + "src": "805:73:0", + "symbolAliases": [ + { + "foreign": 6, + "local": null + } + ], "unitAlias": "" }, { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", - "file": "./interfaces/ISetToken.sol", - "id": 65, + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", + "file": "./interfaces/ISetFactory.sol", + "id": 9, "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 1622, - "src": "351:36:1", - "symbolAliases": [], + "scope": 499, + "sourceUnit": 575, + "src": "879:59:0", + "symbolAliases": [ + { + "foreign": 8, + "local": null + } + ], "unitAlias": "" }, { @@ -630,157 +505,82 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 66, + "id": 10, "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "510:13:1", + "referencedDeclaration": 1421, + "src": "1064:13:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", + "typeIdentifier": "t_contract$_StandardToken_$1421", "typeString": "contract StandardToken" } }, - "id": 67, + "id": 11, "nodeType": "InheritanceSpecifier", - "src": "510:13:1" + "src": "1064:13:0" }, { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "", - "id": 69, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "543:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 70, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "547:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 71, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "551:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], + "arguments": null, "baseName": { "contractScope": null, - "id": 68, + "id": 12, "name": "DetailedERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2371, - "src": "529:13:1", + "referencedDeclaration": 1099, + "src": "1083:13:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$2371", + "typeIdentifier": "t_contract$_DetailedERC20_$1099", "typeString": "contract DetailedERC20" } }, - "id": 72, - "nodeType": "InheritanceSpecifier", - "src": "529:25:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 73, - "name": "ISetToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1621, - "src": "560:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "id": 74, + "id": 13, "nodeType": "InheritanceSpecifier", - "src": "560:9:1" + "src": "1083:13:0" } ], "contractDependencies": [ - 1621, - 2337, - 2371, - 2414, - 2446, - 2799 + 1065, + 1099, + 1142, + 1174, + 1421 ], "contractKind": "contract", - "documentation": "@title {Set}\n@author Felix Feng\n@dev Implementation of the basic {Set} token.", + "documentation": "@title SetToken\n@author Set Protocol\n * Implementation of the basic {Set} token.", "fullyImplemented": true, - "id": 980, + "id": 498, "linearizedBaseContracts": [ - 980, - 1621, - 2371, - 2799, - 2337, - 2414, - 2446 + 498, + 1099, + 1421, + 1065, + 1142, + 1174 ], "name": "SetToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 77, + "id": 16, "libraryName": { "contractScope": null, - "id": 75, + "id": 14, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "582:8:1", + "referencedDeclaration": 883, + "src": "1109:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", + "typeIdentifier": "t_contract$_SafeMath_$883", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "576:27:1", + "src": "1103:27:0", "typeName": { - "id": 76, + "id": 15, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "595:7:1", + "src": "1122:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -788,64 +588,371 @@ } }, { - "id": 81, - "libraryName": { - "contractScope": null, - "id": 78, - "name": "AddressArrayUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1687, - "src": "614:17:1", + "constant": true, + "id": 19, + "name": "COMPONENTS_INPUT_MISMATCH", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1183:91:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 17, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1183:6:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressArrayUtils_$1687", - "typeString": "library AddressArrayUtils" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "nodeType": "UsingForDirective", - "src": "608:38:1", - "typeName": { - "baseType": { - "id": 79, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "636:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "value": { + "argumentTypes": null, + "hexValue": "436f6d706f6e656e747320616e6420756e697473206d757374206265207468652073616d65206c656e6774682e", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1227:47:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_507b7271d0f520677dcc8f52ce111f2a3d6cc23688f132cd90329dcf0980ccdd", + "typeString": "literal_string \"Components and units must be the same length.\"" }, - "id": 80, - "length": null, - "nodeType": "ArrayTypeName", - "src": "636:9:1", + "value": "Components and units must be the same length." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 22, + "name": "COMPONENTS_MISSING", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1280:68:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 20, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1280:6:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } - } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6d706f6e656e7473206d757374206e6f7420626520656d7074792e", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1317:31:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c812e6febc96d0f15c9ef704912a1e5b8ac9ee7602acc3375346a83f7a2a9021", + "typeString": "literal_string \"Components must not be empty.\"" + }, + "value": "Components must not be empty." + }, + "visibility": "internal" }, { - "canonicalName": "SetToken.Component", - "id": 86, - "members": [ - { - "constant": false, - "id": 83, - "name": "address_", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "831:16:1", - "stateVariable": false, + "constant": true, + "id": 25, + "name": "INVALID_COMPONENT_UNIT", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1354:78:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 23, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1354:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a65726f2e", + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1395:37:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_615190b3721d5d2af7bfb2963be7ac841d5b81d1062f7f16fb3ebe7964aaa975", + "typeString": "literal_string \"Unit declarations must be non-zero.\"" + }, + "value": "Unit declarations must be non-zero." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 28, + "name": "INVALID_COMPONENT_ADDRESS", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1438:84:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 26, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1438:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616464726573732e", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1482:40:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c797d4c348b9995d79eeab7c20eaf4ca13ae42e7484e60cde80a890be1da5b5c", + "typeString": "literal_string \"Components must have non-zero address.\"" + }, + "value": "Components must have non-zero address." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 31, + "name": "INVALID_NATURAL_UNIT", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1528:92:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 29, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1528:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "4e61747572616c20756e697420646f6573206e6f7420776f726b207769746820636f6d706f6e656e7420646563696d616c732e", + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1567:53:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4b7120cbe8d08c58dcbc7d80995b28a0b5a9deed88a172beefd52b7c34f75cea", + "typeString": "literal_string \"Natural unit does not work with component decimals.\"" + }, + "value": "Natural unit does not work with component decimals." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 34, + "name": "INVALID_SENDER", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1626:84:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 32, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1626:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53656e646572206973206e6f74207065726d697474656420746f20706572666f726d20746869732066756e6374696f6e2e", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1659:51:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4ffa3e3d08011fc170562a3d08e8750b05ecc5c344e09f4df43ed4eea4688153", + "typeString": "literal_string \"Sender is not permitted to perform this function.\"" + }, + "value": "Sender is not permitted to perform this function." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 37, + "name": "UNITS_MISSING", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1716:58:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 35, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1716:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e697473206d757374206e6f7420626520656d7074792e", + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1748:26:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3167a8b9326a8184e0ced4d846000fe29af4b52d9f88c79765c357d850670a90", + "typeString": "literal_string \"Units must not be empty.\"" + }, + "value": "Units must not be empty." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 40, + "name": "ZERO_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1780:69:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 38, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1780:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d7573742062652067726561746572207468616e207a65726f2e", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1812:37:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3da6978e12ad268e4eb66f4a79840b60e48f93e78540f7911187ddd7f0f6f2c7", + "typeString": "literal_string \"Quantity must be greater than zero.\"" + }, + "value": "Quantity must be greater than zero." + }, + "visibility": "internal" + }, + { + "canonicalName": "SetToken.Component", + "id": 45, + "members": [ + { + "constant": false, + "id": 42, + "name": "address_", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "1928:16:0", + "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { - "id": 82, + "id": 41, "name": "address", "nodeType": "ElementaryTypeName", - "src": "831:7:1", + "src": "1928:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -856,11 +963,11 @@ }, { "constant": false, - "id": 85, + "id": 44, "name": "unit_", "nodeType": "VariableDeclaration", - "scope": 86, - "src": "857:10:1", + "scope": 45, + "src": "1954:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -868,10 +975,10 @@ "typeString": "uint256" }, "typeName": { - "id": 84, + "id": 43, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "857:4:1", + "src": "1954:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -883,17 +990,17 @@ ], "name": "Component", "nodeType": "StructDefinition", - "scope": 980, - "src": "804:70:1", + "scope": 498, + "src": "1901:70:0", "visibility": "public" }, { "constant": false, - "id": 88, + "id": 47, "name": "naturalUnit", "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1023:23:1", + "scope": 498, + "src": "2030:23:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -901,10 +1008,10 @@ "typeString": "uint256" }, "typeName": { - "id": 87, + "id": 46, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1023:4:1", + "src": "2030:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -915,36 +1022,36 @@ }, { "constant": false, - "id": 91, + "id": 50, "name": "components", "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1052:29:1", + "scope": 498, + "src": "2059:29:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", "typeString": "struct SetToken.Component[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 89, + "id": 48, "name": "Component", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 86, - "src": "1052:9:1", + "referencedDeclaration": 45, + "src": "2059:9:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage_ptr", + "typeIdentifier": "t_struct$_Component_$45_storage_ptr", "typeString": "struct SetToken.Component" } }, - "id": 90, + "id": 49, "length": null, "nodeType": "ArrayTypeName", - "src": "1052:11:1", + "src": "2059:11:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage_ptr", "typeString": "struct SetToken.Component[]" } }, @@ -953,11 +1060,11 @@ }, { "constant": false, - "id": 95, + "id": 54, "name": "isComponent", "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1135:45:1", + "scope": 498, + "src": "2142:45:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -965,28 +1072,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 94, + "id": 53, "keyType": { - "id": 92, + "id": 51, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1143:7:1", + "src": "2150:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1135:24:1", + "src": "2142:24:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 93, + "id": 52, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1154:4:1", + "src": "2161:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -998,238 +1105,35 @@ }, { "constant": false, - "id": 101, - "name": "unredeemedBalances", + "id": 56, + "name": "factory", "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1250:69:1", + "scope": 498, + "src": "2259:22:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 100, - "keyType": { - "id": 96, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1258:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "1250:41:1", + "id": 55, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2259:7:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - }, - "valueType": { - "id": 99, - "keyType": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1274:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1266:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 98, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1285:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": "////////////////////////////////////////////////////////\n Events\n////////////////////////////////////////////////////////", - "id": 109, - "name": "LogPartialRedemption", - "nodeType": "EventDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 103, - "indexed": true, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "1506:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 102, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1506:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 105, - "indexed": false, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "1539:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 104, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1539:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "indexed": false, - "name": "_excludedComponents", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "1563:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 106, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1563:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1496:100:1" - }, - "src": "1470:127:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 115, - "name": "LogRedeemExcluded", - "nodeType": "EventDefinition", - "parameters": { - "id": 114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 111, - "indexed": true, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "1636:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1636:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 113, - "indexed": false, - "name": "_components", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "1669:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 112, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1669:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1626:68:1" - }, - "src": "1603:92:1" + "visibility": "public" }, { "body": { - "id": 130, + "id": 71, "nodeType": "Block", - "src": "1892:274:1", + "src": "2353:128:0", "statements": [ { "expression": { @@ -1238,86 +1142,128 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 125, + "id": 66, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, - "id": 120, - "name": "balances", + "id": 59, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2074:8:1", + "referencedDeclaration": 1436, + "src": "2384:3:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 123, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 121, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "2083:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2384:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 62, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "2410:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 61, + "name": "ISetFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 574, + "src": "2398:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetFactory_$574_$", + "typeString": "type(contract ISetFactory)" + } + }, + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2398:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetFactory_$574", + "typeString": "contract ISetFactory" } }, - "id": 122, + "id": 64, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "sender", + "memberName": "core", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2083:10:1", + "referencedDeclaration": 556, + "src": "2398:25:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" } }, + "id": 65, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2074:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 124, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "2098:8:1", + "names": [], + "nodeType": "FunctionCall", + "src": "2398:27:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "2074:32:1", + "src": "2384:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1325,21 +1271,16 @@ }, { "argumentTypes": null, - "hexValue": "5573657220646f6573206e6f7420686176652073756666696369656e742062616c616e6365", - "id": 126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2108:39:1", - "subdenomination": null, + "id": 67, + "name": "INVALID_SENDER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "2439:14:0", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2904332a815b8920ad7c1c875f85d43154f982f515649fe19f339b58ac141e71", - "typeString": "literal_string \"User does not have sufficient balance\"" - }, - "value": "User does not have sufficient balance" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } ], "expression": { @@ -1349,25 +1290,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_2904332a815b8920ad7c1c875f85d43154f982f515649fe19f339b58ac141e71", - "typeString": "literal_string \"User does not have sufficient balance\"" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } ], - "id": 119, + "id": 58, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2818, - "src": "2066:7:1", + "referencedDeclaration": 1440, + "src": "2363:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 127, + "id": 68, "isConstant": false, "isLValue": false, "isPure": false, @@ -1375,68 +1316,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2066:82:1", + "src": "2363:100:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 128, + "id": 69, "nodeType": "ExpressionStatement", - "src": "2066:82:1" + "src": "2363:100:0" }, { - "id": 129, + "id": 70, "nodeType": "PlaceholderStatement", - "src": "2158:1:1" + "src": "2473:1:0" } ] }, - "documentation": "////////////////////////////////////////////////////////\n Modifiers\n////////////////////////////////////////////////////////", - "id": 131, - "name": "hasSufficientBalance", + "documentation": null, + "id": 72, + "name": "isCore", "nodeType": "ModifierDefinition", "parameters": { - "id": 118, + "id": 57, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 117, - "name": "quantity", - "nodeType": "VariableDeclaration", - "scope": 131, - "src": "1877:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1876:15:1" + "parameters": [], + "src": "2350:2:0" }, - "src": "1847:319:1", + "src": "2335:146:0", "visibility": "internal" }, { "body": { - "id": 152, + "id": 106, "nodeType": "Block", - "src": "2211:93:1", + "src": "2621:500:0", "statements": [ { "expression": { @@ -1445,90 +1359,81 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 140, + "id": 84, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 136, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "2229:3:1", + "expression": { + "argumentTypes": null, + "id": 81, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "2712:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2712:18:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": ">", "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2244:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2236:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 139, + "hexValue": "30", + "id": 83, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "typeConversion", + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2236:10:1", + "nodeType": "Literal", + "src": "2733:1:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "2229:17:1", + "src": "2712:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } + }, + { + "argumentTypes": null, + "id": 85, + "name": "COMPONENTS_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "2748:18:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } ], "expression": { @@ -1536,23 +1441,27 @@ { "typeIdentifier": "t_bool", "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } ], - "id": 135, + "id": 80, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "2221:7:1", + "referencedDeclaration": 1440, + "src": "2691:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 141, + "id": 86, "isConstant": false, "isLValue": false, "isPure": false, @@ -1560,15 +1469,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2221:26:1", + "src": "2691:85:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 142, + "id": 87, "nodeType": "ExpressionStatement", - "src": "2221:26:1" + "src": "2691:85:0" }, { "expression": { @@ -1577,85 +1486,81 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 148, + "id": 92, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 144, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "2265:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 146, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "2280:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2272:7:1", + "argumentTypes": null, + "id": 89, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 78, + "src": "2868:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } }, - "id": 147, + "id": 90, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2272:13:1", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2868:13:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "2265:20:1", + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2884:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2868:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } + }, + { + "argumentTypes": null, + "id": 93, + "name": "UNITS_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2899:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } ], "expression": { @@ -1663,23 +1568,27 @@ { "typeIdentifier": "t_bool", "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } ], - "id": 143, + "id": 88, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "2257:7:1", + "referencedDeclaration": 1440, + "src": "2847:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 149, + "id": 94, "isConstant": false, "isLValue": false, "isPure": false, @@ -1687,69 +1596,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2257:29:1", + "src": "2847:75:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 150, + "id": 95, "nodeType": "ExpressionStatement", - "src": "2257:29:1" + "src": "2847:75:0" }, - { - "id": 151, - "nodeType": "PlaceholderStatement", - "src": "2296:1:1" - } - ] - }, - "documentation": null, - "id": 153, - "name": "validDestination", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 133, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 153, - "src": "2198:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2198:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2197:13:1" - }, - "src": "2172:132:1", - "visibility": "internal" - }, - { - "body": { - "id": 167, - "nodeType": "Block", - "src": "2359:67:1", - "statements": [ { "expression": { "argumentTypes": null, @@ -1760,68 +1616,35 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 163, + "id": 101, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 158, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 155, - "src": "2378:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 159, - "name": "naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "2390:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2378:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "expression": { + "argumentTypes": null, + "id": 97, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "3019:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } - ], - "id": 161, + }, + "id": 98, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2377:25:1", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3019:18:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1831,27 +1654,51 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 162, + "expression": { + "argumentTypes": null, + "id": 99, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 78, + "src": "3041:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 100, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "2406:1:1", - "subdenomination": null, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3041:13:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "2377:30:1", + "src": "3019:35:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } + }, + { + "argumentTypes": null, + "id": 102, + "name": "COMPONENTS_INPUT_MISMATCH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "3068:25:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } ], "expression": { @@ -1859,23 +1706,27 @@ { "typeIdentifier": "t_bool", "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } ], - "id": 157, + "id": 96, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "2369:7:1", + "referencedDeclaration": 1440, + "src": "2998:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 164, + "id": 103, "isConstant": false, "isLValue": false, "isPure": false, @@ -1883,68 +1734,114 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2369:39:1", + "src": "2998:105:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 165, + "id": 104, "nodeType": "ExpressionStatement", - "src": "2369:39:1" + "src": "2998:105:0" }, { - "id": 166, + "id": 105, "nodeType": "PlaceholderStatement", - "src": "2418:1:1" + "src": "3113:1:0" } ] }, "documentation": null, - "id": 168, - "name": "isMultipleOfNaturalUnit", + "id": 107, + "name": "areValidCreationParameters", "nodeType": "ModifierDefinition", "parameters": { - "id": 156, + "id": 79, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 155, - "name": "_quantity", + "id": 75, + "name": "_components", "nodeType": "VariableDeclaration", - "scope": 168, - "src": "2343:14:1", + "scope": 107, + "src": "2583:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { - "id": 154, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2343:4:1", + "baseType": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2583:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 74, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2583:9:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 78, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "2606:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 76, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2606:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 77, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2606:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" } }, "value": null, "visibility": "internal" } ], - "src": "2342:16:1" + "src": "2582:38:0" }, - "src": "2310:116:1", + "src": "2547:574:0", "visibility": "internal" }, { "body": { - "id": 179, + "id": 119, "nodeType": "Block", - "src": "2467:50:1", + "src": "3163:99:0", "statements": [ { "expression": { @@ -1956,19 +1853,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 175, + "id": 114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 173, + "id": 112, "name": "_quantity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "2485:9:1", + "referencedDeclaration": 109, + "src": "3194:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1979,14 +1876,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 174, + "id": 113, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2497:1:1", + "src": "3206:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1994,11 +1891,24 @@ }, "value": "0" }, - "src": "2485:13:1", + "src": "3194:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } + }, + { + "argumentTypes": null, + "id": 115, + "name": "ZERO_QUANTITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "3221:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } ], "expression": { @@ -2006,23 +1916,27 @@ { "typeIdentifier": "t_bool", "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } ], - "id": 172, + "id": 111, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "2477:7:1", + "referencedDeclaration": 1440, + "src": "3173:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 176, + "id": 116, "isConstant": false, "isLValue": false, "isPure": false, @@ -2030,38 +1944,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2477:22:1", + "src": "3173:71:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 177, + "id": 117, "nodeType": "ExpressionStatement", - "src": "2477:22:1" + "src": "3173:71:0" }, { - "id": 178, + "id": 118, "nodeType": "PlaceholderStatement", - "src": "2509:1:1" + "src": "3254:1:0" } ] }, "documentation": null, - "id": 180, - "name": "isNonZero", + "id": 120, + "name": "isPositive", "nodeType": "ModifierDefinition", "parameters": { - "id": 171, + "id": 110, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 170, + "id": 109, "name": "_quantity", "nodeType": "VariableDeclaration", - "scope": 180, - "src": "2451:14:1", + "scope": 120, + "src": "3147:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2069,10 +1983,10 @@ "typeString": "uint256" }, "typeName": { - "id": 169, + "id": 108, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2451:4:1", + "src": "3147:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2082,16 +1996,16 @@ "visibility": "internal" } ], - "src": "2450:16:1" + "src": "3146:16:0" }, - "src": "2432:85:1", + "src": "3127:135:0", "visibility": "internal" }, { "body": { - "id": 288, + "id": 141, "nodeType": "Block", - "src": "2956:1554:1", + "src": "3309:93:0", "statements": [ { "expression": { @@ -2100,218 +2014,90 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 198, + "id": 129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 195, - "name": "_components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "3017:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3017:18:1", + "id": 125, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 122, + "src": "3327:3:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3038:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3017:22:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f6d706f6e656e74206c656e677468206e6565647320746f206265206772656174207468616e2030", - "id": 199, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3041:43:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_af1aa43cd68feb04e30fa2dd8b887d579b12f174db6d808f2f1d5cbe9bf93e0b", - "typeString": "literal_string \"Component length needs to be great than 0\"" - }, - "value": "Component length needs to be great than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_af1aa43cd68feb04e30fa2dd8b887d579b12f174db6d808f2f1d5cbe9bf93e0b", - "typeString": "literal_string \"Component length needs to be great than 0\"" - } - ], - "id": 194, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "3009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3009:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 201, - "nodeType": "ExpressionStatement", - "src": "3009:76:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3342:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], "expression": { - "argumentTypes": null, - "id": 203, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3147:6:1", + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3334:7:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3147:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 205, + "id": 128, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "3163:1:1", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "3334:10:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "src": "3147:17:1", + "src": "3327:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - { - "argumentTypes": null, - "hexValue": "556e697473206d7573742062652067726561746572207468616e2030", - "id": 207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3166:30:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b429d23a593cc6479d757e298b5d5b9ff3cd48fd1caec2e31fdab1a96db1faea", - "typeString": "literal_string \"Units must be greater than 0\"" - }, - "value": "Units must be greater than 0" } ], "expression": { @@ -2319,27 +2105,23 @@ { "typeIdentifier": "t_bool", "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b429d23a593cc6479d757e298b5d5b9ff3cd48fd1caec2e31fdab1a96db1faea", - "typeString": "literal_string \"Units must be greater than 0\"" } ], - "id": 202, + "id": 124, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2818, - "src": "3139:7:1", + "referencedDeclaration": 1439, + "src": "3319:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 208, + "id": 130, "isConstant": false, "isLValue": false, "isPure": false, @@ -2347,15 +2129,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3139:58:1", + "src": "3319:26:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 209, + "id": 131, "nodeType": "ExpressionStatement", - "src": "3139:58:1" + "src": "3319:26:0" }, { "expression": { @@ -2364,97 +2146,85 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 215, + "id": 137, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 211, - "name": "_components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "3283:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3283:18:1", + "id": 133, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 122, + "src": "3363:3:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", - "operator": "==", + "operator": "!=", "rightExpression": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 135, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1463, + "src": "3378:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SetToken_$498", + "typeString": "contract SetToken" + } + } + ], "expression": { - "argumentTypes": null, - "id": 213, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3305:6:1", + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SetToken_$498", + "typeString": "contract SetToken" + } + ], + "id": 134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3370:7:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 214, + "id": 136, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3305:13:1", + "names": [], + "nodeType": "FunctionCall", + "src": "3370:13:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "3283:35:1", + "src": "3363:20:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - { - "argumentTypes": null, - "hexValue": "436f6d706f6e656e7420616e6420756e6974206c656e67746873206d757374206265207468652073616d65", - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3320:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2f2af9c2d05d7e735e1a1200787dd612cb60f54ad5a23a8a586562adddc605d", - "typeString": "literal_string \"Component and unit lengths must be the same\"" - }, - "value": "Component and unit lengths must be the same" } ], "expression": { @@ -2462,27 +2232,23 @@ { "typeIdentifier": "t_bool", "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2f2af9c2d05d7e735e1a1200787dd612cb60f54ad5a23a8a586562adddc605d", - "typeString": "literal_string \"Component and unit lengths must be the same\"" } ], - "id": 210, + "id": 132, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2818, - "src": "3275:7:1", + "referencedDeclaration": 1439, + "src": "3355:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 217, + "id": 138, "isConstant": false, "isLValue": false, "isPure": false, @@ -2490,80 +2256,176 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3275:91:1", + "src": "3355:29:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 218, + "id": 139, "nodeType": "ExpressionStatement", - "src": "3275:91:1" + "src": "3355:29:0" }, { - "expression": { + "id": 140, + "nodeType": "PlaceholderStatement", + "src": "3394:1:0" + } + ] + }, + "documentation": null, + "id": 142, + "name": "isValidDestination", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 122, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 142, + "src": "3296:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 121, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3296:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3295:13:0" + }, + "src": "3268:134:0", + "visibility": "internal" + }, + { + "body": { + "id": 279, + "nodeType": "Block", + "src": "4363:1934:0", + "statements": [ + { + "assignments": [ + 165 + ], + "declarations": [ + { + "constant": false, + "id": 165, + "name": "minDecimals", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4498:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 164, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4498:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 167, + "initialValue": { "argumentTypes": null, - "id": 221, + "hexValue": "3138", + "id": 166, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 219, - "name": "naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "3377:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "Literal", + "src": "4518:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 220, - "name": "_naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "3391:12:1", + "value": "18" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4498:22:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 169, + "name": "currentDecimals", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4530:21:0", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3377:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 168, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4530:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" } - }, - "id": 222, - "nodeType": "ExpressionStatement", - "src": "3377:26:1" + ], + "id": 170, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "4530:21:0" }, { "body": { - "id": 286, + "id": 269, "nodeType": "Block", - "src": "3715:789:1", + "src": "4604:1402:0", "statements": [ { "assignments": [ - 235 + 183 ], "declarations": [ { "constant": false, - "id": 235, + "id": 183, "name": "currentUnits", "nodeType": "VariableDeclaration", - "scope": 289, - "src": "3811:17:1", + "scope": 280, + "src": "4700:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2571,10 +2433,10 @@ "typeString": "uint256" }, "typeName": { - "id": 234, + "id": 182, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3811:4:1", + "src": "4700:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2584,31 +2446,31 @@ "visibility": "internal" } ], - "id": 239, + "id": 187, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 236, + "id": 184, "name": "_units", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3831:6:1", + "referencedDeclaration": 150, + "src": "4720:6:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 238, + "id": 186, "indexExpression": { "argumentTypes": null, - "id": 237, + "id": 185, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "3838:1:1", + "referencedDeclaration": 172, + "src": "4727:1:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -2619,14 +2481,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3831:9:1", + "src": "4720:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3811:29:1" + "src": "4700:29:0" }, { "expression": { @@ -2638,19 +2500,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 243, + "id": 191, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 241, + "id": 189, "name": "currentUnits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "3862:12:1", + "referencedDeclaration": 183, + "src": "4768:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2661,14 +2523,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 242, + "id": 190, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3877:1:1", + "src": "4783:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2676,7 +2538,7 @@ }, "value": "0" }, - "src": "3862:16:1", + "src": "4768:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2684,21 +2546,16 @@ }, { "argumentTypes": null, - "hexValue": "556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a65726f", - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3880:36:1", - "subdenomination": null, + "id": 192, + "name": "INVALID_COMPONENT_UNIT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "4802:22:0", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1fcd00b39e3151e09a562622d3a6b29cabbd51954c8dfac36c49958a5358ead2", - "typeString": "literal_string \"Unit declarations must be non-zero\"" - }, - "value": "Unit declarations must be non-zero" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } ], "expression": { @@ -2708,25 +2565,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_1fcd00b39e3151e09a562622d3a6b29cabbd51954c8dfac36c49958a5358ead2", - "typeString": "literal_string \"Unit declarations must be non-zero\"" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } ], - "id": 240, + "id": 188, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2818, - "src": "3854:7:1", + "referencedDeclaration": 1440, + "src": "4743:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 245, + "id": 193, "isConstant": false, "isLValue": false, "isPure": false, @@ -2734,28 +2591,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3854:63:1", + "src": "4743:95:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 246, + "id": 194, "nodeType": "ExpressionStatement", - "src": "3854:63:1" + "src": "4743:95:0" }, { "assignments": [ - 248 + 196 ], "declarations": [ { "constant": false, - "id": 248, + "id": 196, "name": "currentComponent", "nodeType": "VariableDeclaration", - "scope": 289, - "src": "3985:24:1", + "scope": 280, + "src": "4906:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2763,10 +2620,10 @@ "typeString": "address" }, "typeName": { - "id": 247, + "id": 195, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3985:7:1", + "src": "4906:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2776,31 +2633,31 @@ "visibility": "internal" } ], - "id": 252, + "id": 200, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 249, + "id": 197, "name": "_components", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "4012:11:1", + "referencedDeclaration": 147, + "src": "4933:11:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 251, + "id": 199, "indexExpression": { "argumentTypes": null, - "id": 250, + "id": 198, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "4024:1:1", + "referencedDeclaration": 172, + "src": "4945:1:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -2811,14 +2668,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4012:14:1", + "src": "4933:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "3985:41:1" + "src": "4906:41:0" }, { "expression": { @@ -2830,19 +2687,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 258, + "id": 206, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 254, + "id": 202, "name": "currentComponent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4048:16:1", + "referencedDeclaration": 196, + "src": "4986:16:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2856,14 +2713,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 256, + "id": 204, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4076:1:1", + "src": "5014:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2879,20 +2736,20 @@ "typeString": "int_const 0" } ], - "id": 255, + "id": 203, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4068:7:1", + "src": "5006:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 257, + "id": 205, "isConstant": false, "isLValue": false, "isPure": true, @@ -2900,13 +2757,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4068:10:1", + "src": "5006:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4048:30:1", + "src": "4986:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2914,21 +2771,16 @@ }, { "argumentTypes": null, - "hexValue": "436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f2061646472657373", - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4080:39:1", - "subdenomination": null, + "id": 207, + "name": "INVALID_COMPONENT_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "5034:25:0", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_969b60f773ceaa56d354520346cdb4706d2cd4c28ed781f9ff7cf04e7b476634", - "typeString": "literal_string \"Components must have non-zero address\"" - }, - "value": "Components must have non-zero address" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } ], "expression": { @@ -2938,25 +2790,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_969b60f773ceaa56d354520346cdb4706d2cd4c28ed781f9ff7cf04e7b476634", - "typeString": "literal_string \"Components must have non-zero address\"" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } ], - "id": 253, + "id": 201, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2818, - "src": "4040:7:1", + "referencedDeclaration": 1440, + "src": "4961:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 260, + "id": 208, "isConstant": false, "isLValue": false, "isPure": false, @@ -2964,108 +2816,148 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4040:80:1", + "src": "4961:112:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 261, + "id": 209, "nodeType": "ExpressionStatement", - "src": "4040:80:1" + "src": "4961:112:0" }, { - "expression": { + "condition": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4205:35:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 264, - "name": "currentComponent", + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "646563696d616c732829", + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5211:12:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", + "typeString": "literal_string \"decimals()\"" + }, + "value": "decimals()" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", + "typeString": "literal_string \"decimals()\"" + } + ], + "id": 213, + "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4223:16:1", + "referencedDeclaration": 1430, + "src": "5201:9:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } - ], - "id": 263, - "name": "tokenIsComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "4206:16:1", + }, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5201:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - }, - "id": 265, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 212, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4206:34:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "5194:6:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": "bytes4" }, + "id": 216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5194:31:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } ], - "id": 262, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "4197:7:1", + "expression": { + "argumentTypes": null, + "id": 210, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5172:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5172:21:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_barecall_payable$__$returns$_t_bool_$", + "typeString": "function () payable returns (bool)" } }, - "id": 267, + "id": 217, "isConstant": false, "isLValue": false, "isPure": false, @@ -3073,998 +2965,588 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4197:44:1", + "src": "5172:54:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 268, - "nodeType": "ExpressionStatement", - "src": "4197:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 269, - "name": "isComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "4308:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 273, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { + "falseBody": { + "id": 240, + "nodeType": "Block", + "src": "5420:185:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "argumentTypes": null, - "id": 271, - "name": "currentComponent", + "id": 236, + "name": "minDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4330:16:1", + "referencedDeclaration": 165, + "src": "5575:11:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } - ], - "id": 270, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "4320:9:1", + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5589:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5575:15:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "id": 272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4320:27:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4308:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "id": 239, + "nodeType": "ExpressionStatement", + "src": "5575:15:0" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4351:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4308:47:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + ] }, - "id": 276, - "nodeType": "ExpressionStatement", - "src": "4308:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "id": 241, + "nodeType": "IfStatement", + "src": "5168:437:0", + "trueBody": { + "id": 235, + "nodeType": "Block", + "src": "5228:186:0", + "statements": [ { - "argumentTypes": null, - "arguments": [ - { + "expression": { + "argumentTypes": null, + "id": 224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "argumentTypes": null, - "id": 281, - "name": "currentComponent", + "id": 218, + "name": "currentDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4424:16:1", + "referencedDeclaration": 169, + "src": "5246:15:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "id": 282, - "name": "currentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4465:12:1", + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 220, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5278:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 219, + "name": "DetailedERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "5264:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$1099_$", + "typeString": "type(contract DetailedERC20)" + } + }, + "id": 221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5264:31:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DetailedERC20_$1099", + "typeString": "contract DetailedERC20" + } + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 1076, + "src": "5264:40:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5264:42:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } - } - ], - "expression": { - "argumentTypes": null, - "id": 280, - "name": "Component", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "4386:9:1", + }, + "src": "5246:60:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Component_$86_storage_ptr_$", - "typeString": "type(struct SetToken.Component storage pointer)" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "id": 283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "address_", - "unit_" - ], - "nodeType": "FunctionCall", - "src": "4386:106:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_memory", - "typeString": "struct SetToken.Component memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Component_$86_memory", - "typeString": "struct SetToken.Component memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 277, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "4370:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } + "id": 225, + "nodeType": "ExpressionStatement", + "src": "5246:60:0" }, - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4370:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Component_$86_storage_$returns$_t_uint256_$", - "typeString": "function (struct SetToken.Component storage ref) returns (uint256)" - } - }, - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4370:123:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 285, - "nodeType": "ExpressionStatement", - "src": "4370:123:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 227, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "3691:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 228, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3695:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + { + "expression": { + "argumentTypes": null, + "id": 233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 226, + "name": "minDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5324:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 227, + "name": "currentDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5338:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 228, + "name": "minDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5356:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "5338:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 231, + "name": "minDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5388:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "5338:61:0", + "trueExpression": { + "argumentTypes": null, + "id": 230, + "name": "currentDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5370:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "5324:75:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 234, + "nodeType": "ExpressionStatement", + "src": "5324:75:0" + } + ] } }, - "id": 229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3695:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3691:17:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 287, - "initializationExpression": { - "assignments": [ - 224 - ], - "declarations": [ { - "constant": false, - "id": 224, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "3677:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 223, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3677:6:1", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5689:35:0", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 244, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5707:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 243, + "name": "tokenIsComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "5690:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5690:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 242, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1439, + "src": "5681:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5681:44:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 226, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3688:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "id": 248, + "nodeType": "ExpressionStatement", + "src": "5681:44:0" }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3677:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3710:3:1", - "subExpression": { - "argumentTypes": null, - "id": 231, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "3710:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 233, - "nodeType": "ExpressionStatement", - "src": "3710:3:1" - }, - "nodeType": "ForStatement", - "src": "3672:832:1" - } - ] - }, - "documentation": "@dev Constructor Function for the issuance of an {Set} token\n@param _components address[] A list of component address which you want to include\n@param _units uint[] A list of quantities in gWei of each component (corresponds to the {Set} of _components)", - "id": 289, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 191, - "name": "_naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "2927:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 192, - "modifierName": { - "argumentTypes": null, - "id": 190, - "name": "isNonZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "2917:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2917:23:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 189, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 183, - "name": "_components", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2831:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 181, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2831:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 182, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2831:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 186, - "name": "_units", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2862:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 184, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2862:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 185, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2862:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 188, - "name": "_naturalUnit", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2885:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 187, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2885:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2821:87:1" - }, - "payable": false, - "returnParameters": { - "id": 193, - "nodeType": "ParameterList", - "parameters": [], - "src": "2956:0:1" - }, - "scope": 980, - "src": "2810:1700:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 387, - "nodeType": "Block", - "src": "5132:969:1", - "statements": [ - { - "body": { - "id": 373, - "nodeType": "Block", - "src": "5355:642:1", - "statements": [ { - "assignments": [ - 314 - ], - "declarations": [ - { - "constant": false, - "id": 314, - "name": "currentComponent", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5369:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 313, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 319, - "initialValue": { + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 315, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "5396:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 317, - "indexExpression": { - "argumentTypes": null, - "id": 316, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5407:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5396:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 318, + "id": 258, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "5396:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5369:49:1" - }, - { - "assignments": [ - 321 - ], - "declarations": [ - { - "constant": false, - "id": 321, - "name": "currentUnits", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5432:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 320, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5432:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 326, - "initialValue": { - "argumentTypes": null, - "expression": { + "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 322, - "name": "components", + "id": 249, + "name": "isComponent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "5452:10:1", + "referencedDeclaration": 54, + "src": "5792:11:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" } }, - "id": 324, + "id": 256, "indexExpression": { - "argumentTypes": null, - "id": 323, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5463:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5452:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 325, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "5452:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5432:39:1" - }, - { - "assignments": [ - 328 - ], - "declarations": [ - { - "constant": false, - "id": 328, - "name": "preTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5486:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 327, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5486:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 335, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 333, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "5546:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 330, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "5518:16:1", + "arguments": [ + { + "argumentTypes": null, + "id": 253, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5831:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 251, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "5814:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5814:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:34:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } ], - "id": 329, - "name": "ERC20", + "id": 250, + "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "5512:5:1", + "referencedDeclaration": 1430, + "src": "5804:9:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "id": 331, + "id": 255, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5512:23:1", + "src": "5804:45:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 332, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "5512:33:1", + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5792:58:0", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5512:39:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5486:65:1" - }, - { - "assignments": [ - 337 - ], - "declarations": [ - { - "constant": false, - "id": 337, - "name": "transferValue", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5566:18:1", - "stateVariable": false, - "storageLocation": "default", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5853:4:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 336, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5566:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 342, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 339, - "name": "currentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "5610:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_bool", + "typeString": "bool" }, - { - "argumentTypes": null, - "id": 340, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "5624:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 338, - "name": "calculateTransferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "5587:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } + "value": "true" }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5587:47:1", + "src": "5792:65:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5566:68:1" + "id": 259, + "nodeType": "ExpressionStatement", + "src": "5792:65:0" }, { "expression": { @@ -4075,54 +3557,25 @@ "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 348, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "5693:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5693:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 350, - "name": "this", + "id": 264, + "name": "currentComponent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "5705:4:1", + "referencedDeclaration": 196, + "src": "5926:16:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, - "id": 351, - "name": "transferValue", + "id": 265, + "name": "currentUnits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 337, - "src": "5711:13:1", + "referencedDeclaration": 183, + "src": "5967:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4130,258 +3583,71 @@ } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 345, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "5662:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 344, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "5656:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5656:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 2396, - "src": "5656:36:1", + "argumentTypes": null, + "id": 263, + "name": "Component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45, + "src": "5888:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" + "typeIdentifier": "t_type$_t_struct$_Component_$45_storage_ptr_$", + "typeString": "type(struct SetToken.Component storage pointer)" } }, - "id": 352, + "id": 266, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "structConstructorCall", "lValueRequested": false, - "names": [], + "names": [ + "address_", + "unit_" + ], "nodeType": "FunctionCall", - "src": "5656:69:1", + "src": "5888:106:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Component_$45_memory", + "typeString": "struct SetToken.Component memory" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Component_$45_memory", + "typeString": "struct SetToken.Component memory" } ], - "id": 343, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "5648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5648:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 354, - "nodeType": "ExpressionStatement", - "src": "5648:78:1" - }, - { - "assignments": [ - 356 - ], - "declarations": [ - { - "constant": false, - "id": 356, - "name": "postTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5838:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 355, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5838:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 363, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { + "expression": { "argumentTypes": null, - "id": 361, - "name": "this", + "id": 260, + "name": "components", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "5899:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 358, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "5871:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 357, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "5865:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5865:23:1", + "referencedDeclaration": 50, + "src": "5872:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" } }, - "id": 360, + "id": 262, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "balanceOf", + "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "5865:33:1", + "referencedDeclaration": null, + "src": "5872:15:0", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Component_$45_storage_$returns$_t_uint256_$", + "typeString": "function (struct SetToken.Component storage ref) returns (uint256)" } }, - "id": 362, + "id": 267, "isConstant": false, "isLValue": false, "isPure": false, @@ -4389,229 +3655,92 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5865:39:1", + "src": "5872:123:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5838:66:1" + "id": 268, + "nodeType": "ExpressionStatement", + "src": "5872:123:0" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 175, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 172, + "src": "4580:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 176, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 150, + "src": "4584:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 367, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 337, - "src": "5948:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 365, - "name": "preTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "5925:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "5925:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5925:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 369, - "name": "postTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "5966:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5925:60:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 364, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "5918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5918:68:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 372, - "nodeType": "ExpressionStatement", - "src": "5918:68:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 306, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5327:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 307, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "5331:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 308, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5331:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5327:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 374, - "initializationExpression": { - "assignments": [ - 303 - ], - "declarations": [ + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4584:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4580:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 270, + "initializationExpression": { + "assignments": [ + 172 + ], + "declarations": [ { "constant": false, - "id": 303, + "id": 172, "name": "i", "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5313:8:1", + "scope": 280, + "src": "4566:8:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4619,10 +3748,10 @@ "typeString": "uint16" }, "typeName": { - "id": 302, + "id": 171, "name": "uint16", "nodeType": "ElementaryTypeName", - "src": "5313:6:1", + "src": "4566:6:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -4632,18 +3761,18 @@ "visibility": "internal" } ], - "id": 305, + "id": 174, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 304, + "id": 173, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5324:1:1", + "src": "4577:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4652,12 +3781,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "5313:12:1" + "src": "4566:12:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 311, + "id": 180, "isConstant": false, "isLValue": false, "isPure": false, @@ -4665,15 +3794,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5350:3:1", + "src": "4599:3:0", "subExpression": { "argumentTypes": null, - "id": 310, + "id": 179, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5350:1:1", + "referencedDeclaration": 172, + "src": "4599:1:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -4684,266 +3813,289 @@ "typeString": "uint16" } }, - "id": 312, + "id": 181, "nodeType": "ExpressionStatement", - "src": "5350:3:1" + "src": "4599:3:0" }, "nodeType": "ForStatement", - "src": "5308:689:1" + "src": "4561:1445:0" }, { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 376, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "6012:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 375, - "name": "mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "6007:4:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 377, + "id": 273, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6007:15:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 378, - "nodeType": "ExpressionStatement", - "src": "6007:15:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 380, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "6050:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6050:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 382, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "6062:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "leftHandSide": { + "argumentTypes": null, + "id": 271, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "6236:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 379, - "name": "LogIssuance", + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 272, + "name": "_factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1614, - "src": "6038:11:1", + "referencedDeclaration": 144, + "src": "6246:8:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6038:34:1", + "src": "6236:18:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 384, - "nodeType": "EmitStatement", - "src": "6033:39:1" + "id": 274, + "nodeType": "ExpressionStatement", + "src": "6236:18:0" }, { "expression": { "argumentTypes": null, - "hexValue": "74727565", - "id": 385, + "id": 277, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "bool", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "6090:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 301, - "id": 386, - "nodeType": "Return", - "src": "6083:11:1" - } - ] - }, - "documentation": "@dev Function to convert component into {Set} Tokens\n * Please note that the user's ERC20 component must be approved by\ntheir ERC20 contract to transfer their components to this contract.\n * @param _quantity uint The quantity of Sets desired to issue in Wei as a multiple of naturalUnit", - "id": 388, + "leftHandSide": { + "argumentTypes": null, + "id": 275, + "name": "naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "6264:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 276, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 152, + "src": "6278:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6264:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 278, + "nodeType": "ExpressionStatement", + "src": "6264:26:0" + } + ] + }, + "documentation": "Constructor function for {Set} token\n * As looping operations are expensive, checking for duplicates will be on the onus of the application developer\n * @param _components address[] A list of component address which you want to include\n@param _units uint[] A list of quantities in gWei of each component (corresponds to the {Set} of _components)\n@param _naturalUnit uint The minimum multiple of Sets that can be issued or redeeemed\n@param _name string The Set's name\n@param _symbol string the Set's symbol", + "id": 280, "implemented": true, - "isConstructor": false, + "isConstructor": true, "isDeclaredConst": false, "modifiers": [ { "arguments": [ { "argumentTypes": null, - "id": 294, - "name": "_quantity", + "id": 159, + "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "5062:9:1", + "referencedDeclaration": 154, + "src": "4244:5:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } - } - ], - "id": 295, - "modifierName": { - "argumentTypes": null, - "id": 293, - "name": "isMultipleOfNaturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "5038:23:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5038:34:1" - }, - { - "arguments": [ + }, { "argumentTypes": null, - "id": 297, - "name": "_quantity", + "id": 160, + "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "5091:9:1", + "referencedDeclaration": 156, + "src": "4251:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4260:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" } ], - "id": 298, + "id": 162, "modifierName": { "argumentTypes": null, - "id": 296, - "name": "isNonZero", + "id": 158, + "name": "DetailedERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "5081:9:1", + "referencedDeclaration": 1099, + "src": "4230:13:0", "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" + "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$1099_$", + "typeString": "type(contract DetailedERC20)" } }, "nodeType": "ModifierInvocation", - "src": "5081:20:1" + "src": "4230:33:0" } ], - "name": "issue", + "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 292, + "id": 157, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 291, - "name": "_quantity", + "id": 144, + "name": "_factory", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4057:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 143, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4057:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 147, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4083:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 145, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4083:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 146, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4083:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 150, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4114:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 148, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4114:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 149, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4114:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 152, + "name": "_naturalUnit", "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5014:14:1", + "scope": 280, + "src": "4137:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4951,10 +4103,10 @@ "typeString": "uint256" }, "typeName": { - "id": 290, + "id": 151, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5014:4:1", + "src": "4137:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4962,1188 +4114,886 @@ }, "value": null, "visibility": "internal" - } - ], - "src": "5013:16:1" - }, - "payable": false, - "returnParameters": { - "id": 301, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 300, - "name": "", + "id": 154, + "name": "_name", "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5126:4:1", + "scope": 280, + "src": "4164:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 299, - "name": "bool", + "id": 153, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "5126:4:1", + "src": "4164:6:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 156, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4186:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 155, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4186:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, "visibility": "internal" } ], - "src": "5125:6:1" + "src": "4047:159:0" + }, + "payable": false, + "returnParameters": { + "id": 163, + "nodeType": "ParameterList", + "parameters": [], + "src": "4363:0:0" }, - "scope": 980, - "src": "4999:1102:1", + "scope": 498, + "src": "4036:2261:0", "stateMutability": "nonpayable", - "superFunction": 1601, + "superFunction": null, "visibility": "public" }, { "body": { - "id": 488, + "id": 307, "nodeType": "Block", - "src": "6570:795:1", + "src": "6709:220:0", "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 405, - "name": "_quantity", + "id": 289, + "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6585:9:1", + "referencedDeclaration": 982, + "src": "6765:8:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + }, + "id": 291, + "indexExpression": { + "argumentTypes": null, + "id": 290, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "6774:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "id": 404, - "name": "burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "6580:4:1", + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6765:17:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6580:15:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 407, - "nodeType": "ExpressionStatement", - "src": "6580:15:1" - }, - { - "body": { - "id": 478, - "nodeType": "Block", - "src": "6653:632:1", - "statements": [ - { - "assignments": [ - 420 - ], - "declarations": [ - { - "constant": false, - "id": 420, - "name": "currentComponent", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6667:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 419, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6667:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 425, - "initialValue": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 421, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "6694:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 423, - "indexExpression": { - "argumentTypes": null, - "id": 422, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6705:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6694:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 424, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "6694:22:1", + "id": 296, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 284, + "src": "6807:9:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6667:49:1" - }, - { - "assignments": [ - 427 - ], - "declarations": [ + } + ], + "expression": { + "argumentTypes": [ { - "constant": false, - "id": 427, - "name": "currentUnits", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6730:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 426, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6730:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 432, - "initialValue": { + "expression": { "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 428, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "6750:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 430, - "indexExpression": { - "argumentTypes": null, - "id": 429, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6761:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6750:13:1", + "id": 292, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "6785:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 294, + "indexExpression": { + "argumentTypes": null, + "id": 293, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "6794:7:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 431, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "6750:19:1", + "nodeType": "IndexAccess", + "src": "6785:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6730:39:1" + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 882, + "src": "6785:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - { - "assignments": [ - 434 - ], - "declarations": [ + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6785:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6765:52:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 299, + "nodeType": "ExpressionStatement", + "src": "6765:52:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 300, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "6880:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 303, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 284, + "src": "6912:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ { - "constant": false, - "id": 434, - "name": "preTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6784:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 433, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6784:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 441, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 439, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "6844:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 436, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "6816:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 435, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "6810:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6810:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "6810:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6810:39:1", + "id": 301, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "6895:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6784:65:1" + "id": 302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 882, + "src": "6895:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6895:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6880:42:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 306, + "nodeType": "ExpressionStatement", + "src": "6880:42:0" + } + ] + }, + "documentation": null, + "id": 308, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 287, + "modifierName": { + "argumentTypes": null, + "id": 286, + "name": "isCore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "6698:6:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6698:6:0" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 282, + "name": "_issuer", + "nodeType": "VariableDeclaration", + "scope": 308, + "src": "6627:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 281, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6627:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 284, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 308, + "src": "6652:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 283, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6652:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6617:55:0" + }, + "payable": false, + "returnParameters": { + "id": 288, + "nodeType": "ParameterList", + "parameters": [], + "src": "6709:0:0" + }, + "scope": 498, + "src": "6604:325:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 354, + "nodeType": "Block", + "src": "7316:219:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "assignments": [ - 443 - ], - "declarations": [ - { - "constant": false, - "id": 443, - "name": "transferValue", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6864:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6864:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 448, - "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 445, - "name": "currentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "6908:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 446, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6922:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "baseExpression": { + "argumentTypes": null, + "id": 321, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "7334:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 444, - "name": "calculateTransferValue", + }, + "id": 323, + "indexExpression": { + "argumentTypes": null, + "id": 322, + "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "6885:22:1", + "referencedDeclaration": 310, + "src": "7343:5:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 447, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6885:47:1", + "nodeType": "IndexAccess", + "src": "7334:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6864:68:1" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 454, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "6987:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6987:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 456, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "6999:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 451, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "6960:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 450, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "6954:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6954:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2437, - "src": "6954:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6954:59:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 324, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 312, + "src": "7353:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7334:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1439, + "src": "7326:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7326:37:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 327, + "nodeType": "ExpressionStatement", + "src": "7326:37:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 328, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "7374:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 330, + "indexExpression": { + "argumentTypes": null, + "id": 329, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "7383:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7374:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 335, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 312, + "src": "7412:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 331, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "7392:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 449, - "name": "require", + }, + "id": 333, + "indexExpression": { + "argumentTypes": null, + "id": 332, + "name": "_from", "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "6946:7:1", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "7401:5:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 458, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6946:68:1", + "nodeType": "IndexAccess", + "src": "7392:15:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 459, - "nodeType": "ExpressionStatement", - "src": "6946:68:1" + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 858, + "src": "7392:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - { - "assignments": [ - 461 - ], - "declarations": [ + "id": 336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7392:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7374:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 338, + "nodeType": "ExpressionStatement", + "src": "7374:48:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 339, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "7432:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 342, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 312, + "src": "7464:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ { - "constant": false, - "id": 461, - "name": "postTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "7126:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 460, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7126:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 468, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 466, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "7187:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 463, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "7159:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 462, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "7153:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7153:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 465, + "id": 340, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "7447:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 858, + "src": "7447:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7447:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7432:42:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 345, + "nodeType": "ExpressionStatement", + "src": "7432:42:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 347, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "7499:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 349, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "7153:33:1", + "nodeType": "Literal", + "src": "7514:1:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } - }, - "id": 467, + ], + "id": 348, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7153:39:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "7506:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "nodeType": "VariableDeclarationStatement", - "src": "7126:66:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 472, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "7236:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 470, - "name": "preTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "7213:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "7213:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7213:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 474, - "name": "postTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 461, - "src": "7254:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7213:60:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 469, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "7206:6:1", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7206:68:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 477, - "nodeType": "ExpressionStatement", - "src": "7206:68:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 412, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6625:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 413, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "6629:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 414, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6629:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6625:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 479, - "initializationExpression": { - "assignments": [ - 409 - ], - "declarations": [ - { - "constant": false, - "id": 409, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6611:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 408, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "6611:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 411, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6622:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "6611:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "6648:3:1", - "subExpression": { - "argumentTypes": null, - "id": 416, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6648:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 418, - "nodeType": "ExpressionStatement", - "src": "6648:3:1" - }, - "nodeType": "ForStatement", - "src": "6606:679:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 481, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "7314:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7314:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7506:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, { "argumentTypes": null, - "id": 483, + "id": 351, "name": "_quantity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "7326:9:1", + "referencedDeclaration": 312, + "src": "7518:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6152,6 +5002,10 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, { "typeIdentifier": "t_address", "typeString": "address" @@ -6161,18 +5015,18 @@ "typeString": "uint256" } ], - "id": 480, - "name": "LogRedemption", + "id": 346, + "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "7300:13:1", + "referencedDeclaration": 1173, + "src": "7490:8:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" } }, - "id": 484, + "id": 352, "isConstant": false, "isLValue": false, "isPure": false, @@ -6180,357 +5034,227 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7300:36:1", + "src": "7490:38:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 485, + "id": 353, "nodeType": "EmitStatement", - "src": "7295:41:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7354:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 403, - "id": 487, - "nodeType": "Return", - "src": "7347:11:1" + "src": "7485:43:0" } ] }, - "documentation": "@dev Function to convert {Set} Tokens into underlying components\n * The ERC20 components do not need to be approved to call this function\n * @param _quantity uint The quantity of Sets desired to redeem in Wei as a multiple of naturalUnit", - "id": 489, + "documentation": null, + "id": 355, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { - "arguments": [ - { - "argumentTypes": null, - "id": 393, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6463:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 394, - "modifierName": { - "argumentTypes": null, - "id": 392, - "name": "isMultipleOfNaturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "6439:23:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6439:34:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 396, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6503:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 397, + "arguments": null, + "id": 315, "modifierName": { "argumentTypes": null, - "id": 395, - "name": "hasSufficientBalance", + "id": 314, + "name": "isCore", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "6482:20:1", + "referencedDeclaration": 72, + "src": "7275:6:0", "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6482:31:1" + "src": "7275:6:0" }, { "arguments": [ { "argumentTypes": null, - "id": 399, + "id": 317, "name": "_quantity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6532:9:1", + "referencedDeclaration": 312, + "src": "7301:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 400, + "id": 318, "modifierName": { "argumentTypes": null, - "id": 398, - "name": "isNonZero", + "id": 316, + "name": "isPositive", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "6522:9:1", + "referencedDeclaration": 120, + "src": "7290:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "6522:20:1" + "src": "7290:21:0" } ], - "name": "redeem", + "name": "burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 391, + "id": 313, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 390, - "name": "_quantity", + "id": 310, + "name": "_from", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6400:14:1", + "scope": 355, + "src": "7206:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 389, - "name": "uint", + "id": 309, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "6400:4:1", + "src": "7206:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" - } - ], - "src": "6399:16:1" - }, - "payable": false, - "returnParameters": { - "id": 403, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 402, - "name": "", + "id": 312, + "name": "_quantity", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6560:4:1", + "scope": 355, + "src": "7229:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 401, - "name": "bool", + "id": 311, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6560:4:1", + "src": "7229:4:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "6559:6:1" + "src": "7196:53:0" + }, + "payable": false, + "returnParameters": { + "id": 319, + "nodeType": "ParameterList", + "parameters": [], + "src": "7316:0:0" }, - "scope": 980, - "src": "6384:981:1", + "scope": 498, + "src": "7183:352:0", "stateMutability": "nonpayable", - "superFunction": 1608, - "visibility": "public" + "superFunction": null, + "visibility": "external" }, { "body": { - "id": 618, + "id": 396, "nodeType": "Block", - "src": "8384:1290:1", + "src": "7670:249:0", "statements": [ { - "expression": { + "assignments": [ + 364 + ], + "declarations": [ + { + "constant": false, + "id": 364, + "name": "componentAddresses", + "nodeType": "VariableDeclaration", + "scope": 397, + "src": "7680:35:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 362, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7680:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 363, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7680:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 371, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { "argumentTypes": null, - "id": 508, - "name": "_componentsToExclude", + "id": 368, + "name": "components", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "8527:20:1", + "referencedDeclaration": 50, + "src": "7732:10:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8550:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8527:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4578636c7564656420636f6d706f6e656e7473206d757374206265206e6f6e2d7a65726f", - "id": 511, + "id": 369, "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "8553:38:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dc43b6bde85ab0739e4e8030797fca8fcafe90429a798e69497c4f2c6dea5097", - "typeString": "literal_string \"Excluded components must be non-zero\"" - }, - "value": "Excluded components must be non-zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dc43b6bde85ab0739e4e8030797fca8fcafe90429a798e69497c4f2c6dea5097", - "typeString": "literal_string \"Excluded components must be non-zero\"" - } - ], - "id": 507, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "8519:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8519:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "8519:73:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 515, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8608:9:1", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7732:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6544,18 +5268,39 @@ "typeString": "uint256" } ], - "id": 514, - "name": "burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "8603:4:1", + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "7718:13:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7722:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 366, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7722:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } } }, - "id": 516, + "id": 370, "isConstant": false, "isLValue": false, "isPure": false, @@ -6563,11784 +5308,636 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8603:15:1", + "src": "7718:32:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" } }, - "id": 517, - "nodeType": "ExpressionStatement", - "src": "8603:15:1" + "nodeType": "VariableDeclarationStatement", + "src": "7680:70:0" }, { "body": { - "id": 607, + "id": 392, "nodeType": "Block", - "src": "8676:889:1", + "src": "7807:71:0", "statements": [ { - "assignments": [ - 530 - ], - "declarations": [ - { - "constant": false, - "id": 530, - "name": "transferValue", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8690:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 529, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8690:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 538, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 532, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "8734:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 534, - "indexExpression": { - "argumentTypes": null, - "id": 533, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8745:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8734:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 535, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "8734:19:1", + "id": 383, + "name": "componentAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "7821:18:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - { + "id": 385, + "indexExpression": { "argumentTypes": null, - "id": 536, - "name": "_quantity", + "id": 384, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8755:9:1", + "referencedDeclaration": 373, + "src": "7840:1:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint16", + "typeString": "uint16" } - ], - "id": 531, - "name": "calculateTransferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "8711:22:1", + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7821:21:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8711:54:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8690:75:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 539, - "name": "_componentsToExclude", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "8947:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8978:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 542, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8983:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "8978:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } + "baseExpression": { + "argumentTypes": null, + "id": 386, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "7845:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8970:7:1", + }, + "id": 388, + "indexExpression": { + "argumentTypes": null, + "id": 387, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "7856:1:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": "bytes32" + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } }, - "id": 544, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8970:15:1", + "nodeType": "IndexAccess", + "src": "7845:13:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_struct$_Component_$45_storage", + "typeString": "struct SetToken.Component storage ref" } }, - "src": "8947:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 546, + "id": 389, "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "8988:1:1", - "subdenomination": null, + "memberName": "address_", + "nodeType": "MemberAccess", + "referencedDeclaration": 42, + "src": "7845:22:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "src": "8947:42:1", + "src": "7821:46:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "falseBody": { - "id": 605, - "nodeType": "Block", - "src": "9080:475:1", - "statements": [ - { - "assignments": [ - 559 - ], - "declarations": [ - { - "constant": false, - "id": 559, - "name": "preTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "9098:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 558, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9098:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 569, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 567, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "9164:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "9130:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 563, - "indexExpression": { - "argumentTypes": null, - "id": 562, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9141:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9130:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 564, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "9130:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 560, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "9124:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9124:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "9124:39:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9124:45:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9098:71:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 578, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "9235:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9235:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 580, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "9247:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 572, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "9202:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 574, - "indexExpression": { - "argumentTypes": null, - "id": 573, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9213:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9202:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 575, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "9202:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 571, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "9196:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9196:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2437, - "src": "9196:38:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9196:65:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 570, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "9188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9188:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 583, - "nodeType": "ExpressionStatement", - "src": "9188:74:1" - }, - { - "assignments": [ - 585 - ], - "declarations": [ - { - "constant": false, - "id": 585, - "name": "postTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "9382:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 584, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9382:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 595, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 593, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "9449:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "9415:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9426:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9415:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 590, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "9415:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 586, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "9409:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9409:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "9409:39:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9409:45:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9382:72:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 599, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "9502:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 597, - "name": "preTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 559, - "src": "9479:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "9479:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9479:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 601, - "name": "postTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "9520:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9479:60:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 596, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "9472:6:1", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9472:68:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 604, - "nodeType": "ExpressionStatement", - "src": "9472:68:1" - } - ] - }, - "id": 606, - "nodeType": "IfStatement", - "src": "8943:612:1", - "trueBody": { - "id": 557, - "nodeType": "Block", - "src": "8991:83:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 548, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "9009:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 552, - "indexExpression": { - "argumentTypes": null, - "id": 549, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9028:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9009:21:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 553, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 550, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "9031:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9031:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9009:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 554, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "9046:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9009:50:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 556, - "nodeType": "ExpressionStatement", - "src": "9009:50:1" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 522, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8648:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 523, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "8652:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 524, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8652:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8648:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 608, - "initializationExpression": { - "assignments": [ - 519 - ], - "declarations": [ - { - "constant": false, - "id": 519, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8634:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 518, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "8634:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 521, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 520, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8645:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8634:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8671:3:1", - "subExpression": { - "argumentTypes": null, - "id": 526, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8671:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 528, - "nodeType": "ExpressionStatement", - "src": "8671:3:1" - }, - "nodeType": "ForStatement", - "src": "8629:936:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 610, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "9601:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9601:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 612, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "9613:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 613, - "name": "_componentsToExclude", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "9624:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 609, - "name": "LogPartialRedemption", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "9580:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$", - "typeString": "function (address,uint256,bytes32)" - } - }, - "id": 614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9580:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 615, - "nodeType": "EmitStatement", - "src": "9575:70:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9663:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 506, - "id": 617, - "nodeType": "Return", - "src": "9656:11:1" - } - ] - }, - "documentation": "@dev Function to withdraw a portion of the component tokens of a Set\n * This function should be used in the event that a component token has been\npaused for transfer temporarily or permanently. This allows users a\nmethod to withdraw tokens in the event that one token has been frozen.\n * The mask can be computed by summing the powers of 2 of indexes of components to exclude.\nFor example, to exclude the 0th, 1st, and 3rd components, we pass in the hex of\n1 + 2 + 8 = 11, padded to length 32 i.e. 0x000000000000000000000000000000000000000000000000000000000000000b\n * @param _quantity uint The quantity of Sets desired to redeem in Wei\n@param _componentsToExclude bytes32 Hex of bitmask of components to exclude", - "id": 619, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 496, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8277:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 497, - "modifierName": { - "argumentTypes": null, - "id": 495, - "name": "isMultipleOfNaturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "8253:23:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8253:34:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 499, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8306:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 500, - "modifierName": { - "argumentTypes": null, - "id": 498, - "name": "isNonZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "8296:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8296:20:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 502, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8346:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 503, - "modifierName": { - "argumentTypes": null, - "id": 501, - "name": "hasSufficientBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "8325:20:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8325:31:1" - } - ], - "name": "partialRedeem", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 491, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8184:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8184:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 493, - "name": "_componentsToExclude", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8200:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 492, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8200:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8183:46:1" - }, - "payable": false, - "returnParameters": { - "id": 506, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 505, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8374:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 504, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8374:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8373:6:1" - }, - "scope": 980, - "src": "8161:1513:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 701, - "nodeType": "Block", - "src": "10288:693:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 627, - "name": "_componentsToRedeem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "10306:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10328:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10306:23:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f6d706f6e656e747320746f2072656465656d206d757374206265206e6f6e2d7a65726f", - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10331:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_580384d9ad1b31ff306fd95da0728bd78ff8cb2c4fbafcbb934965791a78d2b3", - "typeString": "literal_string \"Components to redeem must be non-zero\"" - }, - "value": "Components to redeem must be non-zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_580384d9ad1b31ff306fd95da0728bd78ff8cb2c4fbafcbb934965791a78d2b3", - "typeString": "literal_string \"Components to redeem must be non-zero\"" - } - ], - "id": 626, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "10298:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10298:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 632, - "nodeType": "ExpressionStatement", - "src": "10298:73:1" - }, - { - "body": { - "id": 691, - "nodeType": "Block", - "src": "10429:458:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 644, - "name": "_componentsToRedeem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "10447:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10477:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 647, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10482:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "10477:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 645, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10469:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": "bytes32" - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10469:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "10447:37:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10487:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10447:41:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 690, - "nodeType": "IfStatement", - "src": "10443:434:1", - "trueBody": { - "id": 689, - "nodeType": "Block", - "src": "10490:387:1", - "statements": [ - { - "assignments": [ - 654 - ], - "declarations": [ - { - "constant": false, - "id": 654, - "name": "currentComponent", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10508:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 653, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10508:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 659, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 655, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "10535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 657, - "indexExpression": { - "argumentTypes": null, - "id": 656, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10546:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10535:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 658, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "10535:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10508:49:1" - }, - { - "assignments": [ - 661 - ], - "declarations": [ - { - "constant": false, - "id": 661, - "name": "remainingBalance", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10575:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 660, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10575:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 668, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 662, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "10599:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 664, - "indexExpression": { - "argumentTypes": null, - "id": 663, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10618:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10599:21:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 667, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 665, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10621:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10621:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10599:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10575:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 669, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "10735:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 673, - "indexExpression": { - "argumentTypes": null, - "id": 670, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10754:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10735:21:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 674, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 671, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10757:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10757:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10735:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10771:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10735:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 677, - "nodeType": "ExpressionStatement", - "src": "10735:37:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 683, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10832:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10832:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 685, - "name": "remainingBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 661, - "src": "10844:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 680, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "10805:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 679, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "10799:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10799:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2437, - "src": "10799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10799:62:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 678, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "10791:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10791:71:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 688, - "nodeType": "ExpressionStatement", - "src": "10791:71:1" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 637, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10401:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 638, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "10405:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 639, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10405:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10401:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 692, - "initializationExpression": { - "assignments": [ - 634 - ], - "declarations": [ - { - "constant": false, - "id": 634, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10387:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 633, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "10387:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 636, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10398:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10387:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10424:3:1", - "subExpression": { - "argumentTypes": null, - "id": 641, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10424:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 643, - "nodeType": "ExpressionStatement", - "src": "10424:3:1" - }, - "nodeType": "ForStatement", - "src": "10382:505:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 694, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10920:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10920:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 696, - "name": "_componentsToRedeem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "10932:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 693, - "name": "LogRedeemExcluded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "10902:17:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32)" - } - }, - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10902:50:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 698, - "nodeType": "EmitStatement", - "src": "10897:55:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10970:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 625, - "id": 700, - "nodeType": "Return", - "src": "10963:11:1" - } - ] - }, - "documentation": "@dev Function to withdraw tokens that have previously been excluded when calling\nthe partialRedeem method\nThe mask can be computed by summing the powers of 2 of indexes of components to redeem.\nFor example, to redeem the 0th, 1st, and 3rd components, we pass in the hex of\n1 + 2 + 8 = 11, padded to length 32 i.e. 0x000000000000000000000000000000000000000000000000000000000000000b\n * @param _componentsToRedeem bytes32 Hex of bitmask of components to redeem", - "id": 702, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "redeemExcluded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 622, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "_componentsToRedeem", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10217:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 620, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10216:29:1" - }, - "payable": false, - "returnParameters": { - "id": 625, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 624, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10278:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 623, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10278:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10277:6:1" - }, - "scope": 980, - "src": "10193:788:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 743, - "nodeType": "Block", - "src": "11216:249:1", - "statements": [ - { - "assignments": [ - 711 - ], - "declarations": [ - { - "constant": false, - "id": 711, - "name": "componentAddresses", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "11226:35:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 709, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11226:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 710, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11226:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 718, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 715, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11278:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 716, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11278:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "11264:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 712, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 713, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11268:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11264:32:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11226:70:1" - }, - { - "body": { - "id": 739, - "nodeType": "Block", - "src": "11353:71:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 730, - "name": "componentAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 711, - "src": "11367:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 732, - "indexExpression": { - "argumentTypes": null, - "id": 731, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11386:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11367:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 733, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11391:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 735, - "indexExpression": { - "argumentTypes": null, - "id": 734, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11402:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11391:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 736, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "11391:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11367:46:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "11367:46:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 723, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11325:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 724, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11329:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 725, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11329:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11325:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 740, - "initializationExpression": { - "assignments": [ - 720 - ], - "declarations": [ - { - "constant": false, - "id": 720, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "11311:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 719, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "11311:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 722, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11322:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "11311:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "11348:3:1", - "subExpression": { - "argumentTypes": null, - "id": 727, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11348:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 729, - "nodeType": "ExpressionStatement", - "src": "11348:3:1" - }, - "nodeType": "ForStatement", - "src": "11306:118:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 741, - "name": "componentAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 711, - "src": "11440:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 707, - "id": 742, - "nodeType": "Return", - "src": "11433:25:1" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Getters\n////////////////////////////////////////////////////////", - "id": 744, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getComponents", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 703, - "nodeType": "ParameterList", - "parameters": [], - "src": "11153:2:1" - }, - "payable": false, - "returnParameters": { - "id": 707, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 706, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "11201:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11201:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 705, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11201:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11200:11:1" - }, - "scope": 980, - "src": "11131:334:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 785, - "nodeType": "Block", - "src": "11547:201:1", - "statements": [ - { - "assignments": [ - 753 - ], - "declarations": [ - { - "constant": false, - "id": 753, - "name": "units", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "11557:19:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11557:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 752, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11557:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 760, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 757, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11590:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 758, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11590:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 756, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "11579:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 754, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11583:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 755, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11583:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11579:29:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11557:51:1" - }, - { - "body": { - "id": 781, - "nodeType": "Block", - "src": "11665:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 772, - "name": "units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "11679:5:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 774, - "indexExpression": { - "argumentTypes": null, - "id": 773, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11685:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11679:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 775, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11690:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 777, - "indexExpression": { - "argumentTypes": null, - "id": 776, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11701:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11690:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 778, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "11690:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11679:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 780, - "nodeType": "ExpressionStatement", - "src": "11679:30:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 765, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11637:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 766, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11641:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 767, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11641:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11637:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 782, - "initializationExpression": { - "assignments": [ - 762 - ], - "declarations": [ - { - "constant": false, - "id": 762, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "11623:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 761, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "11623:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 764, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11634:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "11623:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "11660:3:1", - "subExpression": { - "argumentTypes": null, - "id": 769, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11660:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 771, - "nodeType": "ExpressionStatement", - "src": "11660:3:1" - }, - "nodeType": "ForStatement", - "src": "11618:102:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 783, - "name": "units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "11736:5:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "functionReturnParameters": 749, - "id": 784, - "nodeType": "Return", - "src": "11729:12:1" - } - ] - }, - "documentation": null, - "id": 786, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getUnits", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 745, - "nodeType": "ParameterList", - "parameters": [], - "src": "11488:2:1" - }, - "payable": false, - "returnParameters": { - "id": 749, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 748, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "11535:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 746, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11535:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 747, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11535:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11534:8:1" - }, - "scope": 980, - "src": "11471:277:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 835, - "nodeType": "Block", - "src": "11913:336:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 797, - "name": "_componentAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "11948:17:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 796, - "name": "tokenIsComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "11931:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11931:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 795, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "11923:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11923:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 800, - "nodeType": "ExpressionStatement", - "src": "11923:44:1" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 802, - "name": "componentIndex", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11978:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 801, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11978:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 803, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "11978:19:1" - }, - { - "body": { - "id": 827, - "nodeType": "Block", - "src": "12053:124:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 815, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "12071:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 817, - "indexExpression": { - "argumentTypes": null, - "id": 816, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12082:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12071:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 818, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "12071:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 819, - "name": "_componentAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "12097:17:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12071:43:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 826, - "nodeType": "IfStatement", - "src": "12067:100:1", - "trueBody": { - "id": 825, - "nodeType": "Block", - "src": "12116:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 821, - "name": "componentIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "12134:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 822, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12151:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12134:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 824, - "nodeType": "ExpressionStatement", - "src": "12134:18:1" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 808, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12025:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 809, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "12029:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 810, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12029:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12025:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 828, - "initializationExpression": { - "assignments": [ - 805 - ], - "declarations": [ - { - "constant": false, - "id": 805, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "12013:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 804, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12013:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 807, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12022:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12013:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12048:3:1", - "subExpression": { - "argumentTypes": null, - "id": 812, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12048:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 814, - "nodeType": "ExpressionStatement", - "src": "12048:3:1" - }, - "nodeType": "ForStatement", - "src": "12008:169:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 829, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "12194:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 831, - "indexExpression": { - "argumentTypes": null, - "id": 830, - "name": "componentIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "12213:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12194:34:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 833, - "indexExpression": { - "argumentTypes": null, - "id": 832, - "name": "_userAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 790, - "src": "12229:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12194:48:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 794, - "id": 834, - "nodeType": "Return", - "src": "12187:55:1" - } - ] - }, - "documentation": null, - "id": 836, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getUnredeemedBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 788, - "name": "_componentAddress", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11793:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 787, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11793:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 790, - "name": "_userAddress", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11828:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 789, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11828:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11783:71:1" - }, - "payable": false, - "returnParameters": { - "id": 794, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 793, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11900:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 792, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11900:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11899:9:1" - }, - "scope": 980, - "src": "11754:495:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 854, - "nodeType": "Block", - "src": "12549:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 850, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "12581:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 851, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "12586:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 848, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "12566:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_SetToken_$980", - "typeString": "contract super SetToken" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2324, - "src": "12566:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12566:27:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 847, - "id": 853, - "nodeType": "Return", - "src": "12559:34:1" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Transfer Updates\n////////////////////////////////////////////////////////", - "id": 855, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 843, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "12502:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 844, - "modifierName": { - "argumentTypes": null, - "id": 842, - "name": "validDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "12485:16:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12485:21:1" - } - ], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 841, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 838, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 855, - "src": "12435:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 837, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12435:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 840, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 855, - "src": "12456:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 839, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12456:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12425:51:1" - }, - "payable": false, - "returnParameters": { - "id": 847, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 846, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 855, - "src": "12539:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 845, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12539:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12538:6:1" - }, - "scope": 980, - "src": "12408:192:1", - "stateMutability": "nonpayable", - "superFunction": 2324, - "visibility": "public" - }, - { - "body": { - "id": 876, - "nodeType": "Block", - "src": "12774:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 871, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "12810:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 872, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "12817:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 873, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 861, - "src": "12822:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 869, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "12791:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_SetToken_$980", - "typeString": "contract super SetToken" - } - }, - "id": 870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 2652, - "src": "12791:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12791:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 868, - "id": 875, - "nodeType": "Return", - "src": "12784:45:1" - } - ] - }, - "documentation": null, - "id": 877, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 864, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "12727:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 865, - "modifierName": { - "argumentTypes": null, - "id": 863, - "name": "validDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "12710:16:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12710:21:1" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 862, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 857, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12637:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 856, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12637:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 859, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12660:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 858, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12660:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 861, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12681:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 860, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12681:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12627:74:1" - }, - "payable": false, - "returnParameters": { - "id": 868, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 867, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12764:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 866, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12764:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12763:6:1" - }, - "scope": 980, - "src": "12606:230:1", - "stateMutability": "nonpayable", - "superFunction": 2652, - "visibility": "public" - }, - { - "body": { - "id": 890, - "nodeType": "Block", - "src": "13116:61:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 884, - "name": "isComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "13133:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 888, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 886, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "13155:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 885, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "13145:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13145:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13133:37:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 883, - "id": 889, - "nodeType": "Return", - "src": "13126:44:1" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Private Function\n////////////////////////////////////////////////////////", - "id": 891, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "tokenIsComponent", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 880, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 879, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 891, - "src": "13031:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 878, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13031:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13021:37:1" - }, - "payable": false, - "returnParameters": { - "id": 883, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 891, - "src": "13106:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 881, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "13106:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13105:6:1" - }, - "scope": 980, - "src": "12996:181:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 908, - "nodeType": "Block", - "src": "13329:69:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 905, - "name": "componentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 893, - "src": "13376:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 902, - "name": "naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "13359:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 900, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "13346:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 2110, - "src": "13346:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13346:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 2096, - "src": "13346:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13346:45:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 899, - "id": 907, - "nodeType": "Return", - "src": "13339:52:1" - } - ] - }, - "documentation": null, - "id": 909, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "calculateTransferValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 896, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 893, - "name": "componentUnits", - "nodeType": "VariableDeclaration", - "scope": 909, - "src": "13224:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 892, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13224:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 895, - "name": "quantity", - "nodeType": "VariableDeclaration", - "scope": 909, - "src": "13253:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 894, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13253:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13214:58:1" - }, - "payable": false, - "returnParameters": { - "id": 899, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 898, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 909, - "src": "13319:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 897, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13319:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13318:6:1" - }, - "scope": 980, - "src": "13183:215:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 943, - "nodeType": "Block", - "src": "13468:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 914, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13478:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 917, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 915, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13487:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13487:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13478:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 923, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "13526:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 918, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13501:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 921, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13510:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13510:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13501:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "13501:24:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13501:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13478:57:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 926, - "nodeType": "ExpressionStatement", - "src": "13478:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 927, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13545:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 930, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "13577:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 928, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13560:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "13560:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13560:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13545:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 933, - "nodeType": "ExpressionStatement", - "src": "13545:41:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13618:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13610:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13610:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 938, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13622:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13622:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 940, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "13634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 934, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "13601:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13601:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 942, - "nodeType": "EmitStatement", - "src": "13596:47:1" - } - ] - }, - "documentation": null, - "id": 944, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 912, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 911, - "name": "quantity", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13427:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 910, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13427:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13417:29:1" - }, - "payable": false, - "returnParameters": { - "id": 913, - "nodeType": "ParameterList", - "parameters": [], - "src": "13468:0:1" - }, - "scope": 980, - "src": "13404:246:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 978, - "nodeType": "Block", - "src": "13720:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 949, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13730:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 952, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 950, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13739:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13739:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13730:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 958, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "13778:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 953, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13753:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 956, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 954, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13762:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13762:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13753:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "13753:24:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13753:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13730:57:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 961, - "nodeType": "ExpressionStatement", - "src": "13730:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 962, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13797:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 965, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "13829:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 963, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13812:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "13812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13812:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13797:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 968, - "nodeType": "ExpressionStatement", - "src": "13797:41:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 970, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13862:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13862:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13882:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 972, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13874:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13874:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 975, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "13886:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 969, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "13853:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13853:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 977, - "nodeType": "EmitStatement", - "src": "13848:47:1" - } - ] - }, - "documentation": null, - "id": 979, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 947, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 946, - "name": "quantity", - "nodeType": "VariableDeclaration", - "scope": 979, - "src": "13679:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 945, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13679:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13669:29:1" - }, - "payable": false, - "returnParameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:0:1" - }, - "scope": 980, - "src": "13656:246:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 981, - "src": "485:13419:1" - } - ], - "src": "0:13905:1" - }, - "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetToken.sol", - "exportedSymbols": { - "SetToken": [ - 980 - ] - }, - "id": 981, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 58, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "id": 59, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:1" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", - "id": 60, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2800, - "src": "60:67:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 61, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2415, - "src": "128:59:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "id": 62, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2372, - "src": "188:67:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", - "file": "zeppelin-solidity/contracts/math/SafeMath.sol", - "id": 63, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2156, - "src": "256:55:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/lib/AddressArrayUtils.sol", - "file": "../lib/AddressArrayUtils.sol", - "id": 64, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 1688, - "src": "312:38:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", - "file": "./interfaces/ISetToken.sol", - "id": 65, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 1622, - "src": "351:36:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 66, - "name": "StandardToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "510:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", - "typeString": "contract StandardToken" - } - }, - "id": 67, - "nodeType": "InheritanceSpecifier", - "src": "510:13:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "", - "id": 69, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "543:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 70, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "547:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 71, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "551:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "baseName": { - "contractScope": null, - "id": 68, - "name": "DetailedERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2371, - "src": "529:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$2371", - "typeString": "contract DetailedERC20" - } - }, - "id": 72, - "nodeType": "InheritanceSpecifier", - "src": "529:25:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 73, - "name": "ISetToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1621, - "src": "560:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "id": 74, - "nodeType": "InheritanceSpecifier", - "src": "560:9:1" - } - ], - "contractDependencies": [ - 1621, - 2337, - 2371, - 2414, - 2446, - 2799 - ], - "contractKind": "contract", - "documentation": "@title {Set}\n@author Felix Feng\n@dev Implementation of the basic {Set} token.", - "fullyImplemented": true, - "id": 980, - "linearizedBaseContracts": [ - 980, - 1621, - 2371, - 2799, - 2337, - 2414, - 2446 - ], - "name": "SetToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 77, - "libraryName": { - "contractScope": null, - "id": 75, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "582:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "576:27:1", - "typeName": { - "id": 76, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "595:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 81, - "libraryName": { - "contractScope": null, - "id": 78, - "name": "AddressArrayUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1687, - "src": "614:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressArrayUtils_$1687", - "typeString": "library AddressArrayUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "608:38:1", - "typeName": { - "baseType": { - "id": 79, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "636:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 80, - "length": null, - "nodeType": "ArrayTypeName", - "src": "636:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - { - "canonicalName": "SetToken.Component", - "id": 86, - "members": [ - { - "constant": false, - "id": 83, - "name": "address_", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "831:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 82, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "831:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 85, - "name": "unit_", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "857:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 84, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "857:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Component", - "nodeType": "StructDefinition", - "scope": 980, - "src": "804:70:1", - "visibility": "public" - }, - { - "constant": false, - "id": 88, - "name": "naturalUnit", - "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1023:23:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 87, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1023:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 91, - "name": "components", - "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1052:29:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 89, - "name": "Component", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 86, - "src": "1052:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage_ptr", - "typeString": "struct SetToken.Component" - } - }, - "id": 90, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1052:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage_ptr", - "typeString": "struct SetToken.Component[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 95, - "name": "isComponent", - "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1135:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 94, - "keyType": { - "id": 92, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1135:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 93, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1154:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 101, - "name": "unredeemedBalances", - "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1250:69:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - }, - "typeName": { - "id": 100, - "keyType": { - "id": 96, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1258:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "1250:41:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - }, - "valueType": { - "id": 99, - "keyType": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1274:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1266:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 98, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1285:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": "////////////////////////////////////////////////////////\n Events\n////////////////////////////////////////////////////////", - "id": 109, - "name": "LogPartialRedemption", - "nodeType": "EventDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 103, - "indexed": true, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "1506:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 102, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1506:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 105, - "indexed": false, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "1539:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 104, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1539:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "indexed": false, - "name": "_excludedComponents", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "1563:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 106, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1563:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1496:100:1" - }, - "src": "1470:127:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 115, - "name": "LogRedeemExcluded", - "nodeType": "EventDefinition", - "parameters": { - "id": 114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 111, - "indexed": true, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "1636:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1636:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 113, - "indexed": false, - "name": "_components", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "1669:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 112, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1669:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1626:68:1" - }, - "src": "1603:92:1" - }, - { - "body": { - "id": 130, - "nodeType": "Block", - "src": "1892:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 120, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2074:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 123, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 121, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "2083:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2083:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2074:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 124, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "2098:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2074:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5573657220646f6573206e6f7420686176652073756666696369656e742062616c616e6365", - "id": 126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2108:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2904332a815b8920ad7c1c875f85d43154f982f515649fe19f339b58ac141e71", - "typeString": "literal_string \"User does not have sufficient balance\"" - }, - "value": "User does not have sufficient balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2904332a815b8920ad7c1c875f85d43154f982f515649fe19f339b58ac141e71", - "typeString": "literal_string \"User does not have sufficient balance\"" - } - ], - "id": 119, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "2066:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2066:82:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 128, - "nodeType": "ExpressionStatement", - "src": "2066:82:1" - }, - { - "id": 129, - "nodeType": "PlaceholderStatement", - "src": "2158:1:1" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Modifiers\n////////////////////////////////////////////////////////", - "id": 131, - "name": "hasSufficientBalance", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 117, - "name": "quantity", - "nodeType": "VariableDeclaration", - "scope": 131, - "src": "1877:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1876:15:1" - }, - "src": "1847:319:1", - "visibility": "internal" - }, - { - "body": { - "id": 152, - "nodeType": "Block", - "src": "2211:93:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 136, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "2229:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2244:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2236:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2236:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2229:17:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 135, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2221:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2221:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 142, - "nodeType": "ExpressionStatement", - "src": "2221:26:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 144, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "2265:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 146, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "2280:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2272:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2272:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2265:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 143, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2257:29:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 150, - "nodeType": "ExpressionStatement", - "src": "2257:29:1" - }, - { - "id": 151, - "nodeType": "PlaceholderStatement", - "src": "2296:1:1" - } - ] - }, - "documentation": null, - "id": 153, - "name": "validDestination", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 133, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 153, - "src": "2198:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2198:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2197:13:1" - }, - "src": "2172:132:1", - "visibility": "internal" - }, - { - "body": { - "id": 167, - "nodeType": "Block", - "src": "2359:67:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 158, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 155, - "src": "2378:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 159, - "name": "naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "2390:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2378:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 161, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2377:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 162, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2406:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2377:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 157, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2369:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 165, - "nodeType": "ExpressionStatement", - "src": "2369:39:1" - }, - { - "id": 166, - "nodeType": "PlaceholderStatement", - "src": "2418:1:1" - } - ] - }, - "documentation": null, - "id": 168, - "name": "isMultipleOfNaturalUnit", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 155, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 168, - "src": "2343:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 154, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2343:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2342:16:1" - }, - "src": "2310:116:1", - "visibility": "internal" - }, - { - "body": { - "id": 179, - "nodeType": "Block", - "src": "2467:50:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 173, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "2485:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2497:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2485:13:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 172, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2477:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2477:22:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 177, - "nodeType": "ExpressionStatement", - "src": "2477:22:1" - }, - { - "id": 178, - "nodeType": "PlaceholderStatement", - "src": "2509:1:1" - } - ] - }, - "documentation": null, - "id": 180, - "name": "isNonZero", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 170, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 180, - "src": "2451:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 169, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2451:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2450:16:1" - }, - "src": "2432:85:1", - "visibility": "internal" - }, - { - "body": { - "id": 288, - "nodeType": "Block", - "src": "2956:1554:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 195, - "name": "_components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "3017:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3017:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3038:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3017:22:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f6d706f6e656e74206c656e677468206e6565647320746f206265206772656174207468616e2030", - "id": 199, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3041:43:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_af1aa43cd68feb04e30fa2dd8b887d579b12f174db6d808f2f1d5cbe9bf93e0b", - "typeString": "literal_string \"Component length needs to be great than 0\"" - }, - "value": "Component length needs to be great than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_af1aa43cd68feb04e30fa2dd8b887d579b12f174db6d808f2f1d5cbe9bf93e0b", - "typeString": "literal_string \"Component length needs to be great than 0\"" - } - ], - "id": 194, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "3009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3009:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 201, - "nodeType": "ExpressionStatement", - "src": "3009:76:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 203, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3147:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3147:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3163:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3147:17:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "556e697473206d7573742062652067726561746572207468616e2030", - "id": 207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3166:30:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b429d23a593cc6479d757e298b5d5b9ff3cd48fd1caec2e31fdab1a96db1faea", - "typeString": "literal_string \"Units must be greater than 0\"" - }, - "value": "Units must be greater than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b429d23a593cc6479d757e298b5d5b9ff3cd48fd1caec2e31fdab1a96db1faea", - "typeString": "literal_string \"Units must be greater than 0\"" - } - ], - "id": 202, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "3139:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3139:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 209, - "nodeType": "ExpressionStatement", - "src": "3139:58:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 211, - "name": "_components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "3283:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3283:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 213, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3305:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3305:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3283:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f6d706f6e656e7420616e6420756e6974206c656e67746873206d757374206265207468652073616d65", - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3320:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2f2af9c2d05d7e735e1a1200787dd612cb60f54ad5a23a8a586562adddc605d", - "typeString": "literal_string \"Component and unit lengths must be the same\"" - }, - "value": "Component and unit lengths must be the same" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2f2af9c2d05d7e735e1a1200787dd612cb60f54ad5a23a8a586562adddc605d", - "typeString": "literal_string \"Component and unit lengths must be the same\"" - } - ], - "id": 210, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "3275:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3275:91:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 218, - "nodeType": "ExpressionStatement", - "src": "3275:91:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 219, - "name": "naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "3377:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 220, - "name": "_naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "3391:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3377:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 222, - "nodeType": "ExpressionStatement", - "src": "3377:26:1" - }, - { - "body": { - "id": 286, - "nodeType": "Block", - "src": "3715:789:1", - "statements": [ - { - "assignments": [ - 235 - ], - "declarations": [ - { - "constant": false, - "id": 235, - "name": "currentUnits", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "3811:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 234, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3811:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 239, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 236, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 238, - "indexExpression": { - "argumentTypes": null, - "id": 237, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "3838:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3831:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3811:29:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 241, - "name": "currentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "3862:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3877:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3862:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a65726f", - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3880:36:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1fcd00b39e3151e09a562622d3a6b29cabbd51954c8dfac36c49958a5358ead2", - "typeString": "literal_string \"Unit declarations must be non-zero\"" - }, - "value": "Unit declarations must be non-zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1fcd00b39e3151e09a562622d3a6b29cabbd51954c8dfac36c49958a5358ead2", - "typeString": "literal_string \"Unit declarations must be non-zero\"" - } - ], - "id": 240, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "3854:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3854:63:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 246, - "nodeType": "ExpressionStatement", - "src": "3854:63:1" - }, - { - "assignments": [ - 248 - ], - "declarations": [ - { - "constant": false, - "id": 248, - "name": "currentComponent", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "3985:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 247, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3985:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 252, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 249, - "name": "_components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "4012:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 251, - "indexExpression": { - "argumentTypes": null, - "id": 250, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "4024:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4012:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3985:41:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 254, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4048:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4076:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4068:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 257, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4068:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4048:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f2061646472657373", - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4080:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_969b60f773ceaa56d354520346cdb4706d2cd4c28ed781f9ff7cf04e7b476634", - "typeString": "literal_string \"Components must have non-zero address\"" - }, - "value": "Components must have non-zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_969b60f773ceaa56d354520346cdb4706d2cd4c28ed781f9ff7cf04e7b476634", - "typeString": "literal_string \"Components must have non-zero address\"" - } - ], - "id": 253, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "4040:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4040:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 261, - "nodeType": "ExpressionStatement", - "src": "4040:80:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4205:35:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 264, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4223:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 263, - "name": "tokenIsComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "4206:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4206:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 262, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "4197:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4197:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 268, - "nodeType": "ExpressionStatement", - "src": "4197:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 269, - "name": "isComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "4308:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 273, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 271, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4330:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 270, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "4320:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4320:27:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4308:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4351:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4308:47:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 276, - "nodeType": "ExpressionStatement", - "src": "4308:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 281, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4424:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 282, - "name": "currentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4465:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 280, - "name": "Component", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "4386:9:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Component_$86_storage_ptr_$", - "typeString": "type(struct SetToken.Component storage pointer)" - } - }, - "id": 283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "address_", - "unit_" - ], - "nodeType": "FunctionCall", - "src": "4386:106:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_memory", - "typeString": "struct SetToken.Component memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Component_$86_memory", - "typeString": "struct SetToken.Component memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 277, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "4370:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4370:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Component_$86_storage_$returns$_t_uint256_$", - "typeString": "function (struct SetToken.Component storage ref) returns (uint256)" - } - }, - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4370:123:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 285, - "nodeType": "ExpressionStatement", - "src": "4370:123:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 227, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "3691:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 228, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3695:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3695:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3691:17:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 287, - "initializationExpression": { - "assignments": [ - 224 - ], - "declarations": [ - { - "constant": false, - "id": 224, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "3677:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 223, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3677:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 226, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3688:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3677:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3710:3:1", - "subExpression": { - "argumentTypes": null, - "id": 231, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "3710:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 233, - "nodeType": "ExpressionStatement", - "src": "3710:3:1" - }, - "nodeType": "ForStatement", - "src": "3672:832:1" - } - ] - }, - "documentation": "@dev Constructor Function for the issuance of an {Set} token\n@param _components address[] A list of component address which you want to include\n@param _units uint[] A list of quantities in gWei of each component (corresponds to the {Set} of _components)", - "id": 289, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 191, - "name": "_naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "2927:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 192, - "modifierName": { - "argumentTypes": null, - "id": 190, - "name": "isNonZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "2917:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2917:23:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 189, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 183, - "name": "_components", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2831:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 181, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2831:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 182, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2831:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 186, - "name": "_units", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2862:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 184, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2862:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 185, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2862:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 188, - "name": "_naturalUnit", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2885:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 187, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2885:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2821:87:1" - }, - "payable": false, - "returnParameters": { - "id": 193, - "nodeType": "ParameterList", - "parameters": [], - "src": "2956:0:1" - }, - "scope": 980, - "src": "2810:1700:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 387, - "nodeType": "Block", - "src": "5132:969:1", - "statements": [ - { - "body": { - "id": 373, - "nodeType": "Block", - "src": "5355:642:1", - "statements": [ - { - "assignments": [ - 314 - ], - "declarations": [ - { - "constant": false, - "id": 314, - "name": "currentComponent", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5369:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 313, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 319, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 315, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "5396:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 317, - "indexExpression": { - "argumentTypes": null, - "id": 316, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5407:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5396:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 318, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "5396:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5369:49:1" - }, - { - "assignments": [ - 321 - ], - "declarations": [ - { - "constant": false, - "id": 321, - "name": "currentUnits", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5432:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 320, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5432:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 326, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 322, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "5452:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 324, - "indexExpression": { - "argumentTypes": null, - "id": 323, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5463:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5452:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 325, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "5452:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5432:39:1" - }, - { - "assignments": [ - 328 - ], - "declarations": [ - { - "constant": false, - "id": 328, - "name": "preTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5486:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 327, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5486:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 335, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 333, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "5546:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 330, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "5518:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 329, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "5512:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5512:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "5512:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5512:39:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5486:65:1" - }, - { - "assignments": [ - 337 - ], - "declarations": [ - { - "constant": false, - "id": 337, - "name": "transferValue", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5566:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 336, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5566:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 342, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 339, - "name": "currentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "5610:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 340, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "5624:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 338, - "name": "calculateTransferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "5587:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5587:47:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5566:68:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 348, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "5693:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5693:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 350, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "5705:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - }, - { - "argumentTypes": null, - "id": 351, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 337, - "src": "5711:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 345, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "5662:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 344, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "5656:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5656:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 2396, - "src": "5656:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5656:69:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 343, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "5648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5648:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 354, - "nodeType": "ExpressionStatement", - "src": "5648:78:1" - }, - { - "assignments": [ - 356 - ], - "declarations": [ - { - "constant": false, - "id": 356, - "name": "postTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5838:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 355, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5838:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 363, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 361, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "5899:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 358, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "5871:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 357, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "5865:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5865:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "5865:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5865:39:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5838:66:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 367, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 337, - "src": "5948:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 365, - "name": "preTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "5925:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "5925:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5925:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 369, - "name": "postTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "5966:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5925:60:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 364, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "5918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5918:68:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 372, - "nodeType": "ExpressionStatement", - "src": "5918:68:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 306, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5327:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 307, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "5331:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 308, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5331:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5327:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 374, - "initializationExpression": { - "assignments": [ - 303 - ], - "declarations": [ - { - "constant": false, - "id": 303, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5313:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 302, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "5313:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 305, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5324:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5313:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5350:3:1", - "subExpression": { - "argumentTypes": null, - "id": 310, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5350:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 312, - "nodeType": "ExpressionStatement", - "src": "5350:3:1" - }, - "nodeType": "ForStatement", - "src": "5308:689:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 376, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "6012:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 375, - "name": "mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "6007:4:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6007:15:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 378, - "nodeType": "ExpressionStatement", - "src": "6007:15:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 380, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "6050:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6050:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 382, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "6062:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 379, - "name": "LogIssuance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1614, - "src": "6038:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6038:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 384, - "nodeType": "EmitStatement", - "src": "6033:39:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6090:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 301, - "id": 386, - "nodeType": "Return", - "src": "6083:11:1" - } - ] - }, - "documentation": "@dev Function to convert component into {Set} Tokens\n * Please note that the user's ERC20 component must be approved by\ntheir ERC20 contract to transfer their components to this contract.\n * @param _quantity uint The quantity of Sets desired to issue in Wei as a multiple of naturalUnit", - "id": 388, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 294, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "5062:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 295, - "modifierName": { - "argumentTypes": null, - "id": 293, - "name": "isMultipleOfNaturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "5038:23:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5038:34:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 297, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "5091:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 298, - "modifierName": { - "argumentTypes": null, - "id": 296, - "name": "isNonZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "5081:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5081:20:1" - } - ], - "name": "issue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 292, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 291, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5014:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 290, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5014:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5013:16:1" - }, - "payable": false, - "returnParameters": { - "id": 301, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 300, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5126:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 299, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5126:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5125:6:1" - }, - "scope": 980, - "src": "4999:1102:1", - "stateMutability": "nonpayable", - "superFunction": 1601, - "visibility": "public" - }, - { - "body": { - "id": 488, - "nodeType": "Block", - "src": "6570:795:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 405, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6585:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 404, - "name": "burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "6580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6580:15:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 407, - "nodeType": "ExpressionStatement", - "src": "6580:15:1" - }, - { - "body": { - "id": 478, - "nodeType": "Block", - "src": "6653:632:1", - "statements": [ - { - "assignments": [ - 420 - ], - "declarations": [ - { - "constant": false, - "id": 420, - "name": "currentComponent", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6667:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 419, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6667:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 425, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 421, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "6694:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 423, - "indexExpression": { - "argumentTypes": null, - "id": 422, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6705:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6694:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 424, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "6694:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6667:49:1" - }, - { - "assignments": [ - 427 - ], - "declarations": [ - { - "constant": false, - "id": 427, - "name": "currentUnits", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6730:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 426, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6730:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 432, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 428, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "6750:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 430, - "indexExpression": { - "argumentTypes": null, - "id": 429, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6761:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6750:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 431, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "6750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6730:39:1" + "id": 391, + "nodeType": "ExpressionStatement", + "src": "7821:46:0" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 376, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "7779:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 377, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "7783:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" + } }, + "id": 378, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7783:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7779:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 393, + "initializationExpression": { + "assignments": [ + 373 + ], + "declarations": [ { - "assignments": [ - 434 - ], - "declarations": [ - { - "constant": false, - "id": 434, - "name": "preTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6784:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 433, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6784:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 441, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 439, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "6844:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 436, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "6816:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 435, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "6810:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6810:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "6810:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6810:39:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "constant": false, + "id": 373, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 397, + "src": "7765:8:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" }, - "nodeType": "VariableDeclarationStatement", - "src": "6784:65:1" - }, - { - "assignments": [ - 443 - ], - "declarations": [ - { - "constant": false, - "id": 443, - "name": "transferValue", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6864:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6864:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 448, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 445, - "name": "currentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "6908:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 446, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6922:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 444, - "name": "calculateTransferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "6885:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6885:47:1", + "typeName": { + "id": 372, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "7765:6:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint16", + "typeString": "uint16" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6864:68:1" + "value": null, + "visibility": "internal" + } + ], + "id": 375, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7776:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 454, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "6987:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6987:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 456, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "6999:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 451, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "6960:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 450, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "6954:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6954:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2437, - "src": "6954:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6954:59:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 449, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "6946:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6946:68:1", + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7765:12:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7802:3:0", + "subExpression": { + "argumentTypes": null, + "id": 380, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "7802:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 382, + "nodeType": "ExpressionStatement", + "src": "7802:3:0" + }, + "nodeType": "ForStatement", + "src": "7760:118:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 394, + "name": "componentAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "7894:18:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 360, + "id": 395, + "nodeType": "Return", + "src": "7887:25:0" + } + ] + }, + "documentation": null, + "id": 397, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getComponents", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 356, + "nodeType": "ParameterList", + "parameters": [], + "src": "7608:2:0" + }, + "payable": false, + "returnParameters": { + "id": 360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 359, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 397, + "src": "7655:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 357, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7655:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 358, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7655:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7654:11:0" + }, + "scope": 498, + "src": "7586:333:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 438, + "nodeType": "Block", + "src": "8001:201:0", + "statements": [ + { + "assignments": [ + 406 + ], + "declarations": [ + { + "constant": false, + "id": 406, + "name": "units", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "8011:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 404, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8011:4:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 459, - "nodeType": "ExpressionStatement", - "src": "6946:68:1" + "id": 405, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8011:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } }, + "value": null, + "visibility": "internal" + } + ], + "id": 413, + "initialValue": { + "argumentTypes": null, + "arguments": [ { - "assignments": [ - 461 - ], - "declarations": [ - { - "constant": false, - "id": 461, - "name": "postTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "7126:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 460, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7126:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 468, - "initialValue": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 466, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "7187:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 463, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "7159:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 462, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "7153:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7153:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "7153:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7153:39:1", + "id": 410, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8044:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" + } + }, + "id": 411, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8044:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "8033:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8037:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "7126:66:1" - }, + "id": 408, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8037:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8033:29:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8011:51:0" + }, + { + "body": { + "id": 434, + "nodeType": "Block", + "src": "8119:55:0", + "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 472, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "7236:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 470, - "name": "preTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "7213:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "7213:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7213:37:1", + "id": 425, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 406, + "src": "8133:5:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 427, + "indexExpression": { + "argumentTypes": null, + "id": 426, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "8139:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8133:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 428, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8144:10:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "id": 430, + "indexExpression": { "argumentTypes": null, - "id": 474, - "name": "postTransferBalance", + "id": 429, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 461, - "src": "7254:19:1", + "referencedDeclaration": 415, + "src": "8155:1:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint16", + "typeString": "uint16" } }, - "src": "7213:60:1", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8144:13:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Component_$45_storage", + "typeString": "struct SetToken.Component storage ref" } - ], - "id": 469, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "7206:6:1", + }, + "id": 431, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "unit_", + "nodeType": "MemberAccess", + "referencedDeclaration": 44, + "src": "8144:19:0", "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7206:68:1", + "src": "8133:30:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 477, + "id": 433, "nodeType": "ExpressionStatement", - "src": "7206:68:1" + "src": "8133:30:0" } ] }, @@ -18350,19 +5947,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 415, + "id": 421, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 412, + "id": 418, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6625:1:1", + "referencedDeclaration": 415, + "src": "8091:1:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -18374,18 +5971,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 413, + "id": 419, "name": "components", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "6629:10:1", + "referencedDeclaration": 50, + "src": "8095:10:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", "typeString": "struct SetToken.Component storage ref[] storage ref" } }, - "id": 414, + "id": 420, "isConstant": false, "isLValue": true, "isPure": false, @@ -18393,31 +5990,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6629:17:1", + "src": "8095:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6625:21:1", + "src": "8091:21:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 479, + "id": 435, "initializationExpression": { "assignments": [ - 409 + 415 ], "declarations": [ { "constant": false, - "id": 409, + "id": 415, "name": "i", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6611:8:1", + "scope": 439, + "src": "8077:8:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18425,10 +6022,10 @@ "typeString": "uint16" }, "typeName": { - "id": 408, + "id": 414, "name": "uint16", "nodeType": "ElementaryTypeName", - "src": "6611:6:1", + "src": "8077:6:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -18438,18 +6035,18 @@ "visibility": "internal" } ], - "id": 411, + "id": 417, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 410, + "id": 416, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6622:1:1", + "src": "8088:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18458,12 +6055,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6611:12:1" + "src": "8077:12:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 417, + "id": 423, "isConstant": false, "isLValue": false, "isPure": false, @@ -18471,15 +6068,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6648:3:1", + "src": "8114:3:0", "subExpression": { "argumentTypes": null, - "id": 416, + "id": 422, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6648:1:1", + "referencedDeclaration": 415, + "src": "8114:1:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -18490,41 +6087,116 @@ "typeString": "uint16" } }, - "id": 418, + "id": 424, "nodeType": "ExpressionStatement", - "src": "6648:3:1" + "src": "8114:3:0" }, "nodeType": "ForStatement", - "src": "6606:679:1" + "src": "8072:102:0" }, { - "eventCall": { + "expression": { + "argumentTypes": null, + "id": 436, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 406, + "src": "8190:5:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 402, + "id": 437, + "nodeType": "Return", + "src": "8183:12:0" + } + ] + }, + "documentation": null, + "id": 439, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getUnits", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 398, + "nodeType": "ParameterList", + "parameters": [], + "src": "7942:2:0" + }, + "payable": false, + "returnParameters": { + "id": 402, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 401, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "7989:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 399, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7989:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 400, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7989:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7988:8:0" + }, + "scope": 498, + "src": "7925:277:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 457, + "nodeType": "Block", + "src": "8407:51:0", + "statements": [ + { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 481, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "7314:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7314:10:1", + "id": 453, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 441, + "src": "8439:3:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18532,12 +6204,12 @@ }, { "argumentTypes": null, - "id": 483, - "name": "_quantity", + "id": 454, + "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "7326:9:1", + "referencedDeclaration": 443, + "src": "8444:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18555,18 +6227,34 @@ "typeString": "uint256" } ], - "id": 480, - "name": "LogRedemption", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "7300:13:1", + "expression": { + "argumentTypes": null, + "id": 451, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "8424:5:0", + "typeDescriptions": { + "typeIdentifier": "t_super$_SetToken_$498", + "typeString": "contract super SetToken" + } + }, + "id": 452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1052, + "src": "8424:14:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" } }, - "id": 484, + "id": 455, "isConstant": false, "isLValue": false, "isPure": false, @@ -18574,161 +6262,98 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7300:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 485, - "nodeType": "EmitStatement", - "src": "7295:41:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7354:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 403, - "id": 487, - "nodeType": "Return", - "src": "7347:11:1" - } - ] - }, - "documentation": "@dev Function to convert {Set} Tokens into underlying components\n * The ERC20 components do not need to be approved to call this function\n * @param _quantity uint The quantity of Sets desired to redeem in Wei as a multiple of naturalUnit", - "id": 489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 393, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6463:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 394, - "modifierName": { - "argumentTypes": null, - "id": 392, - "name": "isMultipleOfNaturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "6439:23:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6439:34:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 396, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6503:9:1", + "src": "8424:27:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } - } - ], - "id": 397, - "modifierName": { - "argumentTypes": null, - "id": 395, - "name": "hasSufficientBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "6482:20:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6482:31:1" - }, + }, + "functionReturnParameters": 450, + "id": 456, + "nodeType": "Return", + "src": "8417:34:0" + } + ] + }, + "documentation": null, + "id": 458, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ { "arguments": [ { "argumentTypes": null, - "id": 399, - "name": "_quantity", + "id": 446, + "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6532:9:1", + "referencedDeclaration": 441, + "src": "8375:3:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } } ], - "id": 400, + "id": 447, "modifierName": { "argumentTypes": null, - "id": 398, - "name": "isNonZero", + "id": 445, + "name": "isValidDestination", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "6522:9:1", + "referencedDeclaration": 142, + "src": "8356:18:0", "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "6522:20:1" + "src": "8356:23:0" } ], - "name": "redeem", + "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 391, + "id": 444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 390, - "name": "_quantity", + "id": 441, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "8291:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8291:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 443, + "name": "_value", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6400:14:1", + "scope": 458, + "src": "8312:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18736,10 +6361,10 @@ "typeString": "uint256" }, "typeName": { - "id": 389, - "name": "uint", + "id": 442, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6400:4:1", + "src": "8312:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18749,20 +6374,20 @@ "visibility": "internal" } ], - "src": "6399:16:1" + "src": "8281:51:0" }, "payable": false, "returnParameters": { - "id": 403, + "id": 450, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 402, + "id": 449, "name": "", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6560:4:1", + "scope": 458, + "src": "8397:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18770,10 +6395,10 @@ "typeString": "bool" }, "typeName": { - "id": 401, + "id": 448, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6560:4:1", + "src": "8397:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18783,19 +6408,19 @@ "visibility": "internal" } ], - "src": "6559:6:1" + "src": "8396:6:0" }, - "scope": 980, - "src": "6384:981:1", + "scope": 498, + "src": "8264:194:0", "stateMutability": "nonpayable", - "superFunction": 1608, + "superFunction": 1052, "visibility": "public" }, { "body": { - "id": 618, + "id": 479, "nodeType": "Block", - "src": "8384:1290:1", + "src": "8634:62:0", "statements": [ { "expression": { @@ -18803,99 +6428,87 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 508, - "name": "_componentsToExclude", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "8527:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8550:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8527:24:1", + "id": 474, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 460, + "src": "8670:5:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, - "hexValue": "4578636c7564656420636f6d706f6e656e7473206d757374206265206e6f6e2d7a65726f", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8553:38:1", - "subdenomination": null, + "id": 475, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "8677:3:0", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dc43b6bde85ab0739e4e8030797fca8fcafe90429a798e69497c4f2c6dea5097", - "typeString": "literal_string \"Excluded components must be non-zero\"" - }, - "value": "Excluded components must be non-zero" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 476, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "8682:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" }, { - "typeIdentifier": "t_stringliteral_dc43b6bde85ab0739e4e8030797fca8fcafe90429a798e69497c4f2c6dea5097", - "typeString": "literal_string \"Excluded components must be non-zero\"" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 507, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "8519:7:1", + "expression": { + "argumentTypes": null, + "id": 472, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "8651:5:0", + "typeDescriptions": { + "typeIdentifier": "t_super$_SetToken_$498", + "typeString": "contract super SetToken" + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1274, + "src": "8651:18:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" } }, - "id": 512, + "id": 477, "isConstant": false, "isLValue": false, "isPure": false, @@ -18903,1474 +6516,2250 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8519:73:1", + "src": "8651:38:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 471, + "id": 478, + "nodeType": "Return", + "src": "8644:45:0" + } + ] + }, + "documentation": null, + "id": 480, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 467, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "8602:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 468, + "modifierName": { + "argumentTypes": null, + "id": 466, + "name": "isValidDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 142, + "src": "8583:18:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8583:23:0" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 465, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 460, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "8495:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8495:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 462, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "8518:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 461, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8518:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 464, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "8539:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8539:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8485:74:0" + }, + "payable": false, + "returnParameters": { + "id": 471, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 470, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "8624:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 469, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8624:4:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "8519:73:1" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "8623:6:0" + }, + "scope": 498, + "src": "8464:232:0", + "stateMutability": "nonpayable", + "superFunction": 1274, + "visibility": "public" + }, + { + "body": { + "id": 496, + "nodeType": "Block", + "src": "8875:79:0", + "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 515, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8608:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 514, - "name": "burn", + "baseExpression": { + "argumentTypes": null, + "id": 487, + "name": "isComponent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "8603:4:1", + "referencedDeclaration": 54, + "src": "8892:11:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" } }, - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8603:15:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 517, - "nodeType": "ExpressionStatement", - "src": "8603:15:1" - }, - { - "body": { - "id": 607, - "nodeType": "Block", - "src": "8676:889:1", - "statements": [ - { - "assignments": [ - 530 - ], - "declarations": [ - { - "constant": false, - "id": 530, - "name": "transferValue", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8690:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 529, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8690:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 538, - "initialValue": { + "id": 494, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 532, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "8734:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 534, - "indexExpression": { - "argumentTypes": null, - "id": 533, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8745:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8734:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 535, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "8734:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 536, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8755:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 531, - "name": "calculateTransferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "8711:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8711:54:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8690:75:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 539, - "name": "_componentsToExclude", + "id": 491, + "name": "_tokenAddress", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "8947:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8978:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 542, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8983:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "8978:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": "bytes32" - }, - "id": 544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8970:15:1", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "8931:13:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "src": "8947:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 546, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 489, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "8914:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 490, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "8988:1:1", - "subdenomination": null, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8914:16:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } }, - "src": "8947:42:1", + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8914:31:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } + ], + "id": 488, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1430, + "src": "8904:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8904:42:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8892:55:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 486, + "id": 495, + "nodeType": "Return", + "src": "8885:62:0" + } + ] + }, + "documentation": null, + "id": 497, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "tokenIsComponent", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 482, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 497, + "src": "8790:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 481, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8790:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8780:37:0" + }, + "payable": false, + "returnParameters": { + "id": 486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 485, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 497, + "src": "8865:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 484, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8865:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8864:6:0" + }, + "scope": 498, + "src": "8755:199:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 499, + "src": "1039:7917:0" + } + ], + "src": "597:8360:0" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetToken.sol", + "exportedSymbols": { + "SetToken": [ + 498 + ] + }, + "id": 499, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:0" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 499, + "sourceUnit": 1100, + "src": "623:90:0", + "symbolAliases": [ + { + "foreign": 2, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "id": 5, + "nodeType": "ImportDirective", + "scope": 499, + "sourceUnit": 1422, + "src": "714:90:0", + "symbolAliases": [ + { + "foreign": 4, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 7, + "nodeType": "ImportDirective", + "scope": 499, + "sourceUnit": 884, + "src": "805:73:0", + "symbolAliases": [ + { + "foreign": 6, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", + "file": "./interfaces/ISetFactory.sol", + "id": 9, + "nodeType": "ImportDirective", + "scope": 499, + "sourceUnit": 575, + "src": "879:59:0", + "symbolAliases": [ + { + "foreign": 8, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10, + "name": "StandardToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1421, + "src": "1064:13:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardToken_$1421", + "typeString": "contract StandardToken" + } + }, + "id": 11, + "nodeType": "InheritanceSpecifier", + "src": "1064:13:0" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12, + "name": "DetailedERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1099, + "src": "1083:13:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DetailedERC20_$1099", + "typeString": "contract DetailedERC20" + } + }, + "id": 13, + "nodeType": "InheritanceSpecifier", + "src": "1083:13:0" + } + ], + "contractDependencies": [ + 1065, + 1099, + 1142, + 1174, + 1421 + ], + "contractKind": "contract", + "documentation": "@title SetToken\n@author Set Protocol\n * Implementation of the basic {Set} token.", + "fullyImplemented": true, + "id": 498, + "linearizedBaseContracts": [ + 498, + 1099, + 1421, + 1065, + 1142, + 1174 + ], + "name": "SetToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 16, + "libraryName": { + "contractScope": null, + "id": 14, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 883, + "src": "1109:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$883", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1103:27:0", + "typeName": { + "id": 15, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1122:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 19, + "name": "COMPONENTS_INPUT_MISMATCH", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1183:91:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 17, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1183:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6d706f6e656e747320616e6420756e697473206d757374206265207468652073616d65206c656e6774682e", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1227:47:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_507b7271d0f520677dcc8f52ce111f2a3d6cc23688f132cd90329dcf0980ccdd", + "typeString": "literal_string \"Components and units must be the same length.\"" + }, + "value": "Components and units must be the same length." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 22, + "name": "COMPONENTS_MISSING", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1280:68:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 20, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1280:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6d706f6e656e7473206d757374206e6f7420626520656d7074792e", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1317:31:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c812e6febc96d0f15c9ef704912a1e5b8ac9ee7602acc3375346a83f7a2a9021", + "typeString": "literal_string \"Components must not be empty.\"" + }, + "value": "Components must not be empty." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 25, + "name": "INVALID_COMPONENT_UNIT", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1354:78:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 23, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1354:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a65726f2e", + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1395:37:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_615190b3721d5d2af7bfb2963be7ac841d5b81d1062f7f16fb3ebe7964aaa975", + "typeString": "literal_string \"Unit declarations must be non-zero.\"" + }, + "value": "Unit declarations must be non-zero." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 28, + "name": "INVALID_COMPONENT_ADDRESS", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1438:84:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 26, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1438:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616464726573732e", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1482:40:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c797d4c348b9995d79eeab7c20eaf4ca13ae42e7484e60cde80a890be1da5b5c", + "typeString": "literal_string \"Components must have non-zero address.\"" + }, + "value": "Components must have non-zero address." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 31, + "name": "INVALID_NATURAL_UNIT", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1528:92:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 29, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1528:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "4e61747572616c20756e697420646f6573206e6f7420776f726b207769746820636f6d706f6e656e7420646563696d616c732e", + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1567:53:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4b7120cbe8d08c58dcbc7d80995b28a0b5a9deed88a172beefd52b7c34f75cea", + "typeString": "literal_string \"Natural unit does not work with component decimals.\"" + }, + "value": "Natural unit does not work with component decimals." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 34, + "name": "INVALID_SENDER", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1626:84:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 32, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1626:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53656e646572206973206e6f74207065726d697474656420746f20706572666f726d20746869732066756e6374696f6e2e", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1659:51:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4ffa3e3d08011fc170562a3d08e8750b05ecc5c344e09f4df43ed4eea4688153", + "typeString": "literal_string \"Sender is not permitted to perform this function.\"" + }, + "value": "Sender is not permitted to perform this function." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 37, + "name": "UNITS_MISSING", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1716:58:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 35, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1716:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e697473206d757374206e6f7420626520656d7074792e", + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1748:26:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3167a8b9326a8184e0ced4d846000fe29af4b52d9f88c79765c357d850670a90", + "typeString": "literal_string \"Units must not be empty.\"" + }, + "value": "Units must not be empty." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 40, + "name": "ZERO_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1780:69:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 38, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1780:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d7573742062652067726561746572207468616e207a65726f2e", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1812:37:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3da6978e12ad268e4eb66f4a79840b60e48f93e78540f7911187ddd7f0f6f2c7", + "typeString": "literal_string \"Quantity must be greater than zero.\"" + }, + "value": "Quantity must be greater than zero." + }, + "visibility": "internal" + }, + { + "canonicalName": "SetToken.Component", + "id": 45, + "members": [ + { + "constant": false, + "id": 42, + "name": "address_", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "1928:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 41, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1928:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "name": "unit_", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "1954:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 43, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1954:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Component", + "nodeType": "StructDefinition", + "scope": 498, + "src": "1901:70:0", + "visibility": "public" + }, + { + "constant": false, + "id": 47, + "name": "naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "2030:23:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 46, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2030:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 50, + "name": "components", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "2059:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 48, + "name": "Component", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 45, + "src": "2059:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Component_$45_storage_ptr", + "typeString": "struct SetToken.Component" + } + }, + "id": 49, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2059:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage_ptr", + "typeString": "struct SetToken.Component[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 54, + "name": "isComponent", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "2142:45:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 53, + "keyType": { + "id": 51, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2150:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "2142:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 52, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2161:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 56, + "name": "factory", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "2259:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 55, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2259:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 71, + "nodeType": "Block", + "src": "2353:128:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "falseBody": { - "id": 605, - "nodeType": "Block", - "src": "9080:475:1", - "statements": [ - { - "assignments": [ - 559 - ], - "declarations": [ - { - "constant": false, - "id": 559, - "name": "preTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "9098:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 558, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9098:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 569, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 567, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "9164:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "9130:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 563, - "indexExpression": { - "argumentTypes": null, - "id": 562, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9141:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9130:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 564, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "9130:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 560, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "9124:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9124:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "9124:39:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9124:45:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9098:71:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 578, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "9235:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9235:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 580, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "9247:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 572, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "9202:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 574, - "indexExpression": { - "argumentTypes": null, - "id": 573, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9213:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9202:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 575, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "9202:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 571, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "9196:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9196:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2437, - "src": "9196:38:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9196:65:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 570, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "9188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9188:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 583, - "nodeType": "ExpressionStatement", - "src": "9188:74:1" - }, - { - "assignments": [ - 585 - ], - "declarations": [ - { - "constant": false, - "id": 585, - "name": "postTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "9382:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 584, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9382:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 595, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 593, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "9449:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "9415:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9426:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9415:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 590, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "9415:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 586, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "9409:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9409:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "9409:39:1", + "id": 66, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 59, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "2384:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2384:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 62, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "2410:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9409:45:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9382:72:1" - }, - { + ], "expression": { - "argumentTypes": null, - "arguments": [ + "argumentTypes": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 599, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "9502:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 597, - "name": "preTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 559, - "src": "9479:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "9479:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9479:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 601, - "name": "postTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "9520:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9479:60:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_address", + "typeString": "address" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 596, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "9472:6:1", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9472:68:1", + "id": 61, + "name": "ISetFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 574, + "src": "2398:11:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_type$_t_contract$_ISetFactory_$574_$", + "typeString": "type(contract ISetFactory)" } }, - "id": 604, - "nodeType": "ExpressionStatement", - "src": "9472:68:1" + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2398:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetFactory_$574", + "typeString": "contract ISetFactory" + } + }, + "id": 64, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "core", + "nodeType": "MemberAccess", + "referencedDeclaration": 556, + "src": "2398:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" + } + }, + "id": 65, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2398:27:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2384:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 67, + "name": "INVALID_SENDER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "2439:14:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 58, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "2363:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2363:100:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 69, + "nodeType": "ExpressionStatement", + "src": "2363:100:0" + }, + { + "id": 70, + "nodeType": "PlaceholderStatement", + "src": "2473:1:0" + } + ] + }, + "documentation": null, + "id": 72, + "name": "isCore", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 57, + "nodeType": "ParameterList", + "parameters": [], + "src": "2350:2:0" + }, + "src": "2335:146:0", + "visibility": "internal" + }, + { + "body": { + "id": 106, + "nodeType": "Block", + "src": "2621:500:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 81, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "2712:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2712:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2733:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2712:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 85, + "name": "COMPONENTS_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "2748:18:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 80, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "2691:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 86, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2691:85:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 87, + "nodeType": "ExpressionStatement", + "src": "2691:85:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 92, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 89, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 78, + "src": "2868:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" } - ] + }, + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2868:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "id": 606, - "nodeType": "IfStatement", - "src": "8943:612:1", - "trueBody": { - "id": 557, - "nodeType": "Block", - "src": "8991:83:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 548, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "9009:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 552, - "indexExpression": { - "argumentTypes": null, - "id": 549, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9028:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9009:21:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 553, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 550, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "9031:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9031:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9009:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 554, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "9046:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9009:50:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 556, - "nodeType": "ExpressionStatement", - "src": "9009:50:1" + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2884:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2868:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 93, + "name": "UNITS_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2899:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 88, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "2847:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2847:75:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 95, + "nodeType": "ExpressionStatement", + "src": "2847:75:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 97, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "3019:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } - ] + }, + "id": 98, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3019:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 99, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 78, + "src": "3041:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3041:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3019:35:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 102, + "name": "COMPONENTS_INPUT_MISMATCH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "3068:25:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 96, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "2998:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } }, - "id": 525, + "id": 103, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 522, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8648:1:1", + "names": [], + "nodeType": "FunctionCall", + "src": "2998:105:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 104, + "nodeType": "ExpressionStatement", + "src": "2998:105:0" + }, + { + "id": 105, + "nodeType": "PlaceholderStatement", + "src": "3113:1:0" + } + ] + }, + "documentation": null, + "id": 107, + "name": "areValidCreationParameters", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 79, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 75, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "2583:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2583:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { + "id": 74, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2583:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 78, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "2606:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 76, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2606:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 77, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2606:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2582:38:0" + }, + "src": "2547:574:0", + "visibility": "internal" + }, + { + "body": { + "id": 119, + "nodeType": "Block", + "src": "3163:99:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 523, - "name": "components", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 112, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "3194:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 113, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3206:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3194:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 115, + "name": "ZERO_QUANTITY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "8652:10:1", + "referencedDeclaration": 40, + "src": "3221:13:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } - }, - "id": 524, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8652:17:1", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 111, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "3173:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "src": "8648:21:1", + "id": 116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3173:71:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 608, - "initializationExpression": { - "assignments": [ - 519 - ], - "declarations": [ + "id": 117, + "nodeType": "ExpressionStatement", + "src": "3173:71:0" + }, + { + "id": 118, + "nodeType": "PlaceholderStatement", + "src": "3254:1:0" + } + ] + }, + "documentation": null, + "id": 120, + "name": "isPositive", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 109, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 120, + "src": "3147:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 108, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3147:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3146:16:0" + }, + "src": "3127:135:0", + "visibility": "internal" + }, + { + "body": { + "id": 141, + "nodeType": "Block", + "src": "3309:93:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "constant": false, - "id": 519, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8634:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "typeName": { - "id": 518, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "8634:6:1", + "id": 129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 125, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 122, + "src": "3327:3:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "value": null, - "visibility": "internal" + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3342:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3334:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3334:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3327:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } } ], - "id": 521, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 520, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8645:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8634:12:1" - }, - "loopExpression": { "expression": { - "argumentTypes": null, - "id": 527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8671:3:1", - "subExpression": { - "argumentTypes": null, - "id": 526, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8671:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, + ], + "id": 124, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1439, + "src": "3319:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 528, - "nodeType": "ExpressionStatement", - "src": "8671:3:1" + "id": 130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3319:26:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "nodeType": "ForStatement", - "src": "8629:936:1" + "id": 131, + "nodeType": "ExpressionStatement", + "src": "3319:26:0" }, { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 610, - "name": "msg", + "id": 133, + "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "9601:3:1", + "referencedDeclaration": 122, + "src": "3363:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 135, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1463, + "src": "3378:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SetToken_$498", + "typeString": "contract SetToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SetToken_$498", + "typeString": "contract SetToken" + } + ], + "id": 134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3370:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3370:13:0", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9601:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 612, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "9613:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 613, - "name": "_componentsToExclude", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "9624:20:1", + "src": "3363:20:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "id": 609, - "name": "LogPartialRedemption", + "id": 132, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "9580:20:1", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1439, + "src": "3355:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$", - "typeString": "function (address,uint256,bytes32)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 614, + "id": 138, "isConstant": false, "isLValue": false, "isPure": false, @@ -20378,1554 +8767,1136 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9580:65:1", + "src": "3355:29:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 615, - "nodeType": "EmitStatement", - "src": "9575:70:1" + "id": 139, + "nodeType": "ExpressionStatement", + "src": "3355:29:0" }, { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9663:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 506, - "id": 617, - "nodeType": "Return", - "src": "9656:11:1" + "id": 140, + "nodeType": "PlaceholderStatement", + "src": "3394:1:0" } ] }, - "documentation": "@dev Function to withdraw a portion of the component tokens of a Set\n * This function should be used in the event that a component token has been\npaused for transfer temporarily or permanently. This allows users a\nmethod to withdraw tokens in the event that one token has been frozen.\n * The mask can be computed by summing the powers of 2 of indexes of components to exclude.\nFor example, to exclude the 0th, 1st, and 3rd components, we pass in the hex of\n1 + 2 + 8 = 11, padded to length 32 i.e. 0x000000000000000000000000000000000000000000000000000000000000000b\n * @param _quantity uint The quantity of Sets desired to redeem in Wei\n@param _componentsToExclude bytes32 Hex of bitmask of components to exclude", - "id": 619, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 496, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8277:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 497, - "modifierName": { - "argumentTypes": null, - "id": 495, - "name": "isMultipleOfNaturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "8253:23:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8253:34:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 499, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8306:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 500, - "modifierName": { - "argumentTypes": null, - "id": 498, - "name": "isNonZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "8296:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8296:20:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 502, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8346:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 503, - "modifierName": { - "argumentTypes": null, - "id": 501, - "name": "hasSufficientBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "8325:20:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8325:31:1" - } - ], - "name": "partialRedeem", - "nodeType": "FunctionDefinition", + "documentation": null, + "id": 142, + "name": "isValidDestination", + "nodeType": "ModifierDefinition", "parameters": { - "id": 494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 491, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8184:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8184:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 493, - "name": "_componentsToExclude", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8200:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 492, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8200:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8183:46:1" - }, - "payable": false, - "returnParameters": { - "id": 506, + "id": 123, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 505, - "name": "", + "id": 122, + "name": "_to", "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8374:4:1", + "scope": 142, + "src": "3296:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 504, - "name": "bool", + "id": 121, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "8374:4:1", + "src": "3296:7:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "8373:6:1" + "src": "3295:13:0" }, - "scope": 980, - "src": "8161:1513:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" + "src": "3268:134:0", + "visibility": "internal" }, { "body": { - "id": 701, + "id": 279, "nodeType": "Block", - "src": "10288:693:1", + "src": "4363:1934:0", "statements": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 627, - "name": "_componentsToRedeem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "10306:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10328:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10306:23:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "assignments": [ + 165 + ], + "declarations": [ + { + "constant": false, + "id": 165, + "name": "minDecimals", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4498:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" }, - { - "argumentTypes": null, - "hexValue": "436f6d706f6e656e747320746f2072656465656d206d757374206265206e6f6e2d7a65726f", - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10331:39:1", - "subdenomination": null, + "typeName": { + "id": 164, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4498:5:0", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_580384d9ad1b31ff306fd95da0728bd78ff8cb2c4fbafcbb934965791a78d2b3", - "typeString": "literal_string \"Components to redeem must be non-zero\"" - }, - "value": "Components to redeem must be non-zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_580384d9ad1b31ff306fd95da0728bd78ff8cb2c4fbafcbb934965791a78d2b3", - "typeString": "literal_string \"Components to redeem must be non-zero\"" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } - ], - "id": 626, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "10298:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 631, + }, + "value": null, + "visibility": "internal" + } + ], + "id": 167, + "initialValue": { + "argumentTypes": null, + "hexValue": "3138", + "id": 166, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10298:73:1", + "nodeType": "Literal", + "src": "4518:2:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" }, - "id": 632, - "nodeType": "ExpressionStatement", - "src": "10298:73:1" + "nodeType": "VariableDeclarationStatement", + "src": "4498:22:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 169, + "name": "currentDecimals", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4530:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 168, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4530:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 170, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "4530:21:0" }, { "body": { - "id": 691, + "id": 269, "nodeType": "Block", - "src": "10429:458:1", + "src": "4604:1402:0", "statements": [ { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 644, - "name": "_componentsToRedeem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "10447:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "assignments": [ + 183 + ], + "declarations": [ + { + "constant": false, + "id": 183, + "name": "currentUnits", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4700:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10477:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 647, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10482:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "10477:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 645, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10469:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": "bytes32" - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10469:15:1", + "typeName": { + "id": 182, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4700:4:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "10447:37:1", + "value": null, + "visibility": "internal" + } + ], + "id": 187, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 184, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 150, + "src": "4720:6:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "id": 186, + "indexExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10487:1:1", - "subdenomination": null, + "id": 185, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 172, + "src": "4727:1:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } }, - "src": "10447:41:1", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4720:9:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "falseBody": null, - "id": 690, - "nodeType": "IfStatement", - "src": "10443:434:1", - "trueBody": { - "id": 689, - "nodeType": "Block", - "src": "10490:387:1", - "statements": [ - { - "assignments": [ - 654 - ], - "declarations": [ - { - "constant": false, - "id": 654, - "name": "currentComponent", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10508:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 653, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10508:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 659, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 655, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "10535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 657, - "indexExpression": { - "argumentTypes": null, - "id": 656, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10546:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10535:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 658, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "10535:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10508:49:1" - }, + "nodeType": "VariableDeclarationStatement", + "src": "4700:29:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "assignments": [ - 661 - ], - "declarations": [ - { - "constant": false, - "id": 661, - "name": "remainingBalance", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10575:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 660, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10575:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 668, - "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 662, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "10599:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 664, - "indexExpression": { - "argumentTypes": null, - "id": 663, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10618:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10599:21:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 667, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 665, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10621:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10621:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10599:33:1", + "id": 189, + "name": "currentUnits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "4768:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "10575:57:1" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { "argumentTypes": null, - "id": 676, + "hexValue": "30", + "id": 190, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 669, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "10735:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 673, - "indexExpression": { - "argumentTypes": null, - "id": 670, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10754:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10735:21:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 674, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 671, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10757:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10757:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10735:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10771:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "nodeType": "Literal", + "src": "4783:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "src": "10735:37:1", + "value": "0" + }, + "src": "4768:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 192, + "name": "INVALID_COMPONENT_UNIT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "4802:22:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 188, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "4743:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4743:95:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 194, + "nodeType": "ExpressionStatement", + "src": "4743:95:0" + }, + { + "assignments": [ + 196 + ], + "declarations": [ + { + "constant": false, + "id": 196, + "name": "currentComponent", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4906:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 195, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4906:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 200, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 197, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "4933:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 199, + "indexExpression": { + "argumentTypes": null, + "id": 198, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 172, + "src": "4945:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4933:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4906:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 202, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "4986:16:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 677, - "nodeType": "ExpressionStatement", - "src": "10735:37:1" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 683, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10832:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10832:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 685, - "name": "remainingBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 661, - "src": "10844:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 680, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "10805:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 679, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "10799:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10799:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2437, - "src": "10799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 686, + "hexValue": "30", + "id": 204, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10799:62:1", + "nodeType": "Literal", + "src": "5014:1:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "id": 678, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "10791:7:1", + "id": 203, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5006:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 687, + "id": 205, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10791:71:1", + "src": "5006:10:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 688, - "nodeType": "ExpressionStatement", - "src": "10791:71:1" + "src": "4986:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 207, + "name": "INVALID_COMPONENT_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "5034:25:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 637, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10401:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 638, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "10405:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 639, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10405:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10401:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 692, - "initializationExpression": { - "assignments": [ - 634 - ], - "declarations": [ - { - "constant": false, - "id": 634, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10387:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 633, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "10387:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 636, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10398:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10387:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10424:3:1", - "subExpression": { - "argumentTypes": null, - "id": 641, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10424:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 643, - "nodeType": "ExpressionStatement", - "src": "10424:3:1" - }, - "nodeType": "ForStatement", - "src": "10382:505:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 694, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10920:3:1", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 201, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "4961:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4961:112:0", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10920:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "id": 209, + "nodeType": "ExpressionStatement", + "src": "4961:112:0" }, { - "argumentTypes": null, - "id": 696, - "name": "_componentsToRedeem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "10932:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 693, - "name": "LogRedeemExcluded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "10902:17:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32)" - } - }, - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10902:50:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 698, - "nodeType": "EmitStatement", - "src": "10897:55:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10970:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 625, - "id": 700, - "nodeType": "Return", - "src": "10963:11:1" - } - ] - }, - "documentation": "@dev Function to withdraw tokens that have previously been excluded when calling\nthe partialRedeem method\nThe mask can be computed by summing the powers of 2 of indexes of components to redeem.\nFor example, to redeem the 0th, 1st, and 3rd components, we pass in the hex of\n1 + 2 + 8 = 11, padded to length 32 i.e. 0x000000000000000000000000000000000000000000000000000000000000000b\n * @param _componentsToRedeem bytes32 Hex of bitmask of components to redeem", - "id": 702, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "redeemExcluded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 622, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "_componentsToRedeem", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10217:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 620, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10216:29:1" - }, - "payable": false, - "returnParameters": { - "id": 625, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 624, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10278:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 623, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10278:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10277:6:1" - }, - "scope": 980, - "src": "10193:788:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 743, - "nodeType": "Block", - "src": "11216:249:1", - "statements": [ - { - "assignments": [ - 711 - ], - "declarations": [ - { - "constant": false, - "id": 711, - "name": "componentAddresses", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "11226:35:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 709, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11226:7:1", + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "646563696d616c732829", + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5211:12:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", + "typeString": "literal_string \"decimals()\"" + }, + "value": "decimals()" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", + "typeString": "literal_string \"decimals()\"" + } + ], + "id": 213, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1430, + "src": "5201:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5201:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5194:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": "bytes4" + }, + "id": 216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5194:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "argumentTypes": null, + "id": 210, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5172:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5172:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$__$returns$_t_bool_$", + "typeString": "function () payable returns (bool)" + } + }, + "id": 217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5172:54:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 710, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11226:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" + "falseBody": { + "id": 240, + "nodeType": "Block", + "src": "5420:185:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 236, + "name": "minDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5575:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5589:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5575:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 239, + "nodeType": "ExpressionStatement", + "src": "5575:15:0" + } + ] + }, + "id": 241, + "nodeType": "IfStatement", + "src": "5168:437:0", + "trueBody": { + "id": 235, + "nodeType": "Block", + "src": "5228:186:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 218, + "name": "currentDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5246:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 220, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5278:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 219, + "name": "DetailedERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "5264:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$1099_$", + "typeString": "type(contract DetailedERC20)" + } + }, + "id": 221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5264:31:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DetailedERC20_$1099", + "typeString": "contract DetailedERC20" + } + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 1076, + "src": "5264:40:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5264:42:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "5246:60:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 225, + "nodeType": "ExpressionStatement", + "src": "5246:60:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 226, + "name": "minDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5324:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 227, + "name": "currentDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5338:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 228, + "name": "minDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5356:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "5338:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 231, + "name": "minDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5388:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "5338:61:0", + "trueExpression": { + "argumentTypes": null, + "id": 230, + "name": "currentDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5370:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "5324:75:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 234, + "nodeType": "ExpressionStatement", + "src": "5324:75:0" + } + ] } }, - "value": null, - "visibility": "internal" - } - ], - "id": 718, - "initialValue": { - "argumentTypes": null, - "arguments": [ { - "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 715, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11278:10:1", + "arguments": [ + { + "argumentTypes": null, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5689:35:0", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 244, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5707:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 243, + "name": "tokenIsComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "5690:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5690:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 242, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1439, + "src": "5681:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5681:44:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 716, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11278:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "11264:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" + "id": 248, + "nodeType": "ExpressionStatement", + "src": "5681:44:0" }, - "typeName": { - "baseType": { - "id": 712, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 713, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11268:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11264:32:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11226:70:1" - }, - { - "body": { - "id": 739, - "nodeType": "Block", - "src": "11353:71:1", - "statements": [ { "expression": { "argumentTypes": null, - "id": 737, + "id": 258, "isConstant": false, "isLValue": false, "isPure": false, @@ -21934,29 +9905,117 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 730, - "name": "componentAddresses", + "id": 249, + "name": "isComponent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 711, - "src": "11367:18:1", + "referencedDeclaration": 54, + "src": "5792:11:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" } }, - "id": 732, + "id": 256, "indexExpression": { "argumentTypes": null, - "id": 731, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11386:1:1", + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 253, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5831:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 251, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "5814:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5814:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 250, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1430, + "src": "5804:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5804:45:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "isConstant": false, @@ -21964,79 +10023,158 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "11367:21:1", + "src": "5792:58:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "expression": { + "hexValue": "74727565", + "id": 257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5853:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5792:65:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 259, + "nodeType": "ExpressionStatement", + "src": "5792:65:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 733, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11391:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" + "arguments": [ + { + "argumentTypes": null, + "id": 264, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5926:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 265, + "name": "currentUnits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "5967:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "id": 735, - "indexExpression": { + ], + "expression": { "argumentTypes": null, - "id": 734, - "name": "i", + "id": 263, + "name": "Component", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11402:1:1", + "referencedDeclaration": 45, + "src": "5888:9:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_type$_t_struct$_Component_$45_storage_ptr_$", + "typeString": "type(struct SetToken.Component storage pointer)" } }, + "id": 266, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "structConstructorCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11391:13:1", + "names": [ + "address_", + "unit_" + ], + "nodeType": "FunctionCall", + "src": "5888:106:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" + "typeIdentifier": "t_struct$_Component_$45_memory", + "typeString": "struct SetToken.Component memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Component_$45_memory", + "typeString": "struct SetToken.Component memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 260, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "5872:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" } }, - "id": 736, + "id": 262, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "address_", + "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "11391:22:1", + "referencedDeclaration": null, + "src": "5872:15:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Component_$45_storage_$returns$_t_uint256_$", + "typeString": "function (struct SetToken.Component storage ref) returns (uint256)" } }, - "src": "11367:46:1", + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5872:123:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 738, + "id": 268, "nodeType": "ExpressionStatement", - "src": "11367:46:1" + "src": "5872:123:0" } ] }, @@ -22046,19 +10184,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 726, + "id": 178, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 723, + "id": 175, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11325:1:1", + "referencedDeclaration": 172, + "src": "4580:1:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -22070,50 +10208,50 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 724, - "name": "components", + "id": 176, + "name": "_units", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11329:10:1", + "referencedDeclaration": 150, + "src": "4584:6:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" } }, - "id": 725, + "id": 177, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11329:17:1", + "src": "4584:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11325:21:1", + "src": "4580:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 740, + "id": 270, "initializationExpression": { "assignments": [ - 720 + 172 ], "declarations": [ { "constant": false, - "id": 720, + "id": 172, "name": "i", "nodeType": "VariableDeclaration", - "scope": 744, - "src": "11311:8:1", + "scope": 280, + "src": "4566:8:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22121,10 +10259,10 @@ "typeString": "uint16" }, "typeName": { - "id": 719, + "id": 171, "name": "uint16", "nodeType": "ElementaryTypeName", - "src": "11311:6:1", + "src": "4566:6:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -22134,18 +10272,18 @@ "visibility": "internal" } ], - "id": 722, + "id": 174, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 721, + "id": 173, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11322:1:1", + "src": "4577:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -22154,12 +10292,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "11311:12:1" + "src": "4566:12:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 728, + "id": 180, "isConstant": false, "isLValue": false, "isPure": false, @@ -22167,15 +10305,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "11348:3:1", + "src": "4599:3:0", "subExpression": { "argumentTypes": null, - "id": 727, + "id": 179, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11348:1:1", + "referencedDeclaration": 172, + "src": "4599:1:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -22186,603 +10324,739 @@ "typeString": "uint16" } }, - "id": 729, + "id": 181, "nodeType": "ExpressionStatement", - "src": "11348:3:1" + "src": "4599:3:0" + }, + "nodeType": "ForStatement", + "src": "4561:1445:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 271, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "6236:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 272, + "name": "_factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 144, + "src": "6246:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6236:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 274, + "nodeType": "ExpressionStatement", + "src": "6236:18:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 275, + "name": "naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "6264:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 276, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 152, + "src": "6278:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6264:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 278, + "nodeType": "ExpressionStatement", + "src": "6264:26:0" + } + ] + }, + "documentation": "Constructor function for {Set} token\n * As looping operations are expensive, checking for duplicates will be on the onus of the application developer\n * @param _components address[] A list of component address which you want to include\n@param _units uint[] A list of quantities in gWei of each component (corresponds to the {Set} of _components)\n@param _naturalUnit uint The minimum multiple of Sets that can be issued or redeeemed\n@param _name string The Set's name\n@param _symbol string the Set's symbol", + "id": 280, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 159, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "4244:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 160, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 156, + "src": "4251:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4260:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "id": 162, + "modifierName": { + "argumentTypes": null, + "id": 158, + "name": "DetailedERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "4230:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$1099_$", + "typeString": "type(contract DetailedERC20)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4230:33:0" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 144, + "name": "_factory", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4057:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 143, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4057:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 147, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4083:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 145, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4083:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 146, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4083:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 150, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4114:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 148, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4114:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 149, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4114:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 152, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4137:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "nodeType": "ForStatement", - "src": "11306:118:1" + "typeName": { + "id": 151, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4137:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" }, { - "expression": { - "argumentTypes": null, - "id": 741, - "name": "componentAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 711, - "src": "11440:18:1", + "constant": false, + "id": 154, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4164:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 153, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4164:6:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "functionReturnParameters": 707, - "id": 742, - "nodeType": "Return", - "src": "11433:25:1" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Getters\n////////////////////////////////////////////////////////", - "id": 744, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getComponents", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 703, - "nodeType": "ParameterList", - "parameters": [], - "src": "11153:2:1" - }, - "payable": false, - "returnParameters": { - "id": 707, - "nodeType": "ParameterList", - "parameters": [ + "value": null, + "visibility": "internal" + }, { "constant": false, - "id": 706, - "name": "", + "id": 156, + "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 744, - "src": "11201:9:1", + "scope": 280, + "src": "4186:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "baseType": { - "id": 704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11201:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 705, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11201:9:1", + "id": 155, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4186:6:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, "visibility": "internal" } ], - "src": "11200:11:1" + "src": "4047:159:0" }, - "scope": 980, - "src": "11131:334:1", - "stateMutability": "view", + "payable": false, + "returnParameters": { + "id": 163, + "nodeType": "ParameterList", + "parameters": [], + "src": "4363:0:0" + }, + "scope": 498, + "src": "4036:2261:0", + "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 785, + "id": 307, "nodeType": "Block", - "src": "11547:201:1", + "src": "6709:220:0", "statements": [ { - "assignments": [ - 753 - ], - "declarations": [ - { - "constant": false, - "id": 753, - "name": "units", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "11557:19:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11557:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 752, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11557:6:1", + "expression": { + "argumentTypes": null, + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 289, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "6765:8:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 760, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { + "id": 291, + "indexExpression": { "argumentTypes": null, - "expression": { + "id": 290, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "6774:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6765:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 757, - "name": "components", + "id": 296, + "name": "_quantity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11590:10:1", + "referencedDeclaration": 284, + "src": "6807:9:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 758, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11590:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], - "id": 756, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "11579:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 754, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11583:4:1", - "typeDescriptions": { + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "id": 755, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11583:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11579:29:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11557:51:1" - }, - { - "body": { - "id": 781, - "nodeType": "Block", - "src": "11665:55:1", - "statements": [ - { + ], "expression": { "argumentTypes": null, - "id": 779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 772, - "name": "units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "11679:5:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 774, - "indexExpression": { - "argumentTypes": null, - "id": 773, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11685:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11679:8:1", + "id": 292, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "6785:8:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 294, + "indexExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 775, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11690:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 777, - "indexExpression": { - "argumentTypes": null, - "id": 776, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11701:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11690:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 778, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "11690:19:1", + "id": 293, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "6794:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "11679:30:1", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6785:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 780, - "nodeType": "ExpressionStatement", - "src": "11679:30:1" + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 882, + "src": "6785:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6785:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { + }, + "src": "6765:52:0", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 768, + } + }, + "id": 299, + "nodeType": "ExpressionStatement", + "src": "6765:52:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { "argumentTypes": null, - "id": 765, - "name": "i", + "id": 300, + "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11637:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 766, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11641:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 767, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11641:17:1", + "referencedDeclaration": 984, + "src": "6880:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11637:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 782, - "initializationExpression": { - "assignments": [ - 762 - ], - "declarations": [ - { - "constant": false, - "id": 762, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "11623:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 761, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "11623:6:1", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 303, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 284, + "src": "6912:9:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 301, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "6895:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 764, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11634:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "id": 302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 882, + "src": "6895:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "11623:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 770, + "id": 304, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "11660:3:1", - "subExpression": { - "argumentTypes": null, - "id": 769, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11660:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, + "names": [], + "nodeType": "FunctionCall", + "src": "6895:27:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 771, - "nodeType": "ExpressionStatement", - "src": "11660:3:1" - }, - "nodeType": "ForStatement", - "src": "11618:102:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 783, - "name": "units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "11736:5:1", + "src": "6880:42:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 749, - "id": 784, - "nodeType": "Return", - "src": "11729:12:1" + "id": 306, + "nodeType": "ExpressionStatement", + "src": "6880:42:0" } ] }, "documentation": null, - "id": 786, + "id": 308, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getUnits", + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 287, + "modifierName": { + "argumentTypes": null, + "id": 286, + "name": "isCore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "6698:6:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6698:6:0" + } + ], + "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 745, - "nodeType": "ParameterList", - "parameters": [], - "src": "11488:2:1" - }, - "payable": false, - "returnParameters": { - "id": 749, + "id": 285, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 748, - "name": "", + "id": 282, + "name": "_issuer", "nodeType": "VariableDeclaration", - "scope": 786, - "src": "11535:6:1", + "scope": 308, + "src": "6627:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "baseType": { - "id": 746, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11535:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 747, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11535:6:1", + "id": 281, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6627:7:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 284, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 308, + "src": "6652:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 283, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6652:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "11534:8:1" + "src": "6617:55:0" }, - "scope": 980, - "src": "11471:277:1", - "stateMutability": "view", + "payable": false, + "returnParameters": { + "id": 288, + "nodeType": "ParameterList", + "parameters": [], + "src": "6709:0:0" + }, + "scope": 498, + "src": "6604:325:0", + "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 835, + "id": 354, "nodeType": "Block", - "src": "11913:336:1", + "src": "7316:219:0", "statements": [ { "expression": { @@ -22790,636 +11064,378 @@ "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 797, - "name": "_componentAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "11948:17:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 796, - "name": "tokenIsComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "11931:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 798, + "id": 325, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11931:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 795, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "11923:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11923:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 800, - "nodeType": "ExpressionStatement", - "src": "11923:44:1" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 802, - "name": "componentIndex", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11978:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 801, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11978:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 803, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "11978:19:1" - }, - { - "body": { - "id": 827, - "nodeType": "Block", - "src": "12053:124:1", - "statements": [ - { - "condition": { + "leftExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 815, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "12071:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 817, - "indexExpression": { - "argumentTypes": null, - "id": 816, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12082:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12071:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 818, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "12071:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "baseExpression": { "argumentTypes": null, - "id": 819, - "name": "_componentAddress", + "id": 321, + "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "12097:17:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12071:43:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 826, - "nodeType": "IfStatement", - "src": "12067:100:1", - "trueBody": { - "id": 825, - "nodeType": "Block", - "src": "12116:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 821, - "name": "componentIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "12134:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 822, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12151:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12134:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 824, - "nodeType": "ExpressionStatement", - "src": "12134:18:1" + "referencedDeclaration": 982, + "src": "7334:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } - ] + }, + "id": 323, + "indexExpression": { + "argumentTypes": null, + "id": 322, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "7343:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7334:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 324, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 312, + "src": "7353:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7334:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } } - ] + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1439, + "src": "7326:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7326:37:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "condition": { + "id": 327, + "nodeType": "ExpressionStatement", + "src": "7326:37:0" + }, + { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 811, + "id": 337, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 808, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12025:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { + "leftHandSide": { "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "id": 809, - "name": "components", + "id": 328, + "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "12029:10:1", + "referencedDeclaration": 982, + "src": "7374:8:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 330, + "indexExpression": { + "argumentTypes": null, + "id": 329, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "7383:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 810, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12029:17:1", + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7374:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12025:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 828, - "initializationExpression": { - "assignments": [ - 805 - ], - "declarations": [ - { - "constant": false, - "id": 805, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "12013:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 804, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12013:4:1", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 335, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 312, + "src": "7412:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 331, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "7392:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 333, + "indexExpression": { + "argumentTypes": null, + "id": 332, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "7401:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7392:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 807, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12022:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 858, + "src": "7392:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12013:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 813, + "id": 336, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12048:3:1", - "subExpression": { - "argumentTypes": null, - "id": 812, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12048:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "names": [], + "nodeType": "FunctionCall", + "src": "7392:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 814, - "nodeType": "ExpressionStatement", - "src": "12048:3:1" + "src": "7374:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "nodeType": "ForStatement", - "src": "12008:169:1" + "id": 338, + "nodeType": "ExpressionStatement", + "src": "7374:48:0" }, { "expression": { "argumentTypes": null, - "baseExpression": { + "id": 344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 339, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "7432:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 829, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "12194:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" + "arguments": [ + { + "argumentTypes": null, + "id": 342, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 312, + "src": "7464:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "id": 831, - "indexExpression": { - "argumentTypes": null, - "id": 830, - "name": "componentIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "12213:14:1", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 340, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "7447:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 858, + "src": "7447:16:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, + "id": 343, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12194:34:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 833, - "indexExpression": { - "argumentTypes": null, - "id": 832, - "name": "_userAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 790, - "src": "12229:12:1", + "names": [], + "nodeType": "FunctionCall", + "src": "7447:27:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12194:48:1", + "src": "7432:42:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 794, - "id": 834, - "nodeType": "Return", - "src": "12187:55:1" - } - ] - }, - "documentation": null, - "id": 836, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getUnredeemedBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 788, - "name": "_componentAddress", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11793:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 787, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11793:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" + "id": 345, + "nodeType": "ExpressionStatement", + "src": "7432:42:0" }, { - "constant": false, - "id": 790, - "name": "_userAddress", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11828:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 789, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11828:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11783:71:1" - }, - "payable": false, - "returnParameters": { - "id": 794, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 793, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11900:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 792, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11900:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11899:9:1" - }, - "scope": 980, - "src": "11754:495:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 854, - "nodeType": "Block", - "src": "12549:51:1", - "statements": [ - { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 850, - "name": "_to", + "id": 347, + "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "12581:3:1", + "referencedDeclaration": 310, + "src": "7499:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23427,12 +11443,68 @@ }, { "argumentTypes": null, - "id": 851, - "name": "_value", + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7514:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7506:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7506:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 351, + "name": "_quantity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "12586:6:1", + "referencedDeclaration": 312, + "src": "7518:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23441,6 +11513,10 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, { "typeIdentifier": "t_address", "typeString": "address" @@ -23450,34 +11526,18 @@ "typeString": "uint256" } ], - "expression": { - "argumentTypes": null, - "id": 848, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "12566:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_SetToken_$980", - "typeString": "contract super SetToken" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2324, - "src": "12566:14:1", + "id": 346, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1173, + "src": "7490:8:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" } }, - "id": 852, + "id": 352, "isConstant": false, "isLValue": false, "isPure": false, @@ -23485,72 +11545,90 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12566:27:1", + "src": "7490:38:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 847, - "id": 853, - "nodeType": "Return", - "src": "12559:34:1" + "id": 353, + "nodeType": "EmitStatement", + "src": "7485:43:0" } ] }, - "documentation": "////////////////////////////////////////////////////////\n Transfer Updates\n////////////////////////////////////////////////////////", - "id": 855, + "documentation": null, + "id": 355, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ + { + "arguments": null, + "id": 315, + "modifierName": { + "argumentTypes": null, + "id": 314, + "name": "isCore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "7275:6:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7275:6:0" + }, { "arguments": [ { "argumentTypes": null, - "id": 843, - "name": "_to", + "id": 317, + "name": "_quantity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "12502:3:1", + "referencedDeclaration": 312, + "src": "7301:9:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], - "id": 844, + "id": 318, "modifierName": { "argumentTypes": null, - "id": 842, - "name": "validDestination", + "id": 316, + "name": "isPositive", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "12485:16:1", + "referencedDeclaration": 120, + "src": "7290:10:0", "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "12485:21:1" + "src": "7290:21:0" } ], - "name": "transfer", + "name": "burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 841, + "id": 313, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 838, - "name": "_to", + "id": 310, + "name": "_from", "nodeType": "VariableDeclaration", - "scope": 855, - "src": "12435:11:1", + "scope": 355, + "src": "7206:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23558,10 +11636,10 @@ "typeString": "address" }, "typeName": { - "id": 837, + "id": 309, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12435:7:1", + "src": "7206:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23572,11 +11650,11 @@ }, { "constant": false, - "id": 840, - "name": "_value", + "id": 312, + "name": "_quantity", "nodeType": "VariableDeclaration", - "scope": 855, - "src": "12456:14:1", + "scope": 355, + "src": "7229:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23584,10 +11662,10 @@ "typeString": "uint256" }, "typeName": { - "id": 839, - "name": "uint256", + "id": 311, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12456:7:1", + "src": "7229:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23597,1080 +11675,1276 @@ "visibility": "internal" } ], - "src": "12425:51:1" + "src": "7196:53:0" }, "payable": false, "returnParameters": { - "id": 847, + "id": 319, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 846, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 855, - "src": "12539:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 845, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12539:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12538:6:1" + "parameters": [], + "src": "7316:0:0" }, - "scope": 980, - "src": "12408:192:1", + "scope": 498, + "src": "7183:352:0", "stateMutability": "nonpayable", - "superFunction": 2324, - "visibility": "public" + "superFunction": null, + "visibility": "external" }, { "body": { - "id": 876, + "id": 396, "nodeType": "Block", - "src": "12774:62:1", + "src": "7670:249:0", "statements": [ { - "expression": { + "assignments": [ + 364 + ], + "declarations": [ + { + "constant": false, + "id": 364, + "name": "componentAddresses", + "nodeType": "VariableDeclaration", + "scope": 397, + "src": "7680:35:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 362, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7680:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 363, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7680:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 371, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 368, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "7732:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" + } + }, + "id": 369, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7732:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "7718:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7722:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 366, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7722:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7718:32:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7680:70:0" + }, + { + "body": { + "id": 392, + "nodeType": "Block", + "src": "7807:71:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 383, + "name": "componentAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "7821:18:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 385, + "indexExpression": { + "argumentTypes": null, + "id": 384, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "7840:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7821:21:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 386, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "7845:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" + } + }, + "id": 388, + "indexExpression": { + "argumentTypes": null, + "id": 387, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "7856:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7845:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Component_$45_storage", + "typeString": "struct SetToken.Component storage ref" + } + }, + "id": 389, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "address_", + "nodeType": "MemberAccess", + "referencedDeclaration": 42, + "src": "7845:22:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7821:46:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 391, + "nodeType": "ExpressionStatement", + "src": "7821:46:0" + } + ] + }, + "condition": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 871, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "12810:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 872, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "12817:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 873, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 861, - "src": "12822:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 376, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "7779:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 869, - "name": "super", + "id": 377, + "name": "components", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "12791:5:1", + "referencedDeclaration": 50, + "src": "7783:10:0", "typeDescriptions": { - "typeIdentifier": "t_super$_SetToken_$980", - "typeString": "contract super SetToken" + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" } }, - "id": 870, + "id": 378, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "transferFrom", + "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 2652, - "src": "12791:18:1", + "referencedDeclaration": null, + "src": "7783:17:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12791:38:1", + "src": "7779:21:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 868, - "id": 875, - "nodeType": "Return", - "src": "12784:45:1" - } - ] - }, - "documentation": null, - "id": 877, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 864, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "12727:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 865, - "modifierName": { - "argumentTypes": null, - "id": 863, - "name": "validDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "12710:16:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12710:21:1" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 862, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 857, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12637:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 856, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12637:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 859, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12660:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "id": 393, + "initializationExpression": { + "assignments": [ + 373 + ], + "declarations": [ + { + "constant": false, + "id": 373, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 397, + "src": "7765:8:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 372, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "7765:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 375, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7776:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7765:12:0" }, - "typeName": { - "id": 858, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12660:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7802:3:0", + "subExpression": { + "argumentTypes": null, + "id": 380, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "7802:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 382, + "nodeType": "ExpressionStatement", + "src": "7802:3:0" }, - "value": null, - "visibility": "internal" + "nodeType": "ForStatement", + "src": "7760:118:0" }, { - "constant": false, - "id": 861, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12681:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 860, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12681:7:1", + "expression": { + "argumentTypes": null, + "id": 394, + "name": "componentAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "7894:18:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "value": null, - "visibility": "internal" + "functionReturnParameters": 360, + "id": 395, + "nodeType": "Return", + "src": "7887:25:0" } - ], - "src": "12627:74:1" + ] + }, + "documentation": null, + "id": 397, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getComponents", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 356, + "nodeType": "ParameterList", + "parameters": [], + "src": "7608:2:0" }, "payable": false, "returnParameters": { - "id": 868, + "id": 360, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 867, + "id": 359, "name": "", "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12764:4:1", + "scope": 397, + "src": "7655:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { - "id": 866, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12764:4:1", + "baseType": { + "id": 357, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7655:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 358, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7655:9:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], - "src": "12763:6:1" + "src": "7654:11:0" }, - "scope": 980, - "src": "12606:230:1", - "stateMutability": "nonpayable", - "superFunction": 2652, + "scope": 498, + "src": "7586:333:0", + "stateMutability": "view", + "superFunction": null, "visibility": "public" }, { "body": { - "id": 890, + "id": 438, "nodeType": "Block", - "src": "13116:61:1", + "src": "8001:201:0", "statements": [ { - "expression": { + "assignments": [ + 406 + ], + "declarations": [ + { + "constant": false, + "id": 406, + "name": "units", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "8011:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 404, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8011:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 405, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8011:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 413, + "initialValue": { "argumentTypes": null, - "baseExpression": { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 410, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8044:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" + } + }, + "id": 411, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8044:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "8033:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8037:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 408, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8037:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8033:29:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8011:51:0" + }, + { + "body": { + "id": 434, + "nodeType": "Block", + "src": "8119:55:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 425, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 406, + "src": "8133:5:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 427, + "indexExpression": { + "argumentTypes": null, + "id": 426, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "8139:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8133:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 428, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8144:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" + } + }, + "id": 430, + "indexExpression": { + "argumentTypes": null, + "id": 429, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "8155:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8144:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Component_$45_storage", + "typeString": "struct SetToken.Component storage ref" + } + }, + "id": 431, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "unit_", + "nodeType": "MemberAccess", + "referencedDeclaration": 44, + "src": "8144:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8133:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 433, + "nodeType": "ExpressionStatement", + "src": "8133:30:0" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 884, - "name": "isComponent", + "id": 418, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "13133:11:1", + "referencedDeclaration": 415, + "src": "8091:1:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" + "typeIdentifier": "t_uint16", + "typeString": "uint16" } }, - "id": 888, - "indexExpression": { + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 886, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "13155:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 885, - "name": "keccak256", + "argumentTypes": null, + "id": 419, + "name": "components", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "13145:9:1", + "referencedDeclaration": 50, + "src": "8095:10:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" } }, - "id": 887, + "id": 420, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13145:24:1", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8095:17:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13133:37:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 883, - "id": 889, - "nodeType": "Return", - "src": "13126:44:1" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Private Function\n////////////////////////////////////////////////////////", - "id": 891, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "tokenIsComponent", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 880, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 879, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 891, - "src": "13031:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 878, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13031:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13021:37:1" - }, - "payable": false, - "returnParameters": { - "id": 883, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 891, - "src": "13106:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 881, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "13106:4:1", + "src": "8091:21:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "13105:6:1" - }, - "scope": 980, - "src": "12996:181:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 908, - "nodeType": "Block", - "src": "13329:69:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ + "id": 435, + "initializationExpression": { + "assignments": [ + 415 + ], + "declarations": [ { - "argumentTypes": null, - "id": 905, - "name": "componentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 893, - "src": "13376:14:1", + "constant": false, + "id": 415, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "8077:8:0", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 902, - "name": "naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "13359:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 900, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "13346:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 2110, - "src": "13346:12:1", + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 414, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "8077:6:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_uint16", + "typeString": "uint16" } }, - "id": 903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13346:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "value": null, + "visibility": "internal" + } + ], + "id": 417, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8088:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "id": 904, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8077:12:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 2096, - "src": "13346:29:1", + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "8114:3:0", + "subExpression": { + "argumentTypes": null, + "id": 422, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "8114:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13346:45:1", + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 424, + "nodeType": "ExpressionStatement", + "src": "8114:3:0" + }, + "nodeType": "ForStatement", + "src": "8072:102:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 436, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 406, + "src": "8190:5:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" } }, - "functionReturnParameters": 899, - "id": 907, + "functionReturnParameters": 402, + "id": 437, "nodeType": "Return", - "src": "13339:52:1" + "src": "8183:12:0" } ] }, "documentation": null, - "id": 909, + "id": 439, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "calculateTransferValue", + "name": "getUnits", "nodeType": "FunctionDefinition", "parameters": { - "id": 896, + "id": 398, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 893, - "name": "componentUnits", - "nodeType": "VariableDeclaration", - "scope": 909, - "src": "13224:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 892, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13224:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 895, - "name": "quantity", - "nodeType": "VariableDeclaration", - "scope": 909, - "src": "13253:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 894, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13253:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13214:58:1" + "parameters": [], + "src": "7942:2:0" }, "payable": false, "returnParameters": { - "id": 899, + "id": 402, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 898, + "id": 401, "name": "", "nodeType": "VariableDeclaration", - "scope": 909, - "src": "13319:4:1", + "scope": 439, + "src": "7989:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" }, "typeName": { - "id": 897, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13319:4:1", + "baseType": { + "id": 399, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7989:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 400, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7989:6:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" } }, "value": null, "visibility": "internal" } ], - "src": "13318:6:1" + "src": "7988:8:0" }, - "scope": 980, - "src": "13183:215:1", + "scope": 498, + "src": "7925:277:0", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 943, + "id": 457, "nodeType": "Block", - "src": "13468:182:1", + "src": "8407:51:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 914, - "name": "balances", + "id": 453, + "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13478:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 917, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 915, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13487:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13487:10:1", + "referencedDeclaration": 441, + "src": "8439:3:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13478:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 923, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "13526:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 918, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13501:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 921, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13510:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13510:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13501:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "13501:24:1", + { + "argumentTypes": null, + "id": 454, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 443, + "src": "8444:6:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13501:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13478:57:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 926, - "nodeType": "ExpressionStatement", - "src": "13478:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 927, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13545:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 930, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "13577:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 928, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13560:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "13560:16:1", + "argumentTypes": null, + "id": 451, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "8424:5:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_super$_SetToken_$498", + "typeString": "contract super SetToken" } }, - "id": 931, + "id": 452, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13560:26:1", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1052, + "src": "8424:14:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" } }, - "src": "13545:41:1", + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8424:27:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 450, + "id": 456, + "nodeType": "Return", + "src": "8417:34:0" + } + ] + }, + "documentation": null, + "id": 458, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 446, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 441, + "src": "8375:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 447, + "modifierName": { + "argumentTypes": null, + "id": 445, + "name": "isValidDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 142, + "src": "8356:18:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8356:23:0" + } + ], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 444, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 441, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "8291:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8291:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 443, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "8312:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 442, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8312:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 933, - "nodeType": "ExpressionStatement", - "src": "13545:41:1" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "8281:51:0" + }, + "payable": false, + "returnParameters": { + "id": 450, + "nodeType": "ParameterList", + "parameters": [ { - "eventCall": { + "constant": false, + "id": 449, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "8397:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 448, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8397:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8396:6:0" + }, + "scope": 498, + "src": "8264:194:0", + "stateMutability": "nonpayable", + "superFunction": 1052, + "visibility": "public" + }, + { + "body": { + "id": 479, + "nodeType": "Block", + "src": "8634:62:0", + "statements": [ + { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13618:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13610:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13610:10:1", + "id": 474, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 460, + "src": "8670:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24678,28 +12952,12 @@ }, { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 938, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13622:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13622:10:1", + "id": 475, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "8677:3:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24707,12 +12965,12 @@ }, { "argumentTypes": null, - "id": 940, - "name": "quantity", + "id": 476, + "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "13634:8:1", + "referencedDeclaration": 464, + "src": "8682:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24734,18 +12992,34 @@ "typeString": "uint256" } ], - "id": 934, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "13601:8:1", + "expression": { + "argumentTypes": null, + "id": 472, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "8651:5:0", + "typeDescriptions": { + "typeIdentifier": "t_super$_SetToken_$498", + "typeString": "contract super SetToken" + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1274, + "src": "8651:18:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" } }, - "id": 941, + "id": 477, "isConstant": false, "isLValue": false, "isPure": false, @@ -24753,37 +13027,124 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13601:42:1", + "src": "8651:38:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 942, - "nodeType": "EmitStatement", - "src": "13596:47:1" + "functionReturnParameters": 471, + "id": 478, + "nodeType": "Return", + "src": "8644:45:0" } ] }, "documentation": null, - "id": 944, + "id": 480, "implemented": true, "isConstructor": false, "isDeclaredConst": false, - "modifiers": [], - "name": "mint", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 467, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "8602:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 468, + "modifierName": { + "argumentTypes": null, + "id": 466, + "name": "isValidDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 142, + "src": "8583:18:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8583:23:0" + } + ], + "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 912, + "id": 465, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 911, - "name": "quantity", + "id": 460, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "8495:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8495:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 462, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "8518:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 461, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8518:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 464, + "name": "_value", "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13427:13:1", + "scope": 480, + "src": "8539:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24791,10 +13152,10 @@ "typeString": "uint256" }, "typeName": { - "id": 910, - "name": "uint", + "id": 463, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13427:4:1", + "src": "8539:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24804,286 +13165,159 @@ "visibility": "internal" } ], - "src": "13417:29:1" + "src": "8485:74:0" }, "payable": false, "returnParameters": { - "id": 913, + "id": 471, "nodeType": "ParameterList", - "parameters": [], - "src": "13468:0:1" + "parameters": [ + { + "constant": false, + "id": 470, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "8624:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 469, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8624:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8623:6:0" }, - "scope": 980, - "src": "13404:246:1", + "scope": 498, + "src": "8464:232:0", "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" + "superFunction": 1274, + "visibility": "public" }, { "body": { - "id": 978, + "id": 496, "nodeType": "Block", - "src": "13720:182:1", + "src": "8875:79:0", "statements": [ { "expression": { - "argumentTypes": null, - "id": 960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 949, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13730:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 952, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 950, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13739:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13739:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13730:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 958, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "13778:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 953, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13753:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 956, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 954, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13762:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13762:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13753:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "13753:24:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13753:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13730:57:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 961, - "nodeType": "ExpressionStatement", - "src": "13730:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 962, - "name": "totalSupply_", + "id": 487, + "name": "isComponent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13797:12:1", + "referencedDeclaration": 54, + "src": "8892:11:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 494, + "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 965, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "13829:8:1", + "arguments": [ + { + "argumentTypes": null, + "id": 491, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "8931:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 489, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "8914:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8914:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8914:31:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } ], - "expression": { - "argumentTypes": null, - "id": 963, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13812:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "13812:16:1", + "id": 488, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1430, + "src": "8904:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "id": 966, + "id": 493, "isConstant": false, "isLValue": false, "isPure": false, @@ -25091,237 +13325,123 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13812:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13797:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 968, - "nodeType": "ExpressionStatement", - "src": "13797:41:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 970, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13862:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13862:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13882:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 972, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13874:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13874:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 975, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "13886:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 969, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "13853:8:1", + "src": "8904:42:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 976, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13853:42:1", + "nodeType": "IndexAccess", + "src": "8892:55:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 977, - "nodeType": "EmitStatement", - "src": "13848:47:1" + "functionReturnParameters": 486, + "id": 495, + "nodeType": "Return", + "src": "8885:62:0" } ] }, "documentation": null, - "id": 979, + "id": 497, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "burn", + "name": "tokenIsComponent", "nodeType": "FunctionDefinition", "parameters": { - "id": 947, + "id": 483, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 946, - "name": "quantity", + "id": 482, + "name": "_tokenAddress", "nodeType": "VariableDeclaration", - "scope": 979, - "src": "13679:13:1", + "scope": 497, + "src": "8790:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 945, - "name": "uint", + "id": 481, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "13679:4:1", + "src": "8790:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "13669:29:1" + "src": "8780:37:0" }, "payable": false, "returnParameters": { - "id": 948, + "id": 486, "nodeType": "ParameterList", - "parameters": [], - "src": "13720:0:1" + "parameters": [ + { + "constant": false, + "id": 485, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 497, + "src": "8865:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 484, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8865:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8864:6:0" }, - "scope": 980, - "src": "13656:246:1", - "stateMutability": "nonpayable", + "scope": 498, + "src": "8755:199:0", + "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 981, - "src": "485:13419:1" + "scope": 499, + "src": "1039:7917:0" } ], - "src": "0:13905:1" + "src": "597:8360:0" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.606Z" + "updatedAt": "2018-07-07T15:28:53.730Z" } \ No newline at end of file diff --git a/artifacts/json/SetTokenFactory.json b/artifacts/json/SetTokenFactory.json index aa2947cc2..5e8d3a87b 100644 --- a/artifacts/json/SetTokenFactory.json +++ b/artifacts/json/SetTokenFactory.json @@ -5,7 +5,233 @@ "constant": false, "inputs": [ { - "name": "_tokens", + "name": "_authTarget", + "type": "address" + } + ], + "name": "addAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "authorities", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + } + ], + "name": "removeAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "removeAuthorizedAddressAtIndex", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "authorized", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAuthorizedAddresses", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "core", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "authAddress", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AddressAuthorized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "addressRemoved", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AuthorizedAddressRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_coreAddress", + "type": "address" + } + ], + "name": "setCoreAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_components", "type": "address[]" }, { @@ -15,9 +241,17 @@ { "name": "_naturalUnit", "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" } ], - "name": "createSet", + "name": "create", "outputs": [ { "name": "", @@ -29,63 +263,261 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50613dcc806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063821f91f414610046575b600080fd5b34801561005257600080fd5b506100f7600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610139565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000838383610146610206565b808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b83811015610190578082015181840152602081019050610175565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156101d25780820151818401526020810190506101b7565b5050505090500195505050505050604051809103906000f0801580156101fc573d6000803e3d6000fd5b5090509392505050565b604051613b8a8061021783390190560060806040523480156200001157600080fd5b5060405162003b8a38038062003b8a83398101806040526200003791908101906200069e565b6000806000602060405190810160405280600081525060206040519081016040528060008152506012826003908051906020019062000078929190620004a5565b50816004908051906020019062000091929190620004a5565b5080600560006101000a81548160ff021916908360ff16021790555050505083600081111515620000c157600080fd5b600087511115156200010a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001019062000915565b60405180910390fd5b6000865111151562000153576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014a9062000937565b60405180910390fd5b855187511415156200019c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001939062000959565b60405180910390fd5b84600681905550600093505b85518461ffff1610156200041657858461ffff16815181101515620001c957fe5b9060200190602002015192506000831115156200021d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200021490620008d1565b60405180910390fd5b868461ffff168151811015156200023057fe5b906020019060200201519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515620002b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002a890620008f3565b60405180910390fd5b620002cb8262000423640100000000026401000000009004565b151515620002d857600080fd5b60016008600084604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600760408051908101604052808473ffffffffffffffffffffffffffffffffffffffff168152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050508380600101945050620001a8565b5050505050505062000a25565b60006008600083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004e857805160ff191683800117855562000519565b8280016001018555821562000519579182015b8281111562000518578251825591602001919060010190620004fb565b5b5090506200052891906200052c565b5090565b6200055191905b808211156200054d57600081600090555060010162000533565b5090565b90565b6000620005628251620009fb565b905092915050565b600082601f83011215156200057e57600080fd5b8151620005956200058f82620009a9565b6200097b565b91508181835260208401935060208101905083856020840282011115620005bb57600080fd5b60005b83811015620005ef5781620005d4888262000554565b845260208401935060208301925050600181019050620005be565b5050505092915050565b600082601f83011215156200060d57600080fd5b8151620006246200061e82620009d2565b6200097b565b915081818352602084019350602081019050838560208402820111156200064a57600080fd5b60005b838110156200067e578162000663888262000688565b8452602084019350602083019250506001810190506200064d565b5050505092915050565b600062000696825162000a1b565b905092915050565b600080600060608486031215620006b457600080fd5b600084015167ffffffffffffffff811115620006cf57600080fd5b620006dd868287016200056a565b935050602084015167ffffffffffffffff811115620006fb57600080fd5b6200070986828701620005f9565b92505060406200071c8682870162000688565b9150509250925092565b6000602282527f556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a6560208301527f726f0000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602582527f436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616460208301527f64726573730000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602982527f436f6d706f6e656e74206c656e677468206e6565647320746f2062652067726560208301527f6174207468616e203000000000000000000000000000000000000000000000006040830152606082019050919050565b6000601c82527f556e697473206d7573742062652067726561746572207468616e2030000000006020830152604082019050919050565b6000602b82527f436f6d706f6e656e7420616e6420756e6974206c656e67746873206d7573742060208301527f6265207468652073616d650000000000000000000000000000000000000000006040830152606082019050919050565b60006020820190508181036000830152620008ec8162000726565b9050919050565b600060208201905081810360008301526200090e8162000783565b9050919050565b600060208201905081810360008301526200093081620007e0565b9050919050565b6000602082019050818103600083015262000952816200083d565b9050919050565b60006020820190508181036000830152620009748162000874565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156200099f57600080fd5b8060405250919050565b600067ffffffffffffffff821115620009c157600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115620009ea57600080fd5b602082029050602081019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6131558062000a356000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461011757806306fdde0314610142578063095ea7b31461016d57806315698812146101aa57806318160ddd146101e757806323b872dd14610212578063313ce5671461024f57806338c7db751461027a57806342a7cfd5146102b757806366188463146102e257806370a082311461031f57806395d89b411461035c57806399d50d5d14610387578063a9059cbb146103b2578063b5d65f61146103ef578063c5d574fe1461042c578063cc872b661461046a578063d73dd623146104a7578063db006a75146104e4578063dd62ed3e14610521575b600080fd5b34801561012357600080fd5b5061012c61055e565b6040516101399190612e8f565b60405180910390f35b34801561014e57600080fd5b5061015761060a565b6040516101649190612f02565b60405180910390f35b34801561017957600080fd5b50610194600480360361018f9190810190612a94565b6106a8565b6040516101a19190612eb1565b60405180910390f35b3480156101b657600080fd5b506101d160048036036101cc9190810190612af9565b61079a565b6040516101de9190612eb1565b60405180910390f35b3480156101f357600080fd5b506101fc610a32565b6040516102099190612f84565b60405180910390f35b34801561021e57600080fd5b5061023960048036036102349190810190612a45565b610a3c565b6040516102469190612eb1565b60405180910390f35b34801561025b57600080fd5b50610264610acb565b6040516102719190612fc8565b60405180910390f35b34801561028657600080fd5b506102a1600480360361029c9190810190612a09565b610ade565b6040516102ae9190612f84565b60405180910390f35b3480156102c357600080fd5b506102cc610be9565b6040516102d99190612f84565b60405180910390f35b3480156102ee57600080fd5b5061030960048036036103049190810190612a94565b610bef565b6040516103169190612eb1565b60405180910390f35b34801561032b57600080fd5b50610346600480360361034191908101906129e0565b610e80565b6040516103539190612f84565b60405180910390f35b34801561036857600080fd5b50610371610ec8565b60405161037e9190612f02565b60405180910390f35b34801561039357600080fd5b5061039c610f66565b6040516103a99190612e6d565b60405180910390f35b3480156103be57600080fd5b506103d960048036036103d49190810190612a94565b611060565b6040516103e69190612eb1565b60405180910390f35b3480156103fb57600080fd5b5061041660048036036104119190810190612b74565b6110ed565b6040516104239190612eb1565b60405180910390f35b34801561043857600080fd5b50610453600480360361044e9190810190612b22565b611622565b604051610461929190612e44565b60405180910390f35b34801561047657600080fd5b50610491600480360361048c9190810190612b22565b611675565b60405161049e9190612eb1565b60405180910390f35b3480156104b357600080fd5b506104ce60048036036104c99190810190612a94565b6119d7565b6040516104db9190612eb1565b60405180910390f35b3480156104f057600080fd5b5061050b60048036036105069190810190612b22565b611bd3565b6040516105189190612eb1565b60405180910390f35b34801561052d57600080fd5b5061054860048036036105439190810190612a09565b611fb8565b6040516105559190612f84565b60405180910390f35b60608060006007805490506040519080825280602002602001820160405280156105975781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156106025760078161ffff168154811015156105c357fe5b906000526020600020906002020160010154828261ffff168151811015156105e757fe5b9060200190602002018181525050808060010191505061059f565b819250505090565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107889190612f84565b60405180910390a36001905092915050565b600080600080600060010285600019161115156107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e390612f44565b60405180910390fd5b600092505b6007805490508361ffff1610156109d85760006001028360020a61ffff1660010286166000191611156109cb5760078361ffff1681548110151561083157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600960008461ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960008561ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161096d929190612e44565b602060405180830381600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109bf9190810190612ad0565b15156109ca57600080fd5b5b82806001019350506107f1565b3373ffffffffffffffffffffffffffffffffffffffff167f49e084e0b5b0bd93a9af05d1992881e35dee865cfbddbee0f1adea644fcaae1386604051610a1e9190612ecc565b60405180910390a260019350505050919050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a7b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ab657600080fd5b610ac185858561203f565b9150509392505050565b600560009054906101000a900460ff1681565b6000806000610aec856123f9565b1515610af757600080fd5b600090505b600780549050811015610b8e578473ffffffffffffffffffffffffffffffffffffffff16600782815481101515610b2f57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b81578091505b8080600101915050610afc565b6009600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505092915050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d00576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d94565b610d13838261247b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610e6d9190612f84565b60405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b505050505081565b6060806000600780549050604051908082528060200260200182016040528015610f9f5781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156110585760078161ffff16815481101515610fcb57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561100f57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610fa7565b819250505090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561109f57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156110da57600080fd5b6110e48484612494565b91505092915050565b60008060008060008660006006548281151561110557fe5b0614151561111257600080fd5b8760008111151561112257600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612f24565b60405180910390fd5b600060010289600019161115156111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612f64565b60405180910390fd5b6111fb8a6126b3565b600096505b6007805490508761ffff1610156115c15761123f60078861ffff1681548110151561122757fe5b9060005260206000209060020201600101548b6127ca565b955060006001028760020a61ffff166001028a166000191611156112c45785600960008961ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506115b4565b60078761ffff168154811015156112d757fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161135d9190612ee7565b602060405180830381600087803b15801561137757600080fd5b505af115801561138b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113af9190810190612b4b565b945060078761ffff168154811015156113c457fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33886040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161144c929190612e44565b602060405180830381600087803b15801561146657600080fd5b505af115801561147a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061149e9190810190612ad0565b15156114a957600080fd5b60078761ffff168154811015156114bc57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016115429190612ee7565b602060405180830381600087803b15801561155c57600080fd5b505af1158015611570573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115949190810190612b4b565b9350836115aa878761247b90919063ffffffff16565b1415156115b357fe5b5b8680600101975050611200565b3373ffffffffffffffffffffffffffffffffffffffff167f3d769c4a894e0b550ed0fa6c7342fa3c9261c59842db6606168cf3f3288eccfa8b8b604051611609929190612f9f565b60405180910390a2600197505050505050505092915050565b60078181548110151561163157fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60008060008060008060008760006006548281151561169057fe5b0614151561169d57600080fd5b886000811115156116ad57600080fd5b600097505b6007805490508861ffff16101561196f5760078861ffff168154811015156116d657fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16965060078861ffff1681548110151561171d57fe5b90600052602060002090600202016001015495508673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016117869190612ee7565b602060405180830381600087803b1580156117a057600080fd5b505af11580156117b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117d89190810190612b4b565b94506117e4868b6127ca565b93508673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161183f93929190612e0d565b602060405180830381600087803b15801561185957600080fd5b505af115801561186d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118919190810190612ad0565b151561189c57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016118f19190612ee7565b602060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119439190810190612b4b565b92508261195985876127fb90919063ffffffff16565b14151561196257fe5b87806001019850506116b2565b6119788a612817565b3373ffffffffffffffffffffffffffffffffffffffff167ffbd21f8762dc0c4fc0dbc03a2f816a0a617102a0f9d1908bbc09d377a0b9c6ab8b6040516119be9190612f84565b60405180910390a2600198505050505050505050919050565b6000611a6882600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051611bc19190612f84565b60405180910390a36001905092915050565b600080600080600080600087600060065482811515611bee57fe5b06141515611bfb57600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690612f24565b60405180910390fd5b89600081111515611c8f57600080fd5b611c988b6126b3565b600098505b6007805490508961ffff161015611f585760078961ffff16815481101515611cc157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16975060078961ffff16815481101515611d0857fe5b90600052602060002090600202016001015496508773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611d719190612ee7565b602060405180830381600087803b158015611d8b57600080fd5b505af1158015611d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dc39190810190612b4b565b9550611dcf878c6127ca565b94508773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611e28929190612e44565b602060405180830381600087803b158015611e4257600080fd5b505af1158015611e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e7a9190810190612ad0565b1515611e8557600080fd5b8773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611eda9190612ee7565b602060405180830381600087803b158015611ef457600080fd5b505af1158015611f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f2c9190810190612b4b565b935083611f42868861247b90919063ffffffff16565b141515611f4b57fe5b8880600101995050611c9d565b3373ffffffffffffffffffffffffffffffffffffffff167f2de3ebe1bb56079998f2617612ba527a2690a100757600dfc0d7253c808b74298c604051611f9e9190612f84565b60405180910390a260019950505050505050505050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561207c57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156120c957600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561215457600080fd5b6121a5826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612238826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123e69190612f84565b60405180910390a3600190509392505050565b60006008600083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b600082821115151561248957fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156124d157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561251e57600080fd5b61256f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612602826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126a19190612f84565b60405180910390a36001905092915050565b612704816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061275b8160015461247b90919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127bf9190612f84565b60405180910390a350565b60006127f3836127e56006548561292e90919063ffffffff16565b61294490919063ffffffff16565b905092915050565b6000818301905082811015151561280e57fe5b80905092915050565b612868816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128bf816001546127fb90919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129239190612f84565b60405180910390a350565b6000818381151561293b57fe5b04905092915050565b6000808314156129575760009050612976565b818302905081838281151561296857fe5b0414151561297257fe5b8090505b92915050565b60006129888235613085565b905092915050565b600061299c82516130a5565b905092915050565b60006129b082356130b1565b905092915050565b60006129c482356130bb565b905092915050565b60006129d882516130bb565b905092915050565b6000602082840312156129f257600080fd5b6000612a008482850161297c565b91505092915050565b60008060408385031215612a1c57600080fd5b6000612a2a8582860161297c565b9250506020612a3b8582860161297c565b9150509250929050565b600080600060608486031215612a5a57600080fd5b6000612a688682870161297c565b9350506020612a798682870161297c565b9250506040612a8a868287016129b8565b9150509250925092565b60008060408385031215612aa757600080fd5b6000612ab58582860161297c565b9250506020612ac6858286016129b8565b9150509250929050565b600060208284031215612ae257600080fd5b6000612af084828501612990565b91505092915050565b600060208284031215612b0b57600080fd5b6000612b19848285016129a4565b91505092915050565b600060208284031215612b3457600080fd5b6000612b42848285016129b8565b91505092915050565b600060208284031215612b5d57600080fd5b6000612b6b848285016129cc565b91505092915050565b60008060408385031215612b8757600080fd5b6000612b95858286016129b8565b9250506020612ba6858286016129a4565b9150509250929050565b612bb981613038565b82525050565b6000612bca82612ffd565b808452602084019350612bdc83612fe3565b60005b82811015612c0e57612bf2868351612bb0565b612bfb8261301e565b9150602086019550600181019050612bdf565b50849250505092915050565b6000612c2582613008565b808452602084019350612c3783612ff0565b60005b82811015612c6957612c4d868351612def565b612c568261302b565b9150602086019550600181019050612c3a565b50849250505092915050565b612c7e81613058565b82525050565b612c8d81613064565b82525050565b612c9c816130c5565b82525050565b6000612cad82613013565b808452612cc18160208601602086016130d7565b612cca8161310a565b602085010191505092915050565b6000602582527f5573657220646f6573206e6f7420686176652073756666696369656e7420626160208301527f6c616e63650000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602582527f436f6d706f6e656e747320746f2072656465656d206d757374206265206e6f6e60208301527f2d7a65726f0000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602482527f4578636c7564656420636f6d706f6e656e7473206d757374206265206e6f6e2d60208301527f7a65726f000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b612df88161306e565b82525050565b612e0781613078565b82525050565b6000606082019050612e226000830186612bb0565b612e2f6020830185612c93565b612e3c6040830184612def565b949350505050565b6000604082019050612e596000830185612bb0565b612e666020830184612def565b9392505050565b60006020820190508181036000830152612e878184612bbf565b905092915050565b60006020820190508181036000830152612ea98184612c1a565b905092915050565b6000602082019050612ec66000830184612c75565b92915050565b6000602082019050612ee16000830184612c84565b92915050565b6000602082019050612efc6000830184612c93565b92915050565b60006020820190508181036000830152612f1c8184612ca2565b905092915050565b60006020820190508181036000830152612f3d81612cd8565b9050919050565b60006020820190508181036000830152612f5d81612d35565b9050919050565b60006020820190508181036000830152612f7d81612d92565b9050919050565b6000602082019050612f996000830184612def565b92915050565b6000604082019050612fb46000830185612def565b612fc16020830184612c84565b9392505050565b6000602082019050612fdd6000830184612dfe565b92915050565b6000602082019050919050565b6000602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b60006130d082613038565b9050919050565b60005b838110156130f55780820151818401526020810190506130da565b83811115613104576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820805f242316e68b7836682369632fcea18dc45fcb1c42c4f40e6f3028e71265e36c6578706572696d656e74616cf50037a165627a7a723058202526523097d50161b9238adb58a3fda616af7fd21d7af0e6dc6169b35ed011400029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063821f91f414610046575b600080fd5b34801561005257600080fd5b506100f7600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610139565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000838383610146610206565b808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b83811015610190578082015181840152602081019050610175565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156101d25780820151818401526020810190506101b7565b5050505090500195505050505050604051809103906000f0801580156101fc573d6000803e3d6000fd5b5090509392505050565b604051613b8a8061021783390190560060806040523480156200001157600080fd5b5060405162003b8a38038062003b8a83398101806040526200003791908101906200069e565b6000806000602060405190810160405280600081525060206040519081016040528060008152506012826003908051906020019062000078929190620004a5565b50816004908051906020019062000091929190620004a5565b5080600560006101000a81548160ff021916908360ff16021790555050505083600081111515620000c157600080fd5b600087511115156200010a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001019062000915565b60405180910390fd5b6000865111151562000153576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014a9062000937565b60405180910390fd5b855187511415156200019c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001939062000959565b60405180910390fd5b84600681905550600093505b85518461ffff1610156200041657858461ffff16815181101515620001c957fe5b9060200190602002015192506000831115156200021d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200021490620008d1565b60405180910390fd5b868461ffff168151811015156200023057fe5b906020019060200201519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515620002b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002a890620008f3565b60405180910390fd5b620002cb8262000423640100000000026401000000009004565b151515620002d857600080fd5b60016008600084604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600760408051908101604052808473ffffffffffffffffffffffffffffffffffffffff168152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050508380600101945050620001a8565b5050505050505062000a25565b60006008600083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004e857805160ff191683800117855562000519565b8280016001018555821562000519579182015b8281111562000518578251825591602001919060010190620004fb565b5b5090506200052891906200052c565b5090565b6200055191905b808211156200054d57600081600090555060010162000533565b5090565b90565b6000620005628251620009fb565b905092915050565b600082601f83011215156200057e57600080fd5b8151620005956200058f82620009a9565b6200097b565b91508181835260208401935060208101905083856020840282011115620005bb57600080fd5b60005b83811015620005ef5781620005d4888262000554565b845260208401935060208301925050600181019050620005be565b5050505092915050565b600082601f83011215156200060d57600080fd5b8151620006246200061e82620009d2565b6200097b565b915081818352602084019350602081019050838560208402820111156200064a57600080fd5b60005b838110156200067e578162000663888262000688565b8452602084019350602083019250506001810190506200064d565b5050505092915050565b600062000696825162000a1b565b905092915050565b600080600060608486031215620006b457600080fd5b600084015167ffffffffffffffff811115620006cf57600080fd5b620006dd868287016200056a565b935050602084015167ffffffffffffffff811115620006fb57600080fd5b6200070986828701620005f9565b92505060406200071c8682870162000688565b9150509250925092565b6000602282527f556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a6560208301527f726f0000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602582527f436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616460208301527f64726573730000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602982527f436f6d706f6e656e74206c656e677468206e6565647320746f2062652067726560208301527f6174207468616e203000000000000000000000000000000000000000000000006040830152606082019050919050565b6000601c82527f556e697473206d7573742062652067726561746572207468616e2030000000006020830152604082019050919050565b6000602b82527f436f6d706f6e656e7420616e6420756e6974206c656e67746873206d7573742060208301527f6265207468652073616d650000000000000000000000000000000000000000006040830152606082019050919050565b60006020820190508181036000830152620008ec8162000726565b9050919050565b600060208201905081810360008301526200090e8162000783565b9050919050565b600060208201905081810360008301526200093081620007e0565b9050919050565b6000602082019050818103600083015262000952816200083d565b9050919050565b60006020820190508181036000830152620009748162000874565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156200099f57600080fd5b8060405250919050565b600067ffffffffffffffff821115620009c157600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115620009ea57600080fd5b602082029050602081019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6131558062000a356000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461011757806306fdde0314610142578063095ea7b31461016d57806315698812146101aa57806318160ddd146101e757806323b872dd14610212578063313ce5671461024f57806338c7db751461027a57806342a7cfd5146102b757806366188463146102e257806370a082311461031f57806395d89b411461035c57806399d50d5d14610387578063a9059cbb146103b2578063b5d65f61146103ef578063c5d574fe1461042c578063cc872b661461046a578063d73dd623146104a7578063db006a75146104e4578063dd62ed3e14610521575b600080fd5b34801561012357600080fd5b5061012c61055e565b6040516101399190612e8f565b60405180910390f35b34801561014e57600080fd5b5061015761060a565b6040516101649190612f02565b60405180910390f35b34801561017957600080fd5b50610194600480360361018f9190810190612a94565b6106a8565b6040516101a19190612eb1565b60405180910390f35b3480156101b657600080fd5b506101d160048036036101cc9190810190612af9565b61079a565b6040516101de9190612eb1565b60405180910390f35b3480156101f357600080fd5b506101fc610a32565b6040516102099190612f84565b60405180910390f35b34801561021e57600080fd5b5061023960048036036102349190810190612a45565b610a3c565b6040516102469190612eb1565b60405180910390f35b34801561025b57600080fd5b50610264610acb565b6040516102719190612fc8565b60405180910390f35b34801561028657600080fd5b506102a1600480360361029c9190810190612a09565b610ade565b6040516102ae9190612f84565b60405180910390f35b3480156102c357600080fd5b506102cc610be9565b6040516102d99190612f84565b60405180910390f35b3480156102ee57600080fd5b5061030960048036036103049190810190612a94565b610bef565b6040516103169190612eb1565b60405180910390f35b34801561032b57600080fd5b50610346600480360361034191908101906129e0565b610e80565b6040516103539190612f84565b60405180910390f35b34801561036857600080fd5b50610371610ec8565b60405161037e9190612f02565b60405180910390f35b34801561039357600080fd5b5061039c610f66565b6040516103a99190612e6d565b60405180910390f35b3480156103be57600080fd5b506103d960048036036103d49190810190612a94565b611060565b6040516103e69190612eb1565b60405180910390f35b3480156103fb57600080fd5b5061041660048036036104119190810190612b74565b6110ed565b6040516104239190612eb1565b60405180910390f35b34801561043857600080fd5b50610453600480360361044e9190810190612b22565b611622565b604051610461929190612e44565b60405180910390f35b34801561047657600080fd5b50610491600480360361048c9190810190612b22565b611675565b60405161049e9190612eb1565b60405180910390f35b3480156104b357600080fd5b506104ce60048036036104c99190810190612a94565b6119d7565b6040516104db9190612eb1565b60405180910390f35b3480156104f057600080fd5b5061050b60048036036105069190810190612b22565b611bd3565b6040516105189190612eb1565b60405180910390f35b34801561052d57600080fd5b5061054860048036036105439190810190612a09565b611fb8565b6040516105559190612f84565b60405180910390f35b60608060006007805490506040519080825280602002602001820160405280156105975781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156106025760078161ffff168154811015156105c357fe5b906000526020600020906002020160010154828261ffff168151811015156105e757fe5b9060200190602002018181525050808060010191505061059f565b819250505090565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107889190612f84565b60405180910390a36001905092915050565b600080600080600060010285600019161115156107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e390612f44565b60405180910390fd5b600092505b6007805490508361ffff1610156109d85760006001028360020a61ffff1660010286166000191611156109cb5760078361ffff1681548110151561083157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600960008461ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960008561ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161096d929190612e44565b602060405180830381600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109bf9190810190612ad0565b15156109ca57600080fd5b5b82806001019350506107f1565b3373ffffffffffffffffffffffffffffffffffffffff167f49e084e0b5b0bd93a9af05d1992881e35dee865cfbddbee0f1adea644fcaae1386604051610a1e9190612ecc565b60405180910390a260019350505050919050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a7b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ab657600080fd5b610ac185858561203f565b9150509392505050565b600560009054906101000a900460ff1681565b6000806000610aec856123f9565b1515610af757600080fd5b600090505b600780549050811015610b8e578473ffffffffffffffffffffffffffffffffffffffff16600782815481101515610b2f57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b81578091505b8080600101915050610afc565b6009600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505092915050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d00576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d94565b610d13838261247b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610e6d9190612f84565b60405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b505050505081565b6060806000600780549050604051908082528060200260200182016040528015610f9f5781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156110585760078161ffff16815481101515610fcb57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561100f57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610fa7565b819250505090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561109f57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156110da57600080fd5b6110e48484612494565b91505092915050565b60008060008060008660006006548281151561110557fe5b0614151561111257600080fd5b8760008111151561112257600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612f24565b60405180910390fd5b600060010289600019161115156111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612f64565b60405180910390fd5b6111fb8a6126b3565b600096505b6007805490508761ffff1610156115c15761123f60078861ffff1681548110151561122757fe5b9060005260206000209060020201600101548b6127ca565b955060006001028760020a61ffff166001028a166000191611156112c45785600960008961ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506115b4565b60078761ffff168154811015156112d757fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161135d9190612ee7565b602060405180830381600087803b15801561137757600080fd5b505af115801561138b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113af9190810190612b4b565b945060078761ffff168154811015156113c457fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33886040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161144c929190612e44565b602060405180830381600087803b15801561146657600080fd5b505af115801561147a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061149e9190810190612ad0565b15156114a957600080fd5b60078761ffff168154811015156114bc57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016115429190612ee7565b602060405180830381600087803b15801561155c57600080fd5b505af1158015611570573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115949190810190612b4b565b9350836115aa878761247b90919063ffffffff16565b1415156115b357fe5b5b8680600101975050611200565b3373ffffffffffffffffffffffffffffffffffffffff167f3d769c4a894e0b550ed0fa6c7342fa3c9261c59842db6606168cf3f3288eccfa8b8b604051611609929190612f9f565b60405180910390a2600197505050505050505092915050565b60078181548110151561163157fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60008060008060008060008760006006548281151561169057fe5b0614151561169d57600080fd5b886000811115156116ad57600080fd5b600097505b6007805490508861ffff16101561196f5760078861ffff168154811015156116d657fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16965060078861ffff1681548110151561171d57fe5b90600052602060002090600202016001015495508673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016117869190612ee7565b602060405180830381600087803b1580156117a057600080fd5b505af11580156117b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117d89190810190612b4b565b94506117e4868b6127ca565b93508673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161183f93929190612e0d565b602060405180830381600087803b15801561185957600080fd5b505af115801561186d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118919190810190612ad0565b151561189c57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016118f19190612ee7565b602060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119439190810190612b4b565b92508261195985876127fb90919063ffffffff16565b14151561196257fe5b87806001019850506116b2565b6119788a612817565b3373ffffffffffffffffffffffffffffffffffffffff167ffbd21f8762dc0c4fc0dbc03a2f816a0a617102a0f9d1908bbc09d377a0b9c6ab8b6040516119be9190612f84565b60405180910390a2600198505050505050505050919050565b6000611a6882600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051611bc19190612f84565b60405180910390a36001905092915050565b600080600080600080600087600060065482811515611bee57fe5b06141515611bfb57600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690612f24565b60405180910390fd5b89600081111515611c8f57600080fd5b611c988b6126b3565b600098505b6007805490508961ffff161015611f585760078961ffff16815481101515611cc157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16975060078961ffff16815481101515611d0857fe5b90600052602060002090600202016001015496508773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611d719190612ee7565b602060405180830381600087803b158015611d8b57600080fd5b505af1158015611d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dc39190810190612b4b565b9550611dcf878c6127ca565b94508773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611e28929190612e44565b602060405180830381600087803b158015611e4257600080fd5b505af1158015611e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e7a9190810190612ad0565b1515611e8557600080fd5b8773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611eda9190612ee7565b602060405180830381600087803b158015611ef457600080fd5b505af1158015611f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f2c9190810190612b4b565b935083611f42868861247b90919063ffffffff16565b141515611f4b57fe5b8880600101995050611c9d565b3373ffffffffffffffffffffffffffffffffffffffff167f2de3ebe1bb56079998f2617612ba527a2690a100757600dfc0d7253c808b74298c604051611f9e9190612f84565b60405180910390a260019950505050505050505050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561207c57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156120c957600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561215457600080fd5b6121a5826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612238826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123e69190612f84565b60405180910390a3600190509392505050565b60006008600083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b600082821115151561248957fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156124d157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561251e57600080fd5b61256f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612602826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126a19190612f84565b60405180910390a36001905092915050565b612704816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061275b8160015461247b90919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127bf9190612f84565b60405180910390a350565b60006127f3836127e56006548561292e90919063ffffffff16565b61294490919063ffffffff16565b905092915050565b6000818301905082811015151561280e57fe5b80905092915050565b612868816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128bf816001546127fb90919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129239190612f84565b60405180910390a350565b6000818381151561293b57fe5b04905092915050565b6000808314156129575760009050612976565b818302905081838281151561296857fe5b0414151561297257fe5b8090505b92915050565b60006129888235613085565b905092915050565b600061299c82516130a5565b905092915050565b60006129b082356130b1565b905092915050565b60006129c482356130bb565b905092915050565b60006129d882516130bb565b905092915050565b6000602082840312156129f257600080fd5b6000612a008482850161297c565b91505092915050565b60008060408385031215612a1c57600080fd5b6000612a2a8582860161297c565b9250506020612a3b8582860161297c565b9150509250929050565b600080600060608486031215612a5a57600080fd5b6000612a688682870161297c565b9350506020612a798682870161297c565b9250506040612a8a868287016129b8565b9150509250925092565b60008060408385031215612aa757600080fd5b6000612ab58582860161297c565b9250506020612ac6858286016129b8565b9150509250929050565b600060208284031215612ae257600080fd5b6000612af084828501612990565b91505092915050565b600060208284031215612b0b57600080fd5b6000612b19848285016129a4565b91505092915050565b600060208284031215612b3457600080fd5b6000612b42848285016129b8565b91505092915050565b600060208284031215612b5d57600080fd5b6000612b6b848285016129cc565b91505092915050565b60008060408385031215612b8757600080fd5b6000612b95858286016129b8565b9250506020612ba6858286016129a4565b9150509250929050565b612bb981613038565b82525050565b6000612bca82612ffd565b808452602084019350612bdc83612fe3565b60005b82811015612c0e57612bf2868351612bb0565b612bfb8261301e565b9150602086019550600181019050612bdf565b50849250505092915050565b6000612c2582613008565b808452602084019350612c3783612ff0565b60005b82811015612c6957612c4d868351612def565b612c568261302b565b9150602086019550600181019050612c3a565b50849250505092915050565b612c7e81613058565b82525050565b612c8d81613064565b82525050565b612c9c816130c5565b82525050565b6000612cad82613013565b808452612cc18160208601602086016130d7565b612cca8161310a565b602085010191505092915050565b6000602582527f5573657220646f6573206e6f7420686176652073756666696369656e7420626160208301527f6c616e63650000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602582527f436f6d706f6e656e747320746f2072656465656d206d757374206265206e6f6e60208301527f2d7a65726f0000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602482527f4578636c7564656420636f6d706f6e656e7473206d757374206265206e6f6e2d60208301527f7a65726f000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b612df88161306e565b82525050565b612e0781613078565b82525050565b6000606082019050612e226000830186612bb0565b612e2f6020830185612c93565b612e3c6040830184612def565b949350505050565b6000604082019050612e596000830185612bb0565b612e666020830184612def565b9392505050565b60006020820190508181036000830152612e878184612bbf565b905092915050565b60006020820190508181036000830152612ea98184612c1a565b905092915050565b6000602082019050612ec66000830184612c75565b92915050565b6000602082019050612ee16000830184612c84565b92915050565b6000602082019050612efc6000830184612c93565b92915050565b60006020820190508181036000830152612f1c8184612ca2565b905092915050565b60006020820190508181036000830152612f3d81612cd8565b9050919050565b60006020820190508181036000830152612f5d81612d35565b9050919050565b60006020820190508181036000830152612f7d81612d92565b9050919050565b6000602082019050612f996000830184612def565b92915050565b6000604082019050612fb46000830185612def565b612fc16020830184612c84565b9392505050565b6000602082019050612fdd6000830184612dfe565b92915050565b6000602082019050919050565b6000602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b60006130d082613038565b9050919050565b60005b838110156130f55780820151818401526020810190506130da565b83811115613104576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820805f242316e68b7836682369632fcea18dc45fcb1c42c4f40e6f3028e71265e36c6578706572696d656e74616cf50037a165627a7a723058202526523097d50161b9238adb58a3fda616af7fd21d7af0e6dc6169b35ed011400029", - "sourceMap": "52:257:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;52:257:2;;;;;;;", - "deployedSourceMap": "52:257:2:-;;;;;;;;;;;;;;;;;;;;;;;;83:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;83:224:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;226:7;270;279:6;287:12;257:43;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;257:43:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;257:43:2;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;257:43:2;250:50;;83:224;;;;;:::o;52:257::-;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.23;\n\nimport \"./SetToken.sol\";\n\n\ncontract SetTokenFactory {\n function createSet(\n address[] _tokens,\n uint[] _units,\n uint _naturalUnit\n ) \n public\n returns\n (address) \n {\n return new SetToken(_tokens, _units, _naturalUnit);\n }\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetTokenFactory.sol", + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613ec0806100536000396000f300608060405260043610620000c7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063110a25c214620000cc57806342f1181e146200019c578063494503d414620001e2578063707129391462000252578063715018a614620002985780638da5cb5b14620002b257806391aad239146200030c5780639ad267441462000352578063b918161114620003a2578063d39de6e91462000400578063f2f4eb261462000471578063f2fde38b14620004cb575b600080fd5b348015620000d957600080fd5b506200015a6004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035906020019092919080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505062000511565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620001a957600080fd5b50620001e0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000617565b005b348015620001ef57600080fd5b50620002106004803603810190808035906020019092919050505062000905565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200025f57600080fd5b5062000296600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000944565b005b348015620002a557600080fd5b50620002b062000d12565b005b348015620002bf57600080fd5b50620002ca62000e15565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200031957600080fd5b5062000350600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000e3a565b005b3480156200035f57600080fd5b50620003a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062000eda565b005b348015620003af57600080fd5b50620003e6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200133e565b604051808215151515815260200191505060405180910390f35b3480156200040d57600080fd5b50620004186200135e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156200045d57808201518184015260208101905062000440565b505050509050019250505060405180910390f35b3480156200047e57600080fd5b5062000489620013ee565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620004d857600080fd5b506200050f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001414565b005b6000308a8a8a8a8a8a8a8a8a6200052762001579565b808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509e505050505050505050505050505050604051809103906000f08015801562000607573d6000803e3d6000fd5b5090509998505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200067357600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e0000000000000000000000000000000000000000000000000000815250901515620007ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200078e57808201518184015260208101905062000771565b50505050905090810190601f168015620007bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b6002818154811015156200091557fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620009a257600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e00000000000000000000000000000000000000000000000000000000000081525090151562000af8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000abc57808201518184015260208101905062000a9f565b50505050905090810190601f16801562000aea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b60028054905081101562000d0e578173ffffffffffffffffffffffffffffffffffffffff1660028281548110151562000b8257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141562000d0057600260016002805490500381548110151562000be257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660028281548110151562000c1d57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160028181805490500391508162000c7f91906200158a565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a262000d0e565b808060010191505062000b4d565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000d6e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000e9657600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000f3657600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e0000000000000000000000000000000000000000000000000081525090151562001047576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200100b57808201518184015260208101905062000fee565b50505050905090810190601f168015620010395780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff166002828154811015156200106f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e00000000000000000000000000000000000000815250901515620011ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200117e57808201518184015260208101905062001161565b50505050905090810190601f168015620011ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560026001600280549050038154811015156200122257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002828154811015156200125d57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081620012bf91906200158a565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b60606002805480602002602001604051908101604052809291908181526020018280548015620013e457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162001399575b5050505050905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200147057600080fd5b6200147b816200147e565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515620014bb57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040516128b380620015e283390190565b815481835581811115620015b457818360005260206000209182019101620015b39190620015b9565b5b505050565b620015de91905b80821115620015da576000816000905550600101620015c0565b5090565b90560060806040523480156200001157600080fd5b50604051620028b3380380620028b383398101806040528101908080519060200190929190805182019291906020018051820192919060200180519060200190929190805182019291906020018051820192919050505060008060008060008686601282600390805190602001906200008c929190620007f9565b508160049080519060200190620000a5929190620007f9565b5080600560006101000a81548160ff021916908360ff16021790555050505060129450600092505b88518361ffff161015620006b057888361ffff16815181101515620000ee57fe5b90602001906020020151915060008211606060405190810160405280602381526020017f556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a6581526020017f726f2e000000000000000000000000000000000000000000000000000000000081525090151562000207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620001cb578082015181840152602081019050620001ae565b50505050905090810190601f168015620001f95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50898361ffff168151811015156200021b57fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415606060405190810160405280602681526020017f436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616481526020017f64726573732e000000000000000000000000000000000000000000000000000081525090151562000361576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200032557808201518184015260208101905062000308565b50505050905090810190601f168015620003535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508073ffffffffffffffffffffffffffffffffffffffff1660405180807f646563696d616c73282900000000000000000000000000000000000000000000815250600a01905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016000604051808303816000875af19250505015620004d8578073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200047a57600080fd5b505af11580156200048f573d6000803e3d6000fd5b505050506040513d6020811015620004a657600080fd5b810190808051906020019092919050505093508460ff168460ff1610620004ce5784620004d0565b835b9450620004dd565b600094505b620004f78162000709640100000000026401000000009004565b1515156200050457600080fd5b60016008600083604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b6020831015156200059c578051825260208201915060208101905060208303925062000575565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600760408051908101604052808373ffffffffffffffffffffffffffffffffffffffff168152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050508280600101935050620000cd565b8a600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550876006819055505050505050505050505050620008a8565b60006008600083604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b602083101515620007a157805182526020820191506020810190506020830392506200077a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200083c57805160ff19168380011785556200086d565b828001600101855582156200086d579182015b828111156200086c5782518255916020019190600101906200084f565b5b5090506200087c919062000880565b5090565b620008a591905b80821115620008a157600081600090555060010162000887565b5090565b90565b611ffb80620008b86000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461010157806306fdde031461016d578063095ea7b3146101fd57806318160ddd1461026257806323b872dd1461028d578063313ce5671461031257806340c10f191461034357806342a7cfd51461039057806366188463146103bb57806370a082311461042057806395d89b411461047757806399d50d5d146105075780639dc29fac14610573578063a9059cbb146105c0578063c45a015514610625578063c5d574fe1461067c578063d73dd623146106f0578063dd62ed3e14610755575b600080fd5b34801561010d57600080fd5b506101166107cc565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561015957808201518184015260208101905061013e565b505050509050019250505060405180910390f35b34801561017957600080fd5b50610182610878565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020957600080fd5b50610248600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610916565b604051808215151515815260200191505060405180910390f35b34801561026e57600080fd5b50610277610a08565b6040518082815260200191505060405180910390f35b34801561029957600080fd5b506102f8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a12565b604051808215151515815260200191505060405180910390f35b34801561031e57600080fd5b50610327610aa1565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034f57600080fd5b5061038e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ab4565b005b34801561039c57600080fd5b506103a5610d5b565b6040518082815260200191505060405180910390f35b3480156103c757600080fd5b50610406600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d61565b604051808215151515815260200191505060405180910390f35b34801561042c57600080fd5b50610461600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff2565b6040518082815260200191505060405180910390f35b34801561048357600080fd5b5061048c61103a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104cc5780820151818401526020810190506104b1565b50505050905090810190601f1680156104f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051357600080fd5b5061051c6110d8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561055f578082015181840152602081019050610544565b505050509050019250505060405180910390f35b34801561057f57600080fd5b506105be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d2565b005b3480156105cc57600080fd5b5061060b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611638565b604051808215151515815260200191505060405180910390f35b34801561063157600080fd5b5061063a6116c5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068857600080fd5b506106a7600480360381019080803590602001909291905050506116eb565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b3480156106fc57600080fd5b5061073b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061173e565b604051808215151515815260200191505060405180910390f35b34801561076157600080fd5b506107b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061193a565b6040518082815260200191505060405180910390f35b60608060006007805490506040519080825280602002602001820160405280156108055781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156108705760078161ffff1681548110151561083157fe5b906000526020600020906002020160010154828261ffff1681518110151561085557fe5b9060200190602002018181525050808060010191505061080d565b819250505090565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561090e5780601f106108e35761010080835404028352916020019161090e565b820191906000526020600020905b8154815290600101906020018083116108f157829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a5157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a8c57600080fd5b610a978585856119c1565b9150509392505050565b600560009054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b3a57600080fd5b505af1158015610b4e573d6000803e3d6000fd5b505050506040513d6020811015610b6457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e000000000000000000000000000000815250901515610ca8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c6d578082015181840152602081019050610c52565b50505050905090810190601f168015610c9a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610cfa816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d5181600154611d7b90919063ffffffff16565b6001819055505050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610e72576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f06565b610e858382611d9790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110d05780601f106110a5576101008083540402835291602001916110d0565b820191906000526020600020905b8154815290600101906020018083116110b357829003601f168201915b505050505081565b60608060006007805490506040519080825280602002602001820160405280156111115781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156111ca5760078161ffff1681548110151561113d57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561118157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050611119565b819250505090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e0000000000000000000000000000008152509015156113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561138b578082015181840152602081019050611370565b50505050905090810190601f1680156113b85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e00000000000000000000000000000000000000000000000000000000008152509015156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561149657808201518184015260208101905061147b565b50505050905090810190601f1680156114c35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561151f57600080fd5b611570826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115c782600154611d9790919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561167757600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116b257600080fd5b6116bc8484611db0565b91505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007818154811015156116fa57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60006117cf82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156119fe57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611a4b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611ad657600080fd5b611b27826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bba826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c8b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008183019050828110151515611d8e57fe5b80905092915050565b6000828211151515611da557fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ded57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611e3a57600080fd5b611e8b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820df41b023d91b0489bc8d71be113287d3f5667870ed67e9fbf04ae6e2505c0b790029a165627a7a7230582060c6b3174b65279f38f3ea5ad8cd6119b5731ecba9ac259789b81fe7c0fb519c0029", + "deployedBytecode": "0x608060405260043610620000c7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063110a25c214620000cc57806342f1181e146200019c578063494503d414620001e2578063707129391462000252578063715018a614620002985780638da5cb5b14620002b257806391aad239146200030c5780639ad267441462000352578063b918161114620003a2578063d39de6e91462000400578063f2f4eb261462000471578063f2fde38b14620004cb575b600080fd5b348015620000d957600080fd5b506200015a6004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035906020019092919080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505062000511565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620001a957600080fd5b50620001e0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000617565b005b348015620001ef57600080fd5b50620002106004803603810190808035906020019092919050505062000905565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200025f57600080fd5b5062000296600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000944565b005b348015620002a557600080fd5b50620002b062000d12565b005b348015620002bf57600080fd5b50620002ca62000e15565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200031957600080fd5b5062000350600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000e3a565b005b3480156200035f57600080fd5b50620003a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062000eda565b005b348015620003af57600080fd5b50620003e6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200133e565b604051808215151515815260200191505060405180910390f35b3480156200040d57600080fd5b50620004186200135e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156200045d57808201518184015260208101905062000440565b505050509050019250505060405180910390f35b3480156200047e57600080fd5b5062000489620013ee565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620004d857600080fd5b506200050f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001414565b005b6000308a8a8a8a8a8a8a8a8a6200052762001579565b808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509e505050505050505050505050505050604051809103906000f08015801562000607573d6000803e3d6000fd5b5090509998505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200067357600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e0000000000000000000000000000000000000000000000000000815250901515620007ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200078e57808201518184015260208101905062000771565b50505050905090810190601f168015620007bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b6002818154811015156200091557fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620009a257600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e00000000000000000000000000000000000000000000000000000000000081525090151562000af8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000abc57808201518184015260208101905062000a9f565b50505050905090810190601f16801562000aea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b60028054905081101562000d0e578173ffffffffffffffffffffffffffffffffffffffff1660028281548110151562000b8257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141562000d0057600260016002805490500381548110151562000be257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660028281548110151562000c1d57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160028181805490500391508162000c7f91906200158a565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a262000d0e565b808060010191505062000b4d565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000d6e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000e9657600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000f3657600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e0000000000000000000000000000000000000000000000000081525090151562001047576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200100b57808201518184015260208101905062000fee565b50505050905090810190601f168015620010395780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff166002828154811015156200106f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e00000000000000000000000000000000000000815250901515620011ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200117e57808201518184015260208101905062001161565b50505050905090810190601f168015620011ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560026001600280549050038154811015156200122257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002828154811015156200125d57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081620012bf91906200158a565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b60606002805480602002602001604051908101604052809291908181526020018280548015620013e457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162001399575b5050505050905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200147057600080fd5b6200147b816200147e565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515620014bb57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040516128b380620015e283390190565b815481835581811115620015b457818360005260206000209182019101620015b39190620015b9565b5b505050565b620015de91905b80821115620015da576000816000905550600101620015c0565b5090565b90560060806040523480156200001157600080fd5b50604051620028b3380380620028b383398101806040528101908080519060200190929190805182019291906020018051820192919060200180519060200190929190805182019291906020018051820192919050505060008060008060008686601282600390805190602001906200008c929190620007f9565b508160049080519060200190620000a5929190620007f9565b5080600560006101000a81548160ff021916908360ff16021790555050505060129450600092505b88518361ffff161015620006b057888361ffff16815181101515620000ee57fe5b90602001906020020151915060008211606060405190810160405280602381526020017f556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a6581526020017f726f2e000000000000000000000000000000000000000000000000000000000081525090151562000207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620001cb578082015181840152602081019050620001ae565b50505050905090810190601f168015620001f95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50898361ffff168151811015156200021b57fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415606060405190810160405280602681526020017f436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616481526020017f64726573732e000000000000000000000000000000000000000000000000000081525090151562000361576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200032557808201518184015260208101905062000308565b50505050905090810190601f168015620003535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508073ffffffffffffffffffffffffffffffffffffffff1660405180807f646563696d616c73282900000000000000000000000000000000000000000000815250600a01905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016000604051808303816000875af19250505015620004d8578073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200047a57600080fd5b505af11580156200048f573d6000803e3d6000fd5b505050506040513d6020811015620004a657600080fd5b810190808051906020019092919050505093508460ff168460ff1610620004ce5784620004d0565b835b9450620004dd565b600094505b620004f78162000709640100000000026401000000009004565b1515156200050457600080fd5b60016008600083604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b6020831015156200059c578051825260208201915060208101905060208303925062000575565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600760408051908101604052808373ffffffffffffffffffffffffffffffffffffffff168152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050508280600101935050620000cd565b8a600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550876006819055505050505050505050505050620008a8565b60006008600083604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b602083101515620007a157805182526020820191506020810190506020830392506200077a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200083c57805160ff19168380011785556200086d565b828001600101855582156200086d579182015b828111156200086c5782518255916020019190600101906200084f565b5b5090506200087c919062000880565b5090565b620008a591905b80821115620008a157600081600090555060010162000887565b5090565b90565b611ffb80620008b86000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461010157806306fdde031461016d578063095ea7b3146101fd57806318160ddd1461026257806323b872dd1461028d578063313ce5671461031257806340c10f191461034357806342a7cfd51461039057806366188463146103bb57806370a082311461042057806395d89b411461047757806399d50d5d146105075780639dc29fac14610573578063a9059cbb146105c0578063c45a015514610625578063c5d574fe1461067c578063d73dd623146106f0578063dd62ed3e14610755575b600080fd5b34801561010d57600080fd5b506101166107cc565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561015957808201518184015260208101905061013e565b505050509050019250505060405180910390f35b34801561017957600080fd5b50610182610878565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020957600080fd5b50610248600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610916565b604051808215151515815260200191505060405180910390f35b34801561026e57600080fd5b50610277610a08565b6040518082815260200191505060405180910390f35b34801561029957600080fd5b506102f8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a12565b604051808215151515815260200191505060405180910390f35b34801561031e57600080fd5b50610327610aa1565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034f57600080fd5b5061038e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ab4565b005b34801561039c57600080fd5b506103a5610d5b565b6040518082815260200191505060405180910390f35b3480156103c757600080fd5b50610406600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d61565b604051808215151515815260200191505060405180910390f35b34801561042c57600080fd5b50610461600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff2565b6040518082815260200191505060405180910390f35b34801561048357600080fd5b5061048c61103a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104cc5780820151818401526020810190506104b1565b50505050905090810190601f1680156104f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051357600080fd5b5061051c6110d8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561055f578082015181840152602081019050610544565b505050509050019250505060405180910390f35b34801561057f57600080fd5b506105be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d2565b005b3480156105cc57600080fd5b5061060b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611638565b604051808215151515815260200191505060405180910390f35b34801561063157600080fd5b5061063a6116c5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068857600080fd5b506106a7600480360381019080803590602001909291905050506116eb565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b3480156106fc57600080fd5b5061073b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061173e565b604051808215151515815260200191505060405180910390f35b34801561076157600080fd5b506107b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061193a565b6040518082815260200191505060405180910390f35b60608060006007805490506040519080825280602002602001820160405280156108055781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156108705760078161ffff1681548110151561083157fe5b906000526020600020906002020160010154828261ffff1681518110151561085557fe5b9060200190602002018181525050808060010191505061080d565b819250505090565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561090e5780601f106108e35761010080835404028352916020019161090e565b820191906000526020600020905b8154815290600101906020018083116108f157829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a5157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a8c57600080fd5b610a978585856119c1565b9150509392505050565b600560009054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b3a57600080fd5b505af1158015610b4e573d6000803e3d6000fd5b505050506040513d6020811015610b6457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e000000000000000000000000000000815250901515610ca8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c6d578082015181840152602081019050610c52565b50505050905090810190601f168015610c9a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610cfa816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d5181600154611d7b90919063ffffffff16565b6001819055505050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610e72576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f06565b610e858382611d9790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110d05780601f106110a5576101008083540402835291602001916110d0565b820191906000526020600020905b8154815290600101906020018083116110b357829003601f168201915b505050505081565b60608060006007805490506040519080825280602002602001820160405280156111115781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156111ca5760078161ffff1681548110151561113d57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561118157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050611119565b819250505090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e0000000000000000000000000000008152509015156113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561138b578082015181840152602081019050611370565b50505050905090810190601f1680156113b85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e00000000000000000000000000000000000000000000000000000000008152509015156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561149657808201518184015260208101905061147b565b50505050905090810190601f1680156114c35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561151f57600080fd5b611570826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115c782600154611d9790919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561167757600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116b257600080fd5b6116bc8484611db0565b91505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007818154811015156116fa57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60006117cf82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156119fe57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611a4b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611ad657600080fd5b611b27826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bba826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c8b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008183019050828110151515611d8e57fe5b80905092915050565b6000828211151515611da557fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ded57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611e3a57600080fd5b611e8b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820df41b023d91b0489bc8d71be113287d3f5667870ed67e9fbf04ae6e2505c0b790029a165627a7a7230582060c6b3174b65279f38f3ea5ad8cd6119b5731ecba9ac259789b81fe7c0fb519c0029", + "sourceMap": "961:1592:1:-;;;575:10:5;567:5;;:18;;;;;;;;;;;;;;;;;;961:1592:1;;;;;;", + "deployedSourceMap": "961:1592:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2228:323;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2228:323:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2599:558:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2599:558:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;1721:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1721:28:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3324:980;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3324:980:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:5;;;;;;238:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:5;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:199:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1392:199:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;4571:939:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4571:939:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1634:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1634:43:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5620:186:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5620:186:3;;;;;;;;;;;;;;;;;1099:19:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1099:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;2228:323:1;2445:7;2488:4;2494:11;;2507:6;;2515:12;2529:5;;2536:7;;2475:69;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2475:69:1;2468:76;;2228:323;;;;;;;;;;;:::o;2599:558:3:-;719:5:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2779:10:3;:23;2790:11;2779:23;;;;;;;;;;;;;;;;;;;;;;;;;2778:24;2816:25;;;;;;;;;;;;;;;;;;;;;;;2757:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2757:94:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2929:4;2903:10;:23;2914:11;2903:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;2988:11;3005;2988:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2988:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3105:11;3074:76;;;3130:10;3074:76;;;;;;;;;;;;;;;;;;;;;;2599:558;:::o;1721:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3324:980::-;3664:6;719:5:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;3489:10:3;:23;3500:11;3489:23;;;;;;;;;;;;;;;;;;;;;;;;;3526:21;;;;;;;;;;;;;;;;;;;;;;;3468:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3468:89:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3625:10;:23;3636:11;3625:23;;;;;;;;;;;;;;;;3618:30;;;;;;;;;;;3673:1;3664:10;;3659:639;3680:11;:18;;;;3676:1;:22;3659:639;;;3812:11;3794:29;;:11;3806:1;3794:14;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;3790:498;;;3938:11;3971:1;3950:11;:18;;;;:22;3938:35;;;;;;;;;;;;;;;;;;;;;;;;;;;3921:11;3933:1;3921:14;;;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;4062:1;4040:11;:23;;;;;;;;;;;;;;:::i;:::-;;4189:11;4143:107;;;4222:10;4143:107;;;;;;;;;;;;;;;;;;;;;;4268:5;;3790:498;3700:3;;;;;;;3659:639;;;3324:980;;:::o;827:111:5:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;238:20::-;;;;;;;;;;;;;:::o;1392:199:1:-;719:5:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1572:12:1;1565:4;;:19;;;;;;;;;;;;;;;;;;1392:199;:::o;4571:939:3:-;719:5:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;4809:11:3;:18;;;;4800:6;:27;4841:19;;;;;;;;;;;;;;;;;;;;;;;4779:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4779:91:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4999:11;4976:34;;:11;4988:6;4976:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;5024:22;;;;;;;;;;;;;;;;;;;;;;;4955:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4955:101:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5124:10;:23;5135:11;5124:23;;;;;;;;;;;;;;;;5117:30;;;;;;;;;;;5245:11;5278:1;5257:11;:18;;;;:22;5245:35;;;;;;;;;;;;;;;;;;;;;;;;;;;5223:11;5235:6;5223:19;;;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;5355:1;5333:11;:23;;;;;;;;;;;;;;:::i;:::-;;5458:11;5420:83;;;5483:10;5420:83;;;;;;;;;;;;;;;;;;;;;;4571:939;;:::o;1634:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;5620:186::-;5701:9;5788:11;5781:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186;:::o;1099:19:1:-;;;;;;;;;;;;;:::o;1100:103:5:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1338:171::-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o;961:1592:1:-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { SetToken } from \"./SetToken.sol\";\nimport { Authorizable } from \"../lib/Authorizable.sol\";\n\n\n/**\n * @title SetTokenFactory\n * @author Set Protocol\n *\n * SetTokenFactory is a smart contract used to deploy new SetToken contracts.\n * SetTokens deployed by the factory can only have their mint and burn functions\n * called by Core\n */\ncontract SetTokenFactory\n is Authorizable\n{\n /* ============ State Variables ============ */\n\n // Address of the Core contract\n address public core;\n\n /* ============ No Constructor ============ */\n\n /* ============ Setter Functions ============ */\n\n /**\n * Set core. Can only be set by owner of SetTokenFactory's owner.\n *\n * @param _coreAddress The address of deployed core contract\n */\n function setCoreAddress(\n address _coreAddress\n )\n external\n onlyOwner\n {\n // Commit passed address to vaultAddress state variable\n core = _coreAddress;\n }\n\n /* ============ Public Functions ============ */\n\n /**\n * Deploys a new SetToken contract.\n * Can only be called by authorized core contracts.\n *\n * @param _components address[] The address of component tokens\n * @param _units uint[] The units of each component token\n * @param _naturalUnit uint The minimum unit to be issued or redeemed\n * @param _name string The name of the new Set\n * @param _symbol string The symbol of the new Set\n * @return setToken address The address of the newly created SetToken\n */\n function create(\n address[] _components,\n uint[] _units,\n uint _naturalUnit,\n string _name,\n string _symbol\n )\n external\n // onlyAuthorized\n returns\n (address)\n {\n return new SetToken(this, _components, _units, _naturalUnit, _name, _symbol);\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetTokenFactory.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetTokenFactory.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetTokenFactory.sol", "exportedSymbols": { "SetTokenFactory": [ - 1005 + 549 ] }, - "id": 1006, + "id": 550, "nodeType": "SourceUnit", "nodes": [ { - "id": 982, + "id": 500, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:2" + "src": "597:23:1" }, { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetToken.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetToken.sol", "file": "./SetToken.sol", - "id": 983, + "id": 502, + "nodeType": "ImportDirective", + "scope": 550, + "sourceUnit": 499, + "src": "622:42:1", + "symbolAliases": [ + { + "foreign": 501, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "file": "../lib/Authorizable.sol", + "id": 504, "nodeType": "ImportDirective", - "scope": 1006, - "sourceUnit": 981, - "src": "25:24:2", - "symbolAliases": [], + "scope": 550, + "sourceUnit": 790, + "src": "665:55:1", + "symbolAliases": [ + { + "foreign": 503, + "local": null + } + ], "unitAlias": "" }, { - "baseContracts": [], + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 505, + "name": "Authorizable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 789, + "src": "991:12:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Authorizable_$789", + "typeString": "contract Authorizable" + } + }, + "id": 506, + "nodeType": "InheritanceSpecifier", + "src": "991:12:1" + } + ], "contractDependencies": [ - 980 + 498, + 789, + 969 ], "contractKind": "contract", - "documentation": null, + "documentation": "@title SetTokenFactory\n@author Set Protocol\n * SetTokenFactory is a smart contract used to deploy new SetToken contracts.\nSetTokens deployed by the factory can only have their mint and burn functions\ncalled by Core", "fullyImplemented": true, - "id": 1005, + "id": 549, "linearizedBaseContracts": [ - 1005 + 549, + 789, + 969 ], "name": "SetTokenFactory", "nodeType": "ContractDefinition", "nodes": [ + { + "constant": false, + "id": 508, + "name": "core", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "1099:19:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 519, + "nodeType": "Block", + "src": "1491:100:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 515, + "name": "core", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 508, + "src": "1565:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 516, + "name": "_coreAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 510, + "src": "1572:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1565:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 518, + "nodeType": "ExpressionStatement", + "src": "1565:19:1" + } + ] + }, + "documentation": "Set core. Can only be set by owner of SetTokenFactory's owner.\n * @param _coreAddress The address of deployed core contract", + "id": 520, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 513, + "modifierName": { + "argumentTypes": null, + "id": 512, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "1477:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1477:9:1" + } + ], + "name": "setCoreAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 510, + "name": "_coreAddress", + "nodeType": "VariableDeclaration", + "scope": 520, + "src": "1425:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 509, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1415:36:1" + }, + "payable": false, + "returnParameters": { + "id": 514, + "nodeType": "ParameterList", + "parameters": [], + "src": "1491:0:1" + }, + "scope": 549, + "src": "1392:199:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, { "body": { - "id": 1003, + "id": 547, "nodeType": "Block", - "src": "240:67:2", + "src": "2458:93:1", "statements": [ { "expression": { @@ -93,84 +525,135 @@ "arguments": [ { "argumentTypes": null, - "id": 998, - "name": "_tokens", + "id": 539, + "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, - "src": "270:7:2", + "referencedDeclaration": 1469, + "src": "2488:4:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_contract$_SetTokenFactory_$549", + "typeString": "contract SetTokenFactory" } }, { "argumentTypes": null, - "id": 999, + "id": 540, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 523, + "src": "2494:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 541, "name": "_units", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "279:6:2", + "referencedDeclaration": 526, + "src": "2507:6:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" } }, { "argumentTypes": null, - "id": 1000, + "id": 542, "name": "_naturalUnit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "287:12:2", + "referencedDeclaration": 528, + "src": "2515:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "id": 543, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 530, + "src": "2529:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 544, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "2536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_contract$_SetTokenFactory_$549", + "typeString": "contract SetTokenFactory" }, { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" } ], - "id": 997, + "id": 538, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "257:12:2", + "src": "2475:12:1", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_contract$_SetToken_$980_$", - "typeString": "function (address[] memory,uint256[] memory,uint256) returns (contract SetToken)" + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_SetToken_$498_$", + "typeString": "function (address,address[] memory,uint256[] memory,uint256,string memory,string memory) returns (contract SetToken)" }, "typeName": { "contractScope": null, - "id": 996, + "id": 537, "name": "SetToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 980, - "src": "261:8:2", + "referencedDeclaration": 498, + "src": "2479:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", + "typeIdentifier": "t_contract$_SetToken_$498", "typeString": "contract SetToken" } } }, - "id": 1001, + "id": 545, "isConstant": false, "isLValue": false, "isPure": false, @@ -178,59 +661,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "257:43:2", + "src": "2475:69:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", + "typeIdentifier": "t_contract$_SetToken_$498", "typeString": "contract SetToken" } }, - "functionReturnParameters": 995, - "id": 1002, + "functionReturnParameters": 536, + "id": 546, "nodeType": "Return", - "src": "250:50:2" + "src": "2468:76:1" } ] }, - "documentation": null, - "id": 1004, + "documentation": "Deploys a new SetToken contract.\nCan only be called by authorized core contracts.\n * @param _components address[] The address of component tokens\n@param _units uint[] The units of each component token\n@param _naturalUnit uint The minimum unit to be issued or redeemed\n@param _name string The name of the new Set\n@param _symbol string The symbol of the new Set\n@return setToken address The address of the newly created SetToken", + "id": 548, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "createSet", + "name": "create", "nodeType": "FunctionDefinition", "parameters": { - "id": 992, + "id": 533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 986, - "name": "_tokens", + "id": 523, + "name": "_components", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "111:17:2", + "scope": 548, + "src": "2253:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 984, + "id": 521, "name": "address", "nodeType": "ElementaryTypeName", - "src": "111:7:2", + "src": "2253:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 985, + "id": 522, "length": null, "nodeType": "ArrayTypeName", - "src": "111:9:2", + "src": "2253:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -241,32 +724,32 @@ }, { "constant": false, - "id": 989, + "id": 526, "name": "_units", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "138:13:2", + "scope": 548, + "src": "2284:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { - "id": 987, + "id": 524, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "138:4:2", + "src": "2284:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 988, + "id": 525, "length": null, "nodeType": "ArrayTypeName", - "src": "138:6:2", + "src": "2284:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -277,11 +760,11 @@ }, { "constant": false, - "id": 991, + "id": 528, "name": "_naturalUnit", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "161:17:2", + "scope": 548, + "src": "2307:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -289,10 +772,10 @@ "typeString": "uint256" }, "typeName": { - "id": 990, + "id": 527, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "161:4:2", + "src": "2307:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -300,22 +783,74 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 530, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 548, + "src": "2334:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 529, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2334:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 532, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 548, + "src": "2356:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 531, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2356:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "101:83:2" + "src": "2243:133:1" }, "payable": false, "returnParameters": { - "id": 995, + "id": 536, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 994, + "id": 535, "name": "", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "226:7:2", + "scope": 548, + "src": "2445:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -323,10 +858,10 @@ "typeString": "address" }, "typeName": { - "id": 993, + "id": 534, "name": "address", "nodeType": "ElementaryTypeName", - "src": "226:7:2", + "src": "2445:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -336,72 +871,270 @@ "visibility": "internal" } ], - "src": "225:9:2" + "src": "2444:9:1" }, - "scope": 1005, - "src": "83:224:2", + "scope": 549, + "src": "2228:323:1", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" } ], - "scope": 1006, - "src": "52:257:2" + "scope": 550, + "src": "961:1592:1" } ], - "src": "0:310:2" + "src": "597:1957:1" }, "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetTokenFactory.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetTokenFactory.sol", "exportedSymbols": { "SetTokenFactory": [ - 1005 + 549 ] }, - "id": 1006, + "id": 550, "nodeType": "SourceUnit", "nodes": [ { - "id": 982, + "id": 500, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:2" + "src": "597:23:1" }, { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetToken.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetToken.sol", "file": "./SetToken.sol", - "id": 983, + "id": 502, + "nodeType": "ImportDirective", + "scope": 550, + "sourceUnit": 499, + "src": "622:42:1", + "symbolAliases": [ + { + "foreign": 501, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "file": "../lib/Authorizable.sol", + "id": 504, "nodeType": "ImportDirective", - "scope": 1006, - "sourceUnit": 981, - "src": "25:24:2", - "symbolAliases": [], + "scope": 550, + "sourceUnit": 790, + "src": "665:55:1", + "symbolAliases": [ + { + "foreign": 503, + "local": null + } + ], "unitAlias": "" }, { - "baseContracts": [], + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 505, + "name": "Authorizable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 789, + "src": "991:12:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Authorizable_$789", + "typeString": "contract Authorizable" + } + }, + "id": 506, + "nodeType": "InheritanceSpecifier", + "src": "991:12:1" + } + ], "contractDependencies": [ - 980 + 498, + 789, + 969 ], "contractKind": "contract", - "documentation": null, + "documentation": "@title SetTokenFactory\n@author Set Protocol\n * SetTokenFactory is a smart contract used to deploy new SetToken contracts.\nSetTokens deployed by the factory can only have their mint and burn functions\ncalled by Core", "fullyImplemented": true, - "id": 1005, + "id": 549, "linearizedBaseContracts": [ - 1005 + 549, + 789, + 969 ], "name": "SetTokenFactory", "nodeType": "ContractDefinition", "nodes": [ + { + "constant": false, + "id": 508, + "name": "core", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "1099:19:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, { "body": { - "id": 1003, + "id": 519, "nodeType": "Block", - "src": "240:67:2", + "src": "1491:100:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 515, + "name": "core", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 508, + "src": "1565:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 516, + "name": "_coreAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 510, + "src": "1572:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1565:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 518, + "nodeType": "ExpressionStatement", + "src": "1565:19:1" + } + ] + }, + "documentation": "Set core. Can only be set by owner of SetTokenFactory's owner.\n * @param _coreAddress The address of deployed core contract", + "id": 520, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 513, + "modifierName": { + "argumentTypes": null, + "id": 512, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "1477:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1477:9:1" + } + ], + "name": "setCoreAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 510, + "name": "_coreAddress", + "nodeType": "VariableDeclaration", + "scope": 520, + "src": "1425:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 509, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1415:36:1" + }, + "payable": false, + "returnParameters": { + "id": 514, + "nodeType": "ParameterList", + "parameters": [], + "src": "1491:0:1" + }, + "scope": 549, + "src": "1392:199:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 547, + "nodeType": "Block", + "src": "2458:93:1", "statements": [ { "expression": { @@ -409,84 +1142,135 @@ "arguments": [ { "argumentTypes": null, - "id": 998, - "name": "_tokens", + "id": 539, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1469, + "src": "2488:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SetTokenFactory_$549", + "typeString": "contract SetTokenFactory" + } + }, + { + "argumentTypes": null, + "id": 540, + "name": "_components", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, - "src": "270:7:2", + "referencedDeclaration": 523, + "src": "2494:11:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" } }, { "argumentTypes": null, - "id": 999, + "id": 541, "name": "_units", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "279:6:2", + "referencedDeclaration": 526, + "src": "2507:6:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" } }, { "argumentTypes": null, - "id": 1000, + "id": 542, "name": "_naturalUnit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "287:12:2", + "referencedDeclaration": 528, + "src": "2515:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "id": 543, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 530, + "src": "2529:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 544, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "2536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_contract$_SetTokenFactory_$549", + "typeString": "contract SetTokenFactory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" }, { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" } ], - "id": 997, + "id": 538, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "257:12:2", + "src": "2475:12:1", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_contract$_SetToken_$980_$", - "typeString": "function (address[] memory,uint256[] memory,uint256) returns (contract SetToken)" + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_SetToken_$498_$", + "typeString": "function (address,address[] memory,uint256[] memory,uint256,string memory,string memory) returns (contract SetToken)" }, "typeName": { "contractScope": null, - "id": 996, + "id": 537, "name": "SetToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 980, - "src": "261:8:2", + "referencedDeclaration": 498, + "src": "2479:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", + "typeIdentifier": "t_contract$_SetToken_$498", "typeString": "contract SetToken" } } }, - "id": 1001, + "id": 545, "isConstant": false, "isLValue": false, "isPure": false, @@ -494,59 +1278,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "257:43:2", + "src": "2475:69:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", + "typeIdentifier": "t_contract$_SetToken_$498", "typeString": "contract SetToken" } }, - "functionReturnParameters": 995, - "id": 1002, + "functionReturnParameters": 536, + "id": 546, "nodeType": "Return", - "src": "250:50:2" + "src": "2468:76:1" } ] }, - "documentation": null, - "id": 1004, + "documentation": "Deploys a new SetToken contract.\nCan only be called by authorized core contracts.\n * @param _components address[] The address of component tokens\n@param _units uint[] The units of each component token\n@param _naturalUnit uint The minimum unit to be issued or redeemed\n@param _name string The name of the new Set\n@param _symbol string The symbol of the new Set\n@return setToken address The address of the newly created SetToken", + "id": 548, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "createSet", + "name": "create", "nodeType": "FunctionDefinition", "parameters": { - "id": 992, + "id": 533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 986, - "name": "_tokens", + "id": 523, + "name": "_components", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "111:17:2", + "scope": 548, + "src": "2253:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 984, + "id": 521, "name": "address", "nodeType": "ElementaryTypeName", - "src": "111:7:2", + "src": "2253:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 985, + "id": 522, "length": null, "nodeType": "ArrayTypeName", - "src": "111:9:2", + "src": "2253:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -557,32 +1341,32 @@ }, { "constant": false, - "id": 989, + "id": 526, "name": "_units", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "138:13:2", + "scope": 548, + "src": "2284:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { - "id": 987, + "id": 524, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "138:4:2", + "src": "2284:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 988, + "id": 525, "length": null, "nodeType": "ArrayTypeName", - "src": "138:6:2", + "src": "2284:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -593,11 +1377,11 @@ }, { "constant": false, - "id": 991, + "id": 528, "name": "_naturalUnit", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "161:17:2", + "scope": 548, + "src": "2307:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -605,10 +1389,10 @@ "typeString": "uint256" }, "typeName": { - "id": 990, + "id": 527, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "161:4:2", + "src": "2307:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -616,22 +1400,74 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 530, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 548, + "src": "2334:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 529, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2334:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 532, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 548, + "src": "2356:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 531, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2356:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "101:83:2" + "src": "2243:133:1" }, "payable": false, "returnParameters": { - "id": 995, + "id": 536, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 994, + "id": 535, "name": "", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "226:7:2", + "scope": 548, + "src": "2445:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -639,10 +1475,10 @@ "typeString": "address" }, "typeName": { - "id": 993, + "id": 534, "name": "address", "nodeType": "ElementaryTypeName", - "src": "226:7:2", + "src": "2445:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -652,26 +1488,26 @@ "visibility": "internal" } ], - "src": "225:9:2" + "src": "2444:9:1" }, - "scope": 1005, - "src": "83:224:2", + "scope": 549, + "src": "2228:323:1", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" } ], - "scope": 1006, - "src": "52:257:2" + "scope": 550, + "src": "961:1592:1" } ], - "src": "0:310:2" + "src": "597:1957:1" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.577Z" + "updatedAt": "2018-07-07T15:28:53.739Z" } \ No newline at end of file diff --git a/artifacts/json/SetTokenRegistry.json b/artifacts/json/SetTokenRegistry.json deleted file mode 100644 index a3e6265fc..000000000 --- a/artifacts/json/SetTokenRegistry.json +++ /dev/null @@ -1,15454 +0,0 @@ -{ - "contractName": "SetTokenRegistry", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "setAddressByHashedSymbol", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "setAddressByHashedName", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "setAddresses", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "sets", - "outputs": [ - { - "name": "setAddress", - "type": "address" - }, - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_setFactory", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "name": "setAddress", - "type": "address" - }, - { - "indexed": false, - "name": "name", - "type": "string" - }, - { - "indexed": false, - "name": "symbol", - "type": "string" - } - ], - "name": "SetTokenCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "name": "setAddress", - "type": "address" - }, - { - "indexed": false, - "name": "name", - "type": "string" - }, - { - "indexed": false, - "name": "symbol", - "type": "string" - } - ], - "name": "SetTokenAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "name": "setAddress", - "type": "address" - }, - { - "indexed": false, - "name": "name", - "type": "string" - }, - { - "indexed": false, - "name": "symbol", - "type": "string" - } - ], - "name": "SetTokenRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "name": "setAddress", - "type": "address" - }, - { - "indexed": false, - "name": "oldName", - "type": "string" - }, - { - "indexed": false, - "name": "newName", - "type": "string" - } - ], - "name": "SetTokenNameUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "name": "setAddress", - "type": "address" - }, - { - "indexed": false, - "name": "oldSymbol", - "type": "string" - }, - { - "indexed": false, - "name": "newSymbol", - "type": "string" - } - ], - "name": "SetTokenSymbolUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "previousOwner", - "type": "address" - } - ], - "name": "OwnershipRenounced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "_tokens", - "type": "address[]" - }, - { - "name": "_units", - "type": "uint256[]" - }, - { - "name": "_naturalUnit", - "type": "uint256" - }, - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - } - ], - "name": "create", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_set", - "type": "address" - }, - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - } - ], - "name": "add", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_set", - "type": "address" - }, - { - "name": "_setAddressIndex", - "type": "uint256" - } - ], - "name": "remove", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_set", - "type": "address" - }, - { - "name": "_name", - "type": "string" - } - ], - "name": "modifySetName", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_set", - "type": "address" - }, - { - "name": "_symbol", - "type": "string" - } - ], - "name": "modifySetSymbol", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getSetAddresses", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_setSymbol", - "type": "string" - } - ], - "name": "getSetAddressBySymbol", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getSetCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_name", - "type": "string" - } - ], - "name": "getSetAddressByName", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_set", - "type": "address" - } - ], - "name": "getSetMetadata", - "outputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "string" - }, - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50604051602080612f1c83398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612e58806100c46000396000f3006080604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301304a4f146100f6578063110a25c214610251578063443ba0c7146103d057806346bc7fd91461047157806350b4265c1461055857806359ec2afc146105c95780635bbc1eed1461063a5780636e7f096e146106db5780636ef49f6414610748578063715018a6146108a357806377b96551146108ba5780638da5cb5b146109635780639eff34b4146109ba578063abe7f1ab14610a26578063d9cbfd5914610a8b578063f2fde38b14610b34578063f58d216314610b77575b600080fd5b34801561010257600080fd5b50610137600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ba2565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156101ad578082015181840152602081019050610192565b50505050905090810190601f1680156101da5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156102135780820151818401526020810190506101f8565b50505050905090810190601f1680156102405780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561025d57600080fd5b5061038e600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610db9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103dc57600080fd5b50610457600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611385565b604051808215151515815260200191505060405180910390f35b34801561047d57600080fd5b5061053e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611671565b604051808215151515815260200191505060405180910390f35b34801561056457600080fd5b506105876004803603810190808035600019169060200190929190505050611bd3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d557600080fd5b506105f86004803603810190808035600019169060200190929190505050611c06565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064657600080fd5b506106c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611c39565b604051808215151515815260200191505060405180910390f35b3480156106e757600080fd5b5061070660048036038101908080359060200190929190505050611f25565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561075457600080fd5b50610789600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f63565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156107ff5780820151818401526020810190506107e4565b50505050905090810190601f16801561082c5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561086557808201518184015260208101905061084a565b50505050905090810190601f1680156108925780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156108af57600080fd5b506108b86120dd565b005b3480156108c657600080fd5b50610921600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506121df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561096f57600080fd5b50610978612286565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109c657600080fd5b506109cf6122ab565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610a125780820151818401526020810190506109f7565b505050509050019250505060405180910390f35b348015610a3257600080fd5b50610a71600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612339565b604051808215151515815260200191505060405180910390f35b348015610a9757600080fd5b50610af2600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612800565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b4057600080fd5b50610b75600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128a7565b005b348015610b8357600080fd5b50610b8c61290e565b6040518082815260200191505060405180910390f35b6000606080610baf612c5b565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ce95780601f10610cbe57610100808354040283529160200191610ce9565b820191906000526020600020905b815481529060010190602001808311610ccc57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d8b5780601f10610d6057610100808354040283529160200191610d8b565b820191906000526020600020905b815481529060010190602001808311610d6e57829003601f168201915b5050505050815250509050806000015181602001518260400151819150809050935093509350509193909250565b60008083600073ffffffffffffffffffffffffffffffffffffffff1660056000836040518082805190602001908083835b602083101515610e0f5780518252602082019150602081019050602083039250610dea565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e9557600080fd5b83600073ffffffffffffffffffffffffffffffffffffffff1660046000836040518082805190602001908083835b602083101515610ee85780518252602082019150602081019050602083039250610ec3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610f6e57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663821f91f48a8a8a6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b8381101561102757808201518184015260208101905061100c565b50505050905001838103825285818151815260200191508051906020019060200280838360005b8381101561106957808201518184015260208101905061104e565b5050505090500195505050505050602060405180830381600087803b15801561109157600080fd5b505af11580156110a5573d6000803e3d6000fd5b505050506040513d60208110156110bb57600080fd5b8101908080519060200190929190505050925060028390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506060604051908101604052808473ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186815250600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190611208929190612c93565b506040820151816002019080519060200190611225929190612c93565b50905050611233868461291b565b5061123e85846129e3565b508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb7b1e89d4bb640b93b0cb96b27077ceb558d073e00531c0a712a4afc9ccf06fe8888604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156112d45780820151818401526020810190506112b9565b50505050905090810190601f1680156113015780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561133a57808201518184015260208101905061131f565b50505050905090810190601f1680156113675780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a382935050505095945050505050565b600060606000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113e457600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ba5780601f1061148f576101008083540402835291602001916114ba565b820191906000526020600020905b81548152906001019060200180831161149d57829003601f168201915b505050505090506114cc81600061291b565b5082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001019080519060200190611523929190612d13565b5061152e838561291b565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc532b1eb099007b62a28e1fca5a7dbf04552c7bdfa79b79d20b1b9087747e8108386604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156115c45780820151818401526020810190506115a9565b50505050905090810190601f1680156115f15780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561162a57808201518184015260208101905061160f565b50505050905090810190601f1680156116575780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3600191505092915050565b600082600073ffffffffffffffffffffffffffffffffffffffff1660056000836040518082805190602001908083835b6020831015156116c657805182526020820191506020810190506020830392506116a1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561174c57600080fd5b82600073ffffffffffffffffffffffffffffffffffffffff1660046000836040518082805190602001908083835b60208310151561179f578051825260208201915060208101905060208303925061177a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561182557600080fd5b85600073ffffffffffffffffffffffffffffffffffffffff16600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118c357600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561191e57600080fd5b60028790806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506060604051908101604052808873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186815250600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190611a58929190612c93565b506040820151816002019080519060200190611a75929190612c93565b50905050611a83868861291b565b50611a8e85886129e3565b508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167e7daa8b19a37c4050f45e8745396381f3feb1207079ea81fbaecc4de19d359a8888604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611b23578082015181840152602081019050611b08565b50505050905090810190601f168015611b505780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611b89578082015181840152602081019050611b6e565b50505050905090810190601f168015611bb65780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3600193505050509392505050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060606000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c9857600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d6e5780601f10611d4357610100808354040283529160200191611d6e565b820191906000526020600020905b815481529060010190602001808311611d5157829003601f168201915b50505050509050611d808160006129e3565b5082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002019080519060200190611dd7929190612d13565b50611de283856129e3565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc532b1eb099007b62a28e1fca5a7dbf04552c7bdfa79b79d20b1b9087747e8108386604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611e78578082015181840152602081019050611e5d565b50505050905090810190601f168015611ea55780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611ede578082015181840152602081019050611ec3565b50505050905090810190601f168015611f0b5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3600191505092915050565b600281815481101515611f3457fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120355780601f1061200a57610100808354040283529160200191612035565b820191906000526020600020905b81548152906001019060200180831161201857829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120d35780601f106120a8576101008083540402835291602001916120d3565b820191906000526020600020905b8154815290600101906020018083116120b657829003601f168201915b5050505050905083565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561213857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600060046000836040518082805190602001908083835b60208310151561221b57805182526020820191506020810190506020830392506121f6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561232f57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116122e5575b5050505050905090565b6000612343612c5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561239e57600080fd5b6002838154811015156123ad57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151561241157600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561254b5780601f106125205761010080835404028352916020019161254b565b820191906000526020600020905b81548152906001019060200180831161252e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125ed5780601f106125c2576101008083540402835291602001916125ed565b820191906000526020600020905b8154815290600101906020018083116125d057829003601f168201915b50505050508152505090508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c0549cd7c150e0ebb3086c88a820e1b42db9c827e3d24883f6a945b647b4ada83602001518460400151604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561269557808201518184015260208101905061267a565b50505050905090810190601f1680156126c25780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156126fb5780820151818401526020810190506126e0565b50505050905090810190601f1680156127285780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a36127468160200151600061291b565b50612756816040015160006129e3565b50600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006127ce9190612d93565b6002820160006127de9190612d93565b50506127f4836002612aab90919063ffffffff16565b50600191505092915050565b600060056000836040518082805190602001908083835b60208310151561283c5780518252602082019150602081019050602083039250612817565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561290257600080fd5b61290b81612b61565b50565b6000600280549050905090565b60008160056000856040518082805190602001908083835b6020831015156129585780518252602082019150602081019050602083039250612933565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b60008160046000856040518082805190602001908083835b602083101515612a2057805182526020820191506020810190506020830392506129fb565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b6000826001848054905003815481101515612ac257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383815481101515612afb57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018381818054905003915081612b5a9190612ddb565b5092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612b9d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612cd457805160ff1916838001178555612d02565b82800160010185558215612d02579182015b82811115612d01578251825591602001919060010190612ce6565b5b509050612d0f9190612e07565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612d5457805160ff1916838001178555612d82565b82800160010185558215612d82579182015b82811115612d81578251825591602001919060010190612d66565b5b509050612d8f9190612e07565b5090565b50805460018160011615610100020316600290046000825580601f10612db95750612dd8565b601f016020900490600052602060002090810190612dd79190612e07565b5b50565b815481835581811115612e0257818360005260206000209182019101612e019190612e07565b5b505050565b612e2991905b80821115612e25576000816000905550600101612e0d565b5090565b905600a165627a7a72305820ad2dfd2586c81c680e481032c86442ce22cbf3966cab3625e71d1db1d4b9c5ef0029", - "deployedBytecode": "0x6080604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301304a4f146100f6578063110a25c214610251578063443ba0c7146103d057806346bc7fd91461047157806350b4265c1461055857806359ec2afc146105c95780635bbc1eed1461063a5780636e7f096e146106db5780636ef49f6414610748578063715018a6146108a357806377b96551146108ba5780638da5cb5b146109635780639eff34b4146109ba578063abe7f1ab14610a26578063d9cbfd5914610a8b578063f2fde38b14610b34578063f58d216314610b77575b600080fd5b34801561010257600080fd5b50610137600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ba2565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156101ad578082015181840152602081019050610192565b50505050905090810190601f1680156101da5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156102135780820151818401526020810190506101f8565b50505050905090810190601f1680156102405780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561025d57600080fd5b5061038e600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610db9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103dc57600080fd5b50610457600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611385565b604051808215151515815260200191505060405180910390f35b34801561047d57600080fd5b5061053e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611671565b604051808215151515815260200191505060405180910390f35b34801561056457600080fd5b506105876004803603810190808035600019169060200190929190505050611bd3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d557600080fd5b506105f86004803603810190808035600019169060200190929190505050611c06565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064657600080fd5b506106c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611c39565b604051808215151515815260200191505060405180910390f35b3480156106e757600080fd5b5061070660048036038101908080359060200190929190505050611f25565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561075457600080fd5b50610789600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f63565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156107ff5780820151818401526020810190506107e4565b50505050905090810190601f16801561082c5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561086557808201518184015260208101905061084a565b50505050905090810190601f1680156108925780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156108af57600080fd5b506108b86120dd565b005b3480156108c657600080fd5b50610921600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506121df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561096f57600080fd5b50610978612286565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109c657600080fd5b506109cf6122ab565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610a125780820151818401526020810190506109f7565b505050509050019250505060405180910390f35b348015610a3257600080fd5b50610a71600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612339565b604051808215151515815260200191505060405180910390f35b348015610a9757600080fd5b50610af2600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612800565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b4057600080fd5b50610b75600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128a7565b005b348015610b8357600080fd5b50610b8c61290e565b6040518082815260200191505060405180910390f35b6000606080610baf612c5b565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ce95780601f10610cbe57610100808354040283529160200191610ce9565b820191906000526020600020905b815481529060010190602001808311610ccc57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d8b5780601f10610d6057610100808354040283529160200191610d8b565b820191906000526020600020905b815481529060010190602001808311610d6e57829003601f168201915b5050505050815250509050806000015181602001518260400151819150809050935093509350509193909250565b60008083600073ffffffffffffffffffffffffffffffffffffffff1660056000836040518082805190602001908083835b602083101515610e0f5780518252602082019150602081019050602083039250610dea565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e9557600080fd5b83600073ffffffffffffffffffffffffffffffffffffffff1660046000836040518082805190602001908083835b602083101515610ee85780518252602082019150602081019050602083039250610ec3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610f6e57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663821f91f48a8a8a6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b8381101561102757808201518184015260208101905061100c565b50505050905001838103825285818151815260200191508051906020019060200280838360005b8381101561106957808201518184015260208101905061104e565b5050505090500195505050505050602060405180830381600087803b15801561109157600080fd5b505af11580156110a5573d6000803e3d6000fd5b505050506040513d60208110156110bb57600080fd5b8101908080519060200190929190505050925060028390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506060604051908101604052808473ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186815250600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190611208929190612c93565b506040820151816002019080519060200190611225929190612c93565b50905050611233868461291b565b5061123e85846129e3565b508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb7b1e89d4bb640b93b0cb96b27077ceb558d073e00531c0a712a4afc9ccf06fe8888604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156112d45780820151818401526020810190506112b9565b50505050905090810190601f1680156113015780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561133a57808201518184015260208101905061131f565b50505050905090810190601f1680156113675780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a382935050505095945050505050565b600060606000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113e457600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ba5780601f1061148f576101008083540402835291602001916114ba565b820191906000526020600020905b81548152906001019060200180831161149d57829003601f168201915b505050505090506114cc81600061291b565b5082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001019080519060200190611523929190612d13565b5061152e838561291b565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc532b1eb099007b62a28e1fca5a7dbf04552c7bdfa79b79d20b1b9087747e8108386604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156115c45780820151818401526020810190506115a9565b50505050905090810190601f1680156115f15780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561162a57808201518184015260208101905061160f565b50505050905090810190601f1680156116575780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3600191505092915050565b600082600073ffffffffffffffffffffffffffffffffffffffff1660056000836040518082805190602001908083835b6020831015156116c657805182526020820191506020810190506020830392506116a1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561174c57600080fd5b82600073ffffffffffffffffffffffffffffffffffffffff1660046000836040518082805190602001908083835b60208310151561179f578051825260208201915060208101905060208303925061177a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561182557600080fd5b85600073ffffffffffffffffffffffffffffffffffffffff16600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118c357600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561191e57600080fd5b60028790806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506060604051908101604052808873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186815250600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190611a58929190612c93565b506040820151816002019080519060200190611a75929190612c93565b50905050611a83868861291b565b50611a8e85886129e3565b508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167e7daa8b19a37c4050f45e8745396381f3feb1207079ea81fbaecc4de19d359a8888604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611b23578082015181840152602081019050611b08565b50505050905090810190601f168015611b505780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611b89578082015181840152602081019050611b6e565b50505050905090810190601f168015611bb65780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3600193505050509392505050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060606000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c9857600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d6e5780601f10611d4357610100808354040283529160200191611d6e565b820191906000526020600020905b815481529060010190602001808311611d5157829003601f168201915b50505050509050611d808160006129e3565b5082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002019080519060200190611dd7929190612d13565b50611de283856129e3565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc532b1eb099007b62a28e1fca5a7dbf04552c7bdfa79b79d20b1b9087747e8108386604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611e78578082015181840152602081019050611e5d565b50505050905090810190601f168015611ea55780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611ede578082015181840152602081019050611ec3565b50505050905090810190601f168015611f0b5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3600191505092915050565b600281815481101515611f3457fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120355780601f1061200a57610100808354040283529160200191612035565b820191906000526020600020905b81548152906001019060200180831161201857829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120d35780601f106120a8576101008083540402835291602001916120d3565b820191906000526020600020905b8154815290600101906020018083116120b657829003601f168201915b5050505050905083565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561213857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600060046000836040518082805190602001908083835b60208310151561221b57805182526020820191506020810190506020830392506121f6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561232f57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116122e5575b5050505050905090565b6000612343612c5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561239e57600080fd5b6002838154811015156123ad57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151561241157600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561254b5780601f106125205761010080835404028352916020019161254b565b820191906000526020600020905b81548152906001019060200180831161252e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125ed5780601f106125c2576101008083540402835291602001916125ed565b820191906000526020600020905b8154815290600101906020018083116125d057829003601f168201915b50505050508152505090508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c0549cd7c150e0ebb3086c88a820e1b42db9c827e3d24883f6a945b647b4ada83602001518460400151604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561269557808201518184015260208101905061267a565b50505050905090810190601f1680156126c25780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156126fb5780820151818401526020810190506126e0565b50505050905090810190601f1680156127285780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a36127468160200151600061291b565b50612756816040015160006129e3565b50600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006127ce9190612d93565b6002820160006127de9190612d93565b50506127f4836002612aab90919063ffffffff16565b50600191505092915050565b600060056000836040518082805190602001908083835b60208310151561283c5780518252602082019150602081019050602083039250612817565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561290257600080fd5b61290b81612b61565b50565b6000600280549050905090565b60008160056000856040518082805190602001908083835b6020831015156129585780518252602082019150602081019050602083039250612933565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b60008160046000856040518082805190602001908083835b602083101515612a2057805182526020820191506020810190506020830392506129fb565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b6000826001848054905003815481101515612ac257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383815481101515612afb57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018381818054905003915081612b5a9190612ddb565b5092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612b9d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612cd457805160ff1916838001178555612d02565b82800160010185558215612d02579182015b82811115612d01578251825591602001919060010190612ce6565b5b509050612d0f9190612e07565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612d5457805160ff1916838001178555612d82565b82800160010185558215612d82579182015b82811115612d81578251825591602001919060010190612d66565b5b509050612d8f9190612e07565b5090565b50805460018160011615610100020316600290046000825580601f10612db95750612dd8565b601f016020900490600052602060002090810190612dd79190612e07565b5b50565b815481835581811115612e0257818360005260206000209182019101612e019190612e07565b5b505050565b612e2991905b80821115612e25576000816000905550600101612e0d565b5090565b905600a165627a7a72305820ad2dfd2586c81c680e481032c86442ce22cbf3966cab3625e71d1db1d4b9c5ef0029", - "sourceMap": "303:8008:3:-;;;2562:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;2562:85:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:10:11;567:5;;:18;;;;;;;;;;;;;;;;;;2629:11:3;2616:10;;:24;;;;;;;;;;;;;;;;;;2562:85;303:8008;;;;;;", - "deployedSourceMap": "303:8008:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7376:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7376:347:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7376:347:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7376:347:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2884:1064;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2884:1064:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:497;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:497:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4028:605;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4028:605:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;911:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;911:60:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;977:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;977:58:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5995:521;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5995:521:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;826:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;826:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;861:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;861:44:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;861:44:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;861:44:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:11;;;;;;6794:192:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6794:192:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:11;;;;;;;;;;;;;;;;;;;;;;;;;;;6666:122:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6666:122:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6666:122:3;;;;;;;;;;;;;;;;;4707:596;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4707:596:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7118:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7118:178:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;6992:120:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6992:120:3;;;;;;;;;;;;;;;;;;;;;;;7376:347;7485:7;7521:6;7550;7592:22;;:::i;:::-;7617:4;:10;7622:4;7617:10;;;;;;;;;;;;;;;7592:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7654:3;:14;;;7678:3;:8;;;7696:3;:10;;;7637:79;;;;;;;;;;;;7376:347;;;;;;:::o;2884:1064::-;3128:7;3188:21;3069:5;2189:1;2137:54;;:22;:40;2170:5;2160:16;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2160:16:3;;;;;;;;;;;;;;;;2137:40;;;;;;;;;;;;;;;;;;;;;;;;;;;:54;;;2129:63;;;;;;;;3103:7;2334:1;2278:58;;:24;:44;2313:7;2303:18;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2303:18:3;;;;;;;;;;;;;;;;2278:44;;;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;2270:67;;;;;;;;3235:10;;;;;;;;;;;:20;;;3273:7;3298:6;3322:12;3235:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3235:113:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3235:113:3;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3235:113:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3235:113:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3235:113:3;;;;;;;;;;;;;;;;3188:170;;3413:12;3439:11;3413:39;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3413:39:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3538:123;;;;;;;;;3584:11;3538:123;;;;;;3616:5;3538:123;;;;3643:7;3538:123;;;3509:4;:26;3522:11;3509:26;;;;;;;;;;;;;;;:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3672:48;3692:5;3707:11;3672:19;:48::i;:::-;;3730:52;3752:7;3769:11;3730:21;:52::i;:::-;;3851:11;3798:114;;3827:10;3798:114;;;3876:5;3895:7;3798:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3798:114:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3798:114:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3930:11;3923:18;;2202:1;2884:1064;;;;;;;;;:::o;5492:497::-;5615:4;5635:26;719:5:11;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;5664:4:3;:19;5677:4;5664:19;;;;;;;;;;;;;;;:24;;5635:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5698:45;5718:12;5740:1;5698:19;:45::i;:::-;;5781:5;5754:4;:19;5767:4;5754:19;;;;;;;;;;;;;;;:24;;:32;;;;;;;;;;;;:::i;:::-;;5796;5816:5;5823:4;5796:19;:32::i;:::-;;5901:4;5844:116;;5877:10;5844:116;;;5919:12;5945:5;5844:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5844:116:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5844:116:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5978:4;5971:11;;5492:497;;;;;:::o;4028:605::-;4233:4;4125:5;2189:1;2137:54;;:22;:40;2170:5;2160:16;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2160:16:3;;;;;;;;;;;;;;;;2137:40;;;;;;;;;;;;;;;;;;;;;;;;;;;:54;;;2129:63;;;;;;;;4159:7;2334:1;2278:58;;:24;:44;2313:7;2303:18;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2303:18:3;;;;;;;;;;;;;;;;2278:44;;;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;2270:67;;;;;;;;4192:4;2465:1;2425:42;;:4;:17;2430:11;2425:17;;;;;;;;;;;;;;;:28;;;;;;;;;;;;:42;;;2417:51;;;;;;;;719:5:11;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;4253:12:3;4271:4;4253:23;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;4253:23:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4299:107;;;;;;;;;4337:4;4299:107;;;;;;4361:5;4299:107;;;;4388:7;4299:107;;;4286:4;:10;4291:4;4286:10;;;;;;;;;;;;;;;:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;4417:32;4437:5;4444:4;4417:19;:32::i;:::-;;4459:36;4481:7;4490:4;4459:21;:36::i;:::-;;4562:4;4511:93;;4538:10;4511:93;;;4568:5;4587:7;4511:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4511:93:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4511:93:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4622:4;4615:11;;2347:1;2202;4028:605;;;;;;:::o;911:60::-;;;;;;;;;;;;;;;;;;;;;;:::o;977:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;5995:521::-;6122:4;6142:28;719:5:11;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;6173:4:3;:19;6186:4;6173:19;;;;;;;;;;;;;;;:26;;6142:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6209:49;6231:14;6255:1;6209:21;:49::i;:::-;;6298:7;6269:4;:19;6282:4;6269:19;;;;;;;;;;;;;;;:26;;:36;;;;;;;;;;;;:::i;:::-;;6315;6337:7;6346:4;6315:21;:36::i;:::-;;6424:4;6367:120;;6400:10;6367:120;;;6442:14;6470:7;6367:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6367:120:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6367:120:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6505:4;6498:11;;5995:521;;;;;:::o;826:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;861:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;827:111:11:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;6794:192:3:-;6902:7;6932:24;:47;6967:10;6957:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6957:21:3;;;;;;;;;;;;;;;;6932:47;;;;;;;;;;;;;;;;;;;;;;;;;;;6925:54;;6794:192;;;:::o;238:20:11:-;;;;;;;;;;;;;:::o;6666:122:3:-;6737:9;6769:12;6762:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6666:122;:::o;4707:596::-;4810:4;4888:22;;:::i;:::-;719:5:11;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;4846:12:3;4859:16;4846:30;;;;;;;;;;;;;;;;;;;;;;;;;;;4838:38;;:4;:38;;;4830:47;;;;;;;;4913:4;:10;4918:4;4913:10;;;;;;;;;;;;;;;4888:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4992:4;4939:113;;4968:10;4939:113;;;5010:3;:8;;;5032:3;:10;;;4939:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4939:113:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4939:113:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5063:41;5083:3;:8;;;5101:1;5063:19;:41::i;:::-;;5114:45;5136:3;:10;;;5156:1;5114:21;:45::i;:::-;;5209:4;:10;5214:4;5209:10;;;;;;;;;;;;;;;;5202:17;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;5230:44;5257:16;5230:12;:26;;:44;;;;:::i;:::-;;5292:4;5285:11;;4707:596;;;;;:::o;7118:178::-;7219:7;7249:22;:40;7282:5;7272:16;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7272:16:3;;;;;;;;;;;;;;;;7249:40;;;;;;;;;;;;;;;;;;;;;;;;;;;7242:47;;7118:178;;;:::o;1100:103:11:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;6992:120:3:-;7059:4;7086:12;:19;;;;7079:26;;6992:120;:::o;7883:206::-;7994:4;8057;8014:22;:40;8047:5;8037:16;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8037:16:3;;;;;;;;;;;;;;;;8014:40;;;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;8078:4;8071:11;;7883:206;;;;:::o;8095:214::-;8210:4;8277;8230:24;:44;8265:7;8255:18;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8255:18:3;;;;;;;;;;;;;;;;8230:44;;;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;8298:4;8291:11;;8095:214;;;;:::o;316:142:6:-;393:7;419:1;432;421;:8;;;;:12;419:15;;;;;;;;;;;;;;;;;;;;;;;;;;;408:1;410:5;408:8;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;452:1;440;:13;;;;;;;;;;;;;;:::i;:::-;;316:142;;;;:::o;1338:171:11:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o;303:8008:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.23;\n\nimport \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"./interfaces/ISetToken.sol\";\nimport \"./interfaces/ISetFactory.sol\";\nimport \"../lib/AddressArrayUtils.sol\";\n\n\n/**\n * @title {Set} Registry\n * @author Felix Feng\n * @dev Implementation of the {Set} registry.\n */\ncontract SetTokenRegistry is Ownable {\n using AddressArrayUtils for address[];\n\n ///////////////////////////////////////////////////////////\n /// Data Structures\n ///////////////////////////////////////////////////////////\n\n struct SetMetadata {\n address setAddress;\n string name;\n string symbol;\n }\n \n ///////////////////////////////////////////////////////////\n /// States\n ///////////////////////////////////////////////////////////\n ISetFactory setFactory;\n address[] public setAddresses;\n mapping (address => SetMetadata) public sets;\n mapping (bytes32 => address) public setAddressByHashedSymbol;\n mapping (bytes32 => address) public setAddressByHashedName;\n\n ///////////////////////////////////////////////////////////\n /// Events\n ///////////////////////////////////////////////////////////\n\n event SetTokenCreated(\n address indexed sender,\n address indexed setAddress,\n string name,\n string symbol\n );\n event SetTokenAdded(\n address indexed sender,\n address indexed setAddress,\n string name,\n string symbol\n );\n event SetTokenRemoved(\n address indexed sender,\n address indexed setAddress,\n string name,\n string symbol\n );\n event SetTokenNameUpdated(\n address indexed sender,\n address indexed setAddress,\n string oldName,\n string newName\n );\n event SetTokenSymbolUpdated(\n address indexed sender,\n address indexed setAddress,\n string oldSymbol,\n string newSymbol\n );\n\n ///////////////////////////////////////////////////////////\n /// Modifiers\n ///////////////////////////////////////////////////////////\n\n modifier nameDoesNotExist(string _name) {\n require(setAddressByHashedName[keccak256(_name)] == address(0));\n _;\n }\n\n modifier symbolDoesNotExist(string _symbol) {\n require(setAddressByHashedSymbol[keccak256(_symbol)] == address(0));\n _;\n }\n\n modifier setDoesNotExist(address _setAddress) {\n require(sets[_setAddress].setAddress == address(0));\n _;\n }\n\n /**\n * @dev Constructor Function for the {Set} registry\n */\n constructor(ISetFactory _setFactory) public {\n setFactory = _setFactory;\n }\n\n ///////////////////////////////////////////////////////////\n /// Registry Functions\n ///////////////////////////////////////////////////////////\n\n /**\n * @dev Function creates a new {Set} and add to registry\n */\n function create(\n address[] _tokens,\n uint[] _units,\n uint _naturalUnit,\n string _name,\n string _symbol\n )\n public\n nameDoesNotExist(_name)\n symbolDoesNotExist(_symbol)\n returns(address)\n {\n // Instantiate that contract\n ISetToken newSetToken = ISetToken(\n setFactory.createSet(\n _tokens,\n _units,\n _naturalUnit\n )\n );\n\n // Add to the list of set addresses\n setAddresses.push(address(newSetToken));\n\n // Add to the mapping of set metadata\n sets[address(newSetToken)] = SetMetadata({\n setAddress: address(newSetToken),\n name: _name,\n symbol: _symbol\n });\n\n modifyAddressByName(_name, address(newSetToken));\n modifyAddressBySymbol(_symbol, address(newSetToken));\n\n emit SetTokenCreated(\n msg.sender,\n newSetToken,\n _name,\n _symbol\n );\n\n return newSetToken;\n }\n\n /**\n * @dev Function adds an existing {Set} to the registry\n */\n function add(address _set, string _name, string _symbol)\n public\n nameDoesNotExist(_name)\n symbolDoesNotExist(_symbol)\n setDoesNotExist(_set)\n onlyOwner\n returns (bool)\n {\n setAddresses.push(_set);\n sets[_set] = SetMetadata({\n setAddress: _set,\n name: _name,\n symbol: _symbol\n });\n\n modifyAddressByName(_name, _set);\n modifyAddressBySymbol(_symbol, _set);\n\n emit SetTokenAdded(\n msg.sender,\n _set, _name,\n _symbol\n );\n\n return true;\n }\n\n /**\n * @dev Function remove a {Set} from the registry\n */\n function remove(address _set, uint _setAddressIndex)\n public\n onlyOwner\n returns (bool)\n {\n require(_set == setAddresses[_setAddressIndex]);\n\n SetMetadata memory set = sets[_set];\n\n emit SetTokenRemoved(\n msg.sender,\n _set,\n set.name,\n set.symbol\n );\n\n modifyAddressByName(set.name, address(0));\n modifyAddressBySymbol(set.symbol, address(0));\n\n // Remove from metadata\n delete sets[_set];\n\n setAddresses.removeByIndex(_setAddressIndex);\n\n return true;\n }\n\n ///////////////////////////////////////////////////////////\n /// Setters / Modify to avoid confusion with {Set}\n ///////////////////////////////////////////////////////////\n function modifySetName(\n address _set,\n string _name\n )\n public\n onlyOwner\n returns (bool)\n {\n string memory existingName = sets[address(_set)].name;\n modifyAddressByName(existingName, address(0));\n\n sets[address(_set)].name = _name;\n modifyAddressByName(_name, _set);\n\n emit SetTokenNameUpdated(\n msg.sender,\n _set,\n existingName,\n _name\n );\n\n return true;\n }\n\n function modifySetSymbol(\n address _set,\n string _symbol\n )\n public\n onlyOwner\n returns (bool)\n {\n string memory existingSymbol = sets[address(_set)].symbol;\n modifyAddressBySymbol(existingSymbol, address(0));\n\n sets[address(_set)].symbol = _symbol;\n modifyAddressBySymbol(_symbol, _set);\n\n emit SetTokenNameUpdated(\n msg.sender,\n _set,\n existingSymbol,\n _symbol\n );\n\n return true;\n }\n\n ///////////////////////////////////////////////////////////\n /// Getters\n ///////////////////////////////////////////////////////////\n function getSetAddresses()\n public\n view\n returns(address[])\n {\n return setAddresses;\n }\n\n function getSetAddressBySymbol(\n string _setSymbol\n )\n public\n view\n returns(address)\n {\n return setAddressByHashedSymbol[keccak256(_setSymbol)];\n }\n\n function getSetCount()\n public\n view\n returns(uint)\n {\n return setAddresses.length;\n }\n\n function getSetAddressByName(\n string _name\n )\n public\n view\n returns(address)\n {\n return setAddressByHashedName[keccak256(_name)];\n }\n\n /**\n * @dev Gets a list of set metadata using a set address\n */\n function getSetMetadata(\n address _set\n )\n public\n view\n returns(\n address, // set address\n string, // name;\n string // symbol;\n )\n {\n SetMetadata memory set = sets[_set];\n return (\n set.setAddress,\n set.name,\n set.symbol\n );\n }\n\n ///////////////////////////////////////////////////////////\n /// Private Function\n ///////////////////////////////////////////////////////////\n\n function modifyAddressByName(\n string _name,\n address _set\n )\n private\n returns(bool)\n {\n setAddressByHashedName[keccak256(_name)] = _set;\n return true;\n }\n\n function modifyAddressBySymbol(\n string _symbol,\n address _set\n )\n private\n returns(bool)\n {\n setAddressByHashedSymbol[keccak256(_symbol)] = _set;\n return true;\n }\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetTokenRegistry.sol", - "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetTokenRegistry.sol", - "exportedSymbols": { - "SetTokenRegistry": [ - 1576 - ] - }, - "id": 1577, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1007, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1008, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 2242, - "src": "25:59:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", - "file": "./interfaces/ISetToken.sol", - "id": 1009, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 1622, - "src": "85:36:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", - "file": "./interfaces/ISetFactory.sol", - "id": 1010, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 1593, - "src": "122:38:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/lib/AddressArrayUtils.sol", - "file": "../lib/AddressArrayUtils.sol", - "id": 1011, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 1688, - "src": "161:38:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1012, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2241, - "src": "332:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$2241", - "typeString": "contract Ownable" - } - }, - "id": 1013, - "nodeType": "InheritanceSpecifier", - "src": "332:7:3" - } - ], - "contractDependencies": [ - 2241 - ], - "contractKind": "contract", - "documentation": "@title {Set} Registry\n@author Felix Feng\n@dev Implementation of the {Set} registry.", - "fullyImplemented": true, - "id": 1576, - "linearizedBaseContracts": [ - 1576, - 2241 - ], - "name": "SetTokenRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1017, - "libraryName": { - "contractScope": null, - "id": 1014, - "name": "AddressArrayUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1687, - "src": "352:17:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressArrayUtils_$1687", - "typeString": "library AddressArrayUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "346:38:3", - "typeName": { - "baseType": { - "id": 1015, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "374:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1016, - "length": null, - "nodeType": "ArrayTypeName", - "src": "374:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - { - "canonicalName": "SetTokenRegistry.SetMetadata", - "id": 1024, - "members": [ - { - "constant": false, - "id": 1019, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1024, - "src": "572:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1018, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "572:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1021, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1024, - "src": "600:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1020, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "600:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1023, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1024, - "src": "621:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1022, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "621:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "SetMetadata", - "nodeType": "StructDefinition", - "scope": 1576, - "src": "543:98:3", - "visibility": "public" - }, - { - "constant": false, - "id": 1026, - "name": "setFactory", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "798:22:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - }, - "typeName": { - "contractScope": null, - "id": 1025, - "name": "ISetFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1592, - "src": "798:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1029, - "name": "setAddresses", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "826:29:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1027, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "826:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1028, - "length": null, - "nodeType": "ArrayTypeName", - "src": "826:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1033, - "name": "sets", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "861:44:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata)" - }, - "typeName": { - "id": 1032, - "keyType": { - "id": 1030, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "870:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "861:32:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata)" - }, - "valueType": { - "contractScope": null, - "id": 1031, - "name": "SetMetadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1024, - "src": "881:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1037, - "name": "setAddressByHashedSymbol", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "911:60:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "typeName": { - "id": 1036, - "keyType": { - "id": 1034, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "920:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "911:28:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "valueType": { - "id": 1035, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "931:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1041, - "name": "setAddressByHashedName", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "977:58:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "typeName": { - "id": 1040, - "keyType": { - "id": 1038, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "986:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "977:28:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "valueType": { - "id": 1039, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "997:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "////////////////////////////////////////////////////////\n Events\n////////////////////////////////////////////////////////", - "id": 1051, - "name": "SetTokenCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1043, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1217:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1042, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1217:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1045, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1249:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1249:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1047, - "indexed": false, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1285:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1046, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1285:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1049, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1306:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1048, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1306:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:118:3" - }, - "src": "1186:140:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1061, - "name": "SetTokenAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 1060, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1053, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1360:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1360:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1055, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1392:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1054, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1392:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1057, - "indexed": false, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1428:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1056, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1428:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1059, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1449:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1058, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1449:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1350:118:3" - }, - "src": "1331:138:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1071, - "name": "SetTokenRemoved", - "nodeType": "EventDefinition", - "parameters": { - "id": 1070, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1063, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1505:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1062, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1505:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1065, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1537:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1064, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1537:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1067, - "indexed": false, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1573:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1066, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1573:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1069, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1594:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1068, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1594:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1495:118:3" - }, - "src": "1474:140:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1081, - "name": "SetTokenNameUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1080, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1073, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1654:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1072, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1654:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1075, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1686:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1074, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1686:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1077, - "indexed": false, - "name": "oldName", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1722:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1076, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1722:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1079, - "indexed": false, - "name": "newName", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1746:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1078, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1746:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1644:122:3" - }, - "src": "1619:148:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1091, - "name": "SetTokenSymbolUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1083, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1809:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1082, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1809:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1085, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1841:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1084, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1841:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1087, - "indexed": false, - "name": "oldSymbol", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1877:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1086, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1877:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "indexed": false, - "name": "newSymbol", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1903:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1088, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1903:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1799:126:3" - }, - "src": "1772:154:3" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "2119:91:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1096, - "name": "setAddressByHashedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "2137:22:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1100, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1098, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1093, - "src": "2170:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1097, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "2160:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2160:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2137:40:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2189:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2181:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2181:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2137:54:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1095, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2129:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2129:63:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1106, - "nodeType": "ExpressionStatement", - "src": "2129:63:3" - }, - { - "id": 1107, - "nodeType": "PlaceholderStatement", - "src": "2202:1:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Modifiers\n////////////////////////////////////////////////////////", - "id": 1109, - "name": "nameDoesNotExist", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1094, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1093, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "2105:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1092, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2105:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2104:14:3" - }, - "src": "2079:131:3", - "visibility": "internal" - }, - { - "body": { - "id": 1126, - "nodeType": "Block", - "src": "2260:95:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1114, - "name": "setAddressByHashedSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "2278:24:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1118, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1116, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "2313:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1115, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "2303:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2303:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2278:44:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2334:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2326:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2326:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2278:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1113, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2270:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2270:67:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1124, - "nodeType": "ExpressionStatement", - "src": "2270:67:3" - }, - { - "id": 1125, - "nodeType": "PlaceholderStatement", - "src": "2347:1:3" - } - ] - }, - "documentation": null, - "id": 1127, - "name": "symbolDoesNotExist", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "2244:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1110, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2244:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2243:16:3" - }, - "src": "2216:139:3", - "visibility": "internal" - }, - { - "body": { - "id": 1143, - "nodeType": "Block", - "src": "2407:79:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1132, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "2425:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1134, - "indexExpression": { - "argumentTypes": null, - "id": 1133, - "name": "_setAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "2430:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2425:17:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1135, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "setAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1019, - "src": "2425:28:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2465:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2457:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2457:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2425:42:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1131, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2417:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2417:51:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1141, - "nodeType": "ExpressionStatement", - "src": "2417:51:3" - }, - { - "id": 1142, - "nodeType": "PlaceholderStatement", - "src": "2478:1:3" - } - ] - }, - "documentation": null, - "id": 1144, - "name": "setDoesNotExist", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1129, - "name": "_setAddress", - "nodeType": "VariableDeclaration", - "scope": 1144, - "src": "2386:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2386:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2385:21:3" - }, - "src": "2361:125:3", - "visibility": "internal" - }, - { - "body": { - "id": 1153, - "nodeType": "Block", - "src": "2606:41:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1149, - "name": "setFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "2616:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1150, - "name": "_setFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1146, - "src": "2629:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "src": "2616:24:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "id": 1152, - "nodeType": "ExpressionStatement", - "src": "2616:24:3" - } - ] - }, - "documentation": "@dev Constructor Function for the {Set} registry", - "id": 1154, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1146, - "name": "_setFactory", - "nodeType": "VariableDeclaration", - "scope": 1154, - "src": "2574:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - }, - "typeName": { - "contractScope": null, - "id": 1145, - "name": "ISetFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1592, - "src": "2574:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2573:25:3" - }, - "payable": false, - "returnParameters": { - "id": 1148, - "nodeType": "ParameterList", - "parameters": [], - "src": "2606:0:3" - }, - "scope": 1576, - "src": "2562:85:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1234, - "nodeType": "Block", - "src": "3141:807:3", - "statements": [ - { - "assignments": [ - 1178 - ], - "declarations": [ - { - "constant": false, - "id": 1178, - "name": "newSetToken", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "3188:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - }, - "typeName": { - "contractScope": null, - "id": 1177, - "name": "ISetToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1621, - "src": "3188:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1187, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1182, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "3273:7:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1183, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "3298:6:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1184, - "name": "_naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "3322:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1180, - "name": "setFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "3235:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "id": 1181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 1591, - "src": "3235:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_address_$", - "typeString": "function (address[] memory,uint256[] memory,uint256) external returns (address)" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3235:113:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1179, - "name": "ISetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "3212:9:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISetToken_$1621_$", - "typeString": "type(contract ISetToken)" - } - }, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3212:146:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3188:170:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1192, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3439:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1191, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3431:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3431:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "3413:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3413:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 1194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3413:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1195, - "nodeType": "ExpressionStatement", - "src": "3413:39:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1196, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "3509:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1200, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1198, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3522:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1197, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3514:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3514:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3509:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1203, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3584:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3576:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3576:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1205, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3616:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1206, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3643:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 1201, - "name": "SetMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "3538:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SetMetadata_$1024_storage_ptr_$", - "typeString": "type(struct SetTokenRegistry.SetMetadata storage pointer)" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "setAddress", - "name", - "symbol" - ], - "nodeType": "FunctionCall", - "src": "3538:123:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "src": "3509:152:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1209, - "nodeType": "ExpressionStatement", - "src": "3509:152:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1211, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3692:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1213, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3707:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1212, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3699:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3699:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1210, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "3672:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3672:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1216, - "nodeType": "ExpressionStatement", - "src": "3672:48:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1218, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3752:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1220, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3769:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3761:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3761:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1217, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3730:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3730:52:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1223, - "nodeType": "ExpressionStatement", - "src": "3730:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1225, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3827:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3827:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1227, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3851:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - { - "argumentTypes": null, - "id": 1228, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3876:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1229, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3895:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1224, - "name": "SetTokenCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "3798:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3798:114:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1231, - "nodeType": "EmitStatement", - "src": "3793:119:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1232, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3930:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "functionReturnParameters": 1176, - "id": 1233, - "nodeType": "Return", - "src": "3923:18:3" - } - ] - }, - "documentation": "@dev Function creates a new {Set} and add to registry", - "id": 1235, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1169, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3069:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1170, - "modifierName": { - "argumentTypes": null, - "id": 1168, - "name": "nameDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "3052:16:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3052:23:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3103:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1173, - "modifierName": { - "argumentTypes": null, - "id": 1171, - "name": "symbolDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1127, - "src": "3084:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3084:27:3" - } - ], - "name": "create", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1167, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1157, - "name": "_tokens", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2909:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2909:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1156, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2909:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1160, - "name": "_units", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2936:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1158, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2936:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1159, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2936:6:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1162, - "name": "_naturalUnit", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2959:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1161, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2959:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1164, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2986:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1163, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2986:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1166, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "3008:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1165, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3008:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2899:129:3" - }, - "payable": false, - "returnParameters": { - "id": 1176, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1175, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "3128:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1174, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3128:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3127:9:3" - }, - "scope": 1576, - "src": "2884:1064:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1293, - "nodeType": "Block", - "src": "4243:390:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1260, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4271:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1257, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "4253:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4253:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4253:23:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1262, - "nodeType": "ExpressionStatement", - "src": "4253:23:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1263, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "4286:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1265, - "indexExpression": { - "argumentTypes": null, - "id": 1264, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4291:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4286:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1267, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4337:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1268, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4361:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1269, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4388:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 1266, - "name": "SetMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "4299:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SetMetadata_$1024_storage_ptr_$", - "typeString": "type(struct SetTokenRegistry.SetMetadata storage pointer)" - } - }, - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "setAddress", - "name", - "symbol" - ], - "nodeType": "FunctionCall", - "src": "4299:107:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "src": "4286:120:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1272, - "nodeType": "ExpressionStatement", - "src": "4286:120:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1274, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4437:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1275, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4444:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1273, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "4417:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4417:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1277, - "nodeType": "ExpressionStatement", - "src": "4417:32:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1279, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4481:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1280, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4490:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1278, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "4459:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4459:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "4459:36:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1284, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4538:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4538:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1286, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4562:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1287, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4568:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1288, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4587:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1283, - "name": "SetTokenAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "4511:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4511:93:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1290, - "nodeType": "EmitStatement", - "src": "4506:98:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4622:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1256, - "id": 1292, - "nodeType": "Return", - "src": "4615:11:3" - } - ] - }, - "documentation": "@dev Function adds an existing {Set} to the registry", - "id": 1294, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1244, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4125:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1245, - "modifierName": { - "argumentTypes": null, - "id": 1243, - "name": "nameDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "4108:16:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4108:23:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1247, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4159:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1248, - "modifierName": { - "argumentTypes": null, - "id": 1246, - "name": "symbolDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1127, - "src": "4140:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4140:27:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1250, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4192:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1251, - "modifierName": { - "argumentTypes": null, - "id": 1249, - "name": "setDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1144, - "src": "4176:15:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4176:21:3" - }, - { - "arguments": null, - "id": 1253, - "modifierName": { - "argumentTypes": null, - "id": 1252, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "4206:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4206:9:3" - } - ], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1242, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1237, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4041:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1236, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4041:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1239, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4055:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1238, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4055:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1241, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4069:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1240, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4069:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4040:44:3" - }, - "payable": false, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1255, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4233:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1254, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4233:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4232:6:3" - }, - "scope": 1576, - "src": "4028:605:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1358, - "nodeType": "Block", - "src": "4820:483:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1306, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "4838:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1307, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "4846:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1309, - "indexExpression": { - "argumentTypes": null, - "id": 1308, - "name": "_setAddressIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "4859:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4846:30:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4838:38:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1305, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "4830:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4830:47:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1312, - "nodeType": "ExpressionStatement", - "src": "4830:47:3" - }, - { - "assignments": [ - 1314 - ], - "declarations": [ - { - "constant": false, - "id": 1314, - "name": "set", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4888:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - }, - "typeName": { - "contractScope": null, - "id": 1313, - "name": "SetMetadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1024, - "src": "4888:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1318, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1315, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "4913:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1317, - "indexExpression": { - "argumentTypes": null, - "id": 1316, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "4918:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4913:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4888:35:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1320, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4968:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4968:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1322, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "4992:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1323, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5010:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1324, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5010:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1325, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5032:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "5032:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - ], - "id": 1319, - "name": "SetTokenRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "4939:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4939:113:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1328, - "nodeType": "EmitStatement", - "src": "4934:118:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1330, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5083:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1331, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5083:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5101:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5093:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5093:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1329, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "5063:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5063:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1336, - "nodeType": "ExpressionStatement", - "src": "5063:41:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1338, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5136:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1339, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "5136:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5156:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5148:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5148:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1337, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "5114:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5114:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1344, - "nodeType": "ExpressionStatement", - "src": "5114:45:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "5202:17:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1345, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "5209:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1347, - "indexExpression": { - "argumentTypes": null, - "id": 1346, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "5214:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5209:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1349, - "nodeType": "ExpressionStatement", - "src": "5202:17:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1353, - "name": "_setAddressIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "5257:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1350, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "5230:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeByIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 1686, - "src": "5230:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_array$_t_address_$dyn_storage_ptr_$", - "typeString": "function (address[] storage pointer,uint256) returns (uint256)" - } - }, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5230:44:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "5230:44:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5292:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1304, - "id": 1357, - "nodeType": "Return", - "src": "5285:11:3" - } - ] - }, - "documentation": "@dev Function remove a {Set} from the registry", - "id": 1359, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1301, - "modifierName": { - "argumentTypes": null, - "id": 1300, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "4783:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4783:9:3" - } - ], - "name": "remove", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1296, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4723:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1295, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4723:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1298, - "name": "_setAddressIndex", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4737:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1297, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4737:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4722:37:3" - }, - "payable": false, - "returnParameters": { - "id": 1304, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1303, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4810:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1302, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4810:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4809:6:3" - }, - "scope": 1576, - "src": "4707:596:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1410, - "nodeType": "Block", - "src": "5625:364:3", - "statements": [ - { - "assignments": [ - 1371 - ], - "declarations": [ - { - "constant": false, - "id": 1371, - "name": "existingName", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5635:26:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1370, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5635:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1378, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1372, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "5664:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1376, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1374, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5677:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5669:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5669:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5664:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1377, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5664:24:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5635:53:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1380, - "name": "existingName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "5718:12:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1382, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5740:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5732:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5732:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1379, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "5698:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5698:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1385, - "nodeType": "ExpressionStatement", - "src": "5698:45:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1386, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "5754:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1390, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1388, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5767:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5759:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5759:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5754:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1391, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5754:24:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1392, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "5781:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "5754:32:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1394, - "nodeType": "ExpressionStatement", - "src": "5754:32:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1396, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "5816:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1397, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5823:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1395, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "5796:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5796:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1399, - "nodeType": "ExpressionStatement", - "src": "5796:32:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1401, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "5877:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5877:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1403, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5901:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1404, - "name": "existingName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "5919:12:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1405, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "5945:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1400, - "name": "SetTokenNameUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "5844:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5844:116:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1407, - "nodeType": "EmitStatement", - "src": "5839:121:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5978:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1369, - "id": 1409, - "nodeType": "Return", - "src": "5971:11:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Setters / Modify to avoid confusion with {Set}\n////////////////////////////////////////////////////////", - "id": 1411, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1366, - "modifierName": { - "argumentTypes": null, - "id": 1365, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "5588:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5588:9:3" - } - ], - "name": "modifySetName", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1361, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5524:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1360, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5524:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1363, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5546:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1362, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5546:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5514:50:3" - }, - "payable": false, - "returnParameters": { - "id": 1369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1368, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5615:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1367, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5615:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5614:6:3" - }, - "scope": 1576, - "src": "5492:497:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1462, - "nodeType": "Block", - "src": "6132:384:3", - "statements": [ - { - "assignments": [ - 1423 - ], - "declarations": [ - { - "constant": false, - "id": 1423, - "name": "existingSymbol", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6142:28:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1422, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6142:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1430, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1424, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "6173:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1428, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1426, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6186:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6178:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6178:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6173:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "6173:26:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6142:57:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1432, - "name": "existingSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1423, - "src": "6231:14:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1434, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6255:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1433, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6247:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6247:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1431, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "6209:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6209:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1437, - "nodeType": "ExpressionStatement", - "src": "6209:49:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1438, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "6269:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1442, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1440, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6282:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6274:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6274:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6269:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1443, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "6269:26:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1444, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1415, - "src": "6298:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "6269:36:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1446, - "nodeType": "ExpressionStatement", - "src": "6269:36:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1448, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1415, - "src": "6337:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1449, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6346:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1447, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "6315:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6315:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1451, - "nodeType": "ExpressionStatement", - "src": "6315:36:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1453, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "6400:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6400:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1455, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6424:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1456, - "name": "existingSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1423, - "src": "6442:14:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1457, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1415, - "src": "6470:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1452, - "name": "SetTokenNameUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "6367:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6367:120:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1459, - "nodeType": "EmitStatement", - "src": "6362:125:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6505:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1421, - "id": 1461, - "nodeType": "Return", - "src": "6498:11:3" - } - ] - }, - "documentation": null, - "id": 1463, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1418, - "modifierName": { - "argumentTypes": null, - "id": 1417, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "6095:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6095:9:3" - } - ], - "name": "modifySetSymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1416, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1413, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6029:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6029:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1415, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6051:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1414, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6051:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6019:52:3" - }, - "payable": false, - "returnParameters": { - "id": 1421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1420, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6122:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1419, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6122:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6121:6:3" - }, - "scope": 1576, - "src": "5995:521:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1471, - "nodeType": "Block", - "src": "6752:36:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1469, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "6769:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 1468, - "id": 1470, - "nodeType": "Return", - "src": "6762:19:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Getters\n////////////////////////////////////////////////////////", - "id": 1472, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetAddresses", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1464, - "nodeType": "ParameterList", - "parameters": [], - "src": "6690:2:3" - }, - "payable": false, - "returnParameters": { - "id": 1468, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1467, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1472, - "src": "6737:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1465, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6737:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1466, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6737:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6736:11:3" - }, - "scope": 1576, - "src": "6666:122:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1485, - "nodeType": "Block", - "src": "6915:71:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1479, - "name": "setAddressByHashedSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "6932:24:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1483, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1481, - "name": "_setSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "6967:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1480, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "6957:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6957:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6932:47:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 1478, - "id": 1484, - "nodeType": "Return", - "src": "6925:54:3" - } - ] - }, - "documentation": null, - "id": 1486, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetAddressBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1475, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1474, - "name": "_setSymbol", - "nodeType": "VariableDeclaration", - "scope": 1486, - "src": "6834:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1473, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6834:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6824:33:3" - }, - "payable": false, - "returnParameters": { - "id": 1478, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1477, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1486, - "src": "6902:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1476, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6902:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6901:9:3" - }, - "scope": 1576, - "src": "6794:192:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1494, - "nodeType": "Block", - "src": "7069:43:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1491, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "7086:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1492, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7086:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1490, - "id": 1493, - "nodeType": "Return", - "src": "7079:26:3" - } - ] - }, - "documentation": null, - "id": 1495, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1487, - "nodeType": "ParameterList", - "parameters": [], - "src": "7012:2:3" - }, - "payable": false, - "returnParameters": { - "id": 1490, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1489, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1495, - "src": "7059:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1488, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7059:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7058:6:3" - }, - "scope": 1576, - "src": "6992:120:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1508, - "nodeType": "Block", - "src": "7232:64:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1502, - "name": "setAddressByHashedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "7249:22:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1506, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1504, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1497, - "src": "7282:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1503, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "7272:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7272:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7249:40:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 1501, - "id": 1507, - "nodeType": "Return", - "src": "7242:47:3" - } - ] - }, - "documentation": null, - "id": 1509, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetAddressByName", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1498, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1497, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1509, - "src": "7156:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1496, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7156:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7146:28:3" - }, - "payable": false, - "returnParameters": { - "id": 1501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1500, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1509, - "src": "7219:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1499, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7219:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7218:9:3" - }, - "scope": 1576, - "src": "7118:178:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1534, - "nodeType": "Block", - "src": "7582:141:3", - "statements": [ - { - "assignments": [ - 1521 - ], - "declarations": [ - { - "constant": false, - "id": 1521, - "name": "set", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7592:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - }, - "typeName": { - "contractScope": null, - "id": 1520, - "name": "SetMetadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1024, - "src": "7592:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1525, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1522, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "7617:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1524, - "indexExpression": { - "argumentTypes": null, - "id": 1523, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "7622:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7617:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7592:35:3" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1526, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1521, - "src": "7654:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1527, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "setAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1019, - "src": "7654:14:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1528, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1521, - "src": "7678:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1529, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "7678:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1530, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1521, - "src": "7696:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1531, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "7696:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - } - ], - "id": 1532, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7644:72:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_string_memory_$_t_string_memory_$", - "typeString": "tuple(address,string memory,string memory)" - } - }, - "functionReturnParameters": 1519, - "id": 1533, - "nodeType": "Return", - "src": "7637:79:3" - } - ] - }, - "documentation": "@dev Gets a list of set metadata using a set address", - "id": 1535, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetMetadata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1511, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7409:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1510, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7409:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7399:28:3" - }, - "payable": false, - "returnParameters": { - "id": 1519, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1514, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7485:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7485:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1516, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7521:6:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1515, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7521:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1518, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7550:6:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1517, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7550:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7471:106:3" - }, - "scope": 1576, - "src": "7376:347:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1554, - "nodeType": "Block", - "src": "8004:85:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1544, - "name": "setAddressByHashedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "8014:22:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1548, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1546, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1537, - "src": "8047:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1545, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "8037:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8037:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8014:40:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1549, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1539, - "src": "8057:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8014:47:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1551, - "nodeType": "ExpressionStatement", - "src": "8014:47:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8078:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1543, - "id": 1553, - "nodeType": "Return", - "src": "8071:11:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Private Function\n////////////////////////////////////////////////////////", - "id": 1555, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "modifyAddressByName", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1537, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1555, - "src": "7921:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1536, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7921:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1539, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1555, - "src": "7943:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1538, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7943:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:50:3" - }, - "payable": false, - "returnParameters": { - "id": 1543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1555, - "src": "7994:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7994:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7993:6:3" - }, - "scope": 1576, - "src": "7883:206:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1574, - "nodeType": "Block", - "src": "8220:89:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1564, - "name": "setAddressByHashedSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "8230:24:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1568, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1566, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1557, - "src": "8265:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1565, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "8255:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8255:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8230:44:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1569, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1559, - "src": "8277:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8230:51:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1571, - "nodeType": "ExpressionStatement", - "src": "8230:51:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8298:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1563, - "id": 1573, - "nodeType": "Return", - "src": "8291:11:3" - } - ] - }, - "documentation": null, - "id": 1575, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "modifyAddressBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1557, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1575, - "src": "8135:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1556, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8135:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1559, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1575, - "src": "8159:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1558, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8159:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8125:52:3" - }, - "payable": false, - "returnParameters": { - "id": 1563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1562, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1575, - "src": "8210:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1561, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8210:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8209:6:3" - }, - "scope": 1576, - "src": "8095:214:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1577, - "src": "303:8008:3" - } - ], - "src": "0:8312:3" - }, - "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetTokenRegistry.sol", - "exportedSymbols": { - "SetTokenRegistry": [ - 1576 - ] - }, - "id": 1577, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1007, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1008, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 2242, - "src": "25:59:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", - "file": "./interfaces/ISetToken.sol", - "id": 1009, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 1622, - "src": "85:36:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", - "file": "./interfaces/ISetFactory.sol", - "id": 1010, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 1593, - "src": "122:38:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/lib/AddressArrayUtils.sol", - "file": "../lib/AddressArrayUtils.sol", - "id": 1011, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 1688, - "src": "161:38:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1012, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2241, - "src": "332:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$2241", - "typeString": "contract Ownable" - } - }, - "id": 1013, - "nodeType": "InheritanceSpecifier", - "src": "332:7:3" - } - ], - "contractDependencies": [ - 2241 - ], - "contractKind": "contract", - "documentation": "@title {Set} Registry\n@author Felix Feng\n@dev Implementation of the {Set} registry.", - "fullyImplemented": true, - "id": 1576, - "linearizedBaseContracts": [ - 1576, - 2241 - ], - "name": "SetTokenRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1017, - "libraryName": { - "contractScope": null, - "id": 1014, - "name": "AddressArrayUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1687, - "src": "352:17:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressArrayUtils_$1687", - "typeString": "library AddressArrayUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "346:38:3", - "typeName": { - "baseType": { - "id": 1015, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "374:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1016, - "length": null, - "nodeType": "ArrayTypeName", - "src": "374:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - { - "canonicalName": "SetTokenRegistry.SetMetadata", - "id": 1024, - "members": [ - { - "constant": false, - "id": 1019, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1024, - "src": "572:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1018, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "572:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1021, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1024, - "src": "600:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1020, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "600:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1023, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1024, - "src": "621:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1022, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "621:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "SetMetadata", - "nodeType": "StructDefinition", - "scope": 1576, - "src": "543:98:3", - "visibility": "public" - }, - { - "constant": false, - "id": 1026, - "name": "setFactory", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "798:22:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - }, - "typeName": { - "contractScope": null, - "id": 1025, - "name": "ISetFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1592, - "src": "798:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1029, - "name": "setAddresses", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "826:29:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1027, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "826:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1028, - "length": null, - "nodeType": "ArrayTypeName", - "src": "826:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1033, - "name": "sets", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "861:44:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata)" - }, - "typeName": { - "id": 1032, - "keyType": { - "id": 1030, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "870:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "861:32:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata)" - }, - "valueType": { - "contractScope": null, - "id": 1031, - "name": "SetMetadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1024, - "src": "881:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1037, - "name": "setAddressByHashedSymbol", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "911:60:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "typeName": { - "id": 1036, - "keyType": { - "id": 1034, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "920:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "911:28:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "valueType": { - "id": 1035, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "931:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1041, - "name": "setAddressByHashedName", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "977:58:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "typeName": { - "id": 1040, - "keyType": { - "id": 1038, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "986:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "977:28:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "valueType": { - "id": 1039, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "997:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "////////////////////////////////////////////////////////\n Events\n////////////////////////////////////////////////////////", - "id": 1051, - "name": "SetTokenCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1043, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1217:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1042, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1217:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1045, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1249:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1249:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1047, - "indexed": false, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1285:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1046, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1285:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1049, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1306:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1048, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1306:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:118:3" - }, - "src": "1186:140:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1061, - "name": "SetTokenAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 1060, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1053, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1360:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1360:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1055, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1392:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1054, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1392:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1057, - "indexed": false, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1428:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1056, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1428:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1059, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1449:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1058, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1449:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1350:118:3" - }, - "src": "1331:138:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1071, - "name": "SetTokenRemoved", - "nodeType": "EventDefinition", - "parameters": { - "id": 1070, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1063, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1505:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1062, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1505:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1065, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1537:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1064, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1537:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1067, - "indexed": false, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1573:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1066, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1573:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1069, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1594:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1068, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1594:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1495:118:3" - }, - "src": "1474:140:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1081, - "name": "SetTokenNameUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1080, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1073, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1654:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1072, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1654:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1075, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1686:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1074, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1686:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1077, - "indexed": false, - "name": "oldName", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1722:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1076, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1722:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1079, - "indexed": false, - "name": "newName", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1746:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1078, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1746:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1644:122:3" - }, - "src": "1619:148:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1091, - "name": "SetTokenSymbolUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1083, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1809:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1082, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1809:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1085, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1841:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1084, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1841:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1087, - "indexed": false, - "name": "oldSymbol", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1877:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1086, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1877:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "indexed": false, - "name": "newSymbol", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1903:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1088, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1903:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1799:126:3" - }, - "src": "1772:154:3" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "2119:91:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1096, - "name": "setAddressByHashedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "2137:22:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1100, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1098, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1093, - "src": "2170:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1097, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "2160:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2160:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2137:40:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2189:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2181:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2181:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2137:54:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1095, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2129:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2129:63:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1106, - "nodeType": "ExpressionStatement", - "src": "2129:63:3" - }, - { - "id": 1107, - "nodeType": "PlaceholderStatement", - "src": "2202:1:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Modifiers\n////////////////////////////////////////////////////////", - "id": 1109, - "name": "nameDoesNotExist", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1094, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1093, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "2105:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1092, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2105:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2104:14:3" - }, - "src": "2079:131:3", - "visibility": "internal" - }, - { - "body": { - "id": 1126, - "nodeType": "Block", - "src": "2260:95:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1114, - "name": "setAddressByHashedSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "2278:24:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1118, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1116, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "2313:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1115, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "2303:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2303:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2278:44:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2334:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2326:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2326:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2278:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1113, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2270:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2270:67:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1124, - "nodeType": "ExpressionStatement", - "src": "2270:67:3" - }, - { - "id": 1125, - "nodeType": "PlaceholderStatement", - "src": "2347:1:3" - } - ] - }, - "documentation": null, - "id": 1127, - "name": "symbolDoesNotExist", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "2244:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1110, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2244:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2243:16:3" - }, - "src": "2216:139:3", - "visibility": "internal" - }, - { - "body": { - "id": 1143, - "nodeType": "Block", - "src": "2407:79:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1132, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "2425:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1134, - "indexExpression": { - "argumentTypes": null, - "id": 1133, - "name": "_setAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "2430:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2425:17:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1135, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "setAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1019, - "src": "2425:28:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2465:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2457:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2457:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2425:42:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1131, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2417:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2417:51:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1141, - "nodeType": "ExpressionStatement", - "src": "2417:51:3" - }, - { - "id": 1142, - "nodeType": "PlaceholderStatement", - "src": "2478:1:3" - } - ] - }, - "documentation": null, - "id": 1144, - "name": "setDoesNotExist", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1129, - "name": "_setAddress", - "nodeType": "VariableDeclaration", - "scope": 1144, - "src": "2386:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2386:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2385:21:3" - }, - "src": "2361:125:3", - "visibility": "internal" - }, - { - "body": { - "id": 1153, - "nodeType": "Block", - "src": "2606:41:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1149, - "name": "setFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "2616:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1150, - "name": "_setFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1146, - "src": "2629:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "src": "2616:24:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "id": 1152, - "nodeType": "ExpressionStatement", - "src": "2616:24:3" - } - ] - }, - "documentation": "@dev Constructor Function for the {Set} registry", - "id": 1154, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1146, - "name": "_setFactory", - "nodeType": "VariableDeclaration", - "scope": 1154, - "src": "2574:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - }, - "typeName": { - "contractScope": null, - "id": 1145, - "name": "ISetFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1592, - "src": "2574:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2573:25:3" - }, - "payable": false, - "returnParameters": { - "id": 1148, - "nodeType": "ParameterList", - "parameters": [], - "src": "2606:0:3" - }, - "scope": 1576, - "src": "2562:85:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1234, - "nodeType": "Block", - "src": "3141:807:3", - "statements": [ - { - "assignments": [ - 1178 - ], - "declarations": [ - { - "constant": false, - "id": 1178, - "name": "newSetToken", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "3188:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - }, - "typeName": { - "contractScope": null, - "id": 1177, - "name": "ISetToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1621, - "src": "3188:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1187, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1182, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "3273:7:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1183, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "3298:6:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1184, - "name": "_naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "3322:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1180, - "name": "setFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "3235:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "id": 1181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 1591, - "src": "3235:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_address_$", - "typeString": "function (address[] memory,uint256[] memory,uint256) external returns (address)" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3235:113:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1179, - "name": "ISetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "3212:9:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISetToken_$1621_$", - "typeString": "type(contract ISetToken)" - } - }, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3212:146:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3188:170:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1192, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3439:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1191, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3431:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3431:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "3413:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3413:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 1194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3413:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1195, - "nodeType": "ExpressionStatement", - "src": "3413:39:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1196, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "3509:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1200, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1198, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3522:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1197, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3514:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3514:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3509:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1203, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3584:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3576:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3576:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1205, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3616:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1206, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3643:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 1201, - "name": "SetMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "3538:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SetMetadata_$1024_storage_ptr_$", - "typeString": "type(struct SetTokenRegistry.SetMetadata storage pointer)" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "setAddress", - "name", - "symbol" - ], - "nodeType": "FunctionCall", - "src": "3538:123:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "src": "3509:152:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1209, - "nodeType": "ExpressionStatement", - "src": "3509:152:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1211, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3692:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1213, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3707:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1212, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3699:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3699:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1210, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "3672:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3672:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1216, - "nodeType": "ExpressionStatement", - "src": "3672:48:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1218, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3752:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1220, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3769:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3761:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3761:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1217, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3730:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3730:52:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1223, - "nodeType": "ExpressionStatement", - "src": "3730:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1225, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3827:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3827:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1227, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3851:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - { - "argumentTypes": null, - "id": 1228, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3876:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1229, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3895:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1224, - "name": "SetTokenCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "3798:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3798:114:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1231, - "nodeType": "EmitStatement", - "src": "3793:119:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1232, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3930:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "functionReturnParameters": 1176, - "id": 1233, - "nodeType": "Return", - "src": "3923:18:3" - } - ] - }, - "documentation": "@dev Function creates a new {Set} and add to registry", - "id": 1235, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1169, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3069:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1170, - "modifierName": { - "argumentTypes": null, - "id": 1168, - "name": "nameDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "3052:16:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3052:23:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3103:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1173, - "modifierName": { - "argumentTypes": null, - "id": 1171, - "name": "symbolDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1127, - "src": "3084:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3084:27:3" - } - ], - "name": "create", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1167, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1157, - "name": "_tokens", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2909:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2909:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1156, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2909:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1160, - "name": "_units", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2936:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1158, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2936:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1159, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2936:6:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1162, - "name": "_naturalUnit", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2959:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1161, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2959:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1164, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2986:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1163, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2986:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1166, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "3008:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1165, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3008:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2899:129:3" - }, - "payable": false, - "returnParameters": { - "id": 1176, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1175, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "3128:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1174, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3128:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3127:9:3" - }, - "scope": 1576, - "src": "2884:1064:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1293, - "nodeType": "Block", - "src": "4243:390:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1260, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4271:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1257, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "4253:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4253:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4253:23:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1262, - "nodeType": "ExpressionStatement", - "src": "4253:23:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1263, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "4286:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1265, - "indexExpression": { - "argumentTypes": null, - "id": 1264, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4291:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4286:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1267, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4337:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1268, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4361:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1269, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4388:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 1266, - "name": "SetMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "4299:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SetMetadata_$1024_storage_ptr_$", - "typeString": "type(struct SetTokenRegistry.SetMetadata storage pointer)" - } - }, - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "setAddress", - "name", - "symbol" - ], - "nodeType": "FunctionCall", - "src": "4299:107:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "src": "4286:120:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1272, - "nodeType": "ExpressionStatement", - "src": "4286:120:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1274, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4437:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1275, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4444:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1273, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "4417:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4417:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1277, - "nodeType": "ExpressionStatement", - "src": "4417:32:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1279, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4481:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1280, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4490:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1278, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "4459:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4459:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "4459:36:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1284, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4538:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4538:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1286, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4562:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1287, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4568:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1288, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4587:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1283, - "name": "SetTokenAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "4511:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4511:93:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1290, - "nodeType": "EmitStatement", - "src": "4506:98:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4622:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1256, - "id": 1292, - "nodeType": "Return", - "src": "4615:11:3" - } - ] - }, - "documentation": "@dev Function adds an existing {Set} to the registry", - "id": 1294, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1244, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4125:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1245, - "modifierName": { - "argumentTypes": null, - "id": 1243, - "name": "nameDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "4108:16:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4108:23:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1247, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4159:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1248, - "modifierName": { - "argumentTypes": null, - "id": 1246, - "name": "symbolDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1127, - "src": "4140:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4140:27:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1250, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4192:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1251, - "modifierName": { - "argumentTypes": null, - "id": 1249, - "name": "setDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1144, - "src": "4176:15:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4176:21:3" - }, - { - "arguments": null, - "id": 1253, - "modifierName": { - "argumentTypes": null, - "id": 1252, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "4206:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4206:9:3" - } - ], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1242, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1237, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4041:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1236, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4041:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1239, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4055:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1238, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4055:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1241, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4069:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1240, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4069:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4040:44:3" - }, - "payable": false, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1255, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4233:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1254, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4233:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4232:6:3" - }, - "scope": 1576, - "src": "4028:605:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1358, - "nodeType": "Block", - "src": "4820:483:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1306, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "4838:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1307, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "4846:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1309, - "indexExpression": { - "argumentTypes": null, - "id": 1308, - "name": "_setAddressIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "4859:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4846:30:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4838:38:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1305, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "4830:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4830:47:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1312, - "nodeType": "ExpressionStatement", - "src": "4830:47:3" - }, - { - "assignments": [ - 1314 - ], - "declarations": [ - { - "constant": false, - "id": 1314, - "name": "set", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4888:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - }, - "typeName": { - "contractScope": null, - "id": 1313, - "name": "SetMetadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1024, - "src": "4888:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1318, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1315, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "4913:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1317, - "indexExpression": { - "argumentTypes": null, - "id": 1316, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "4918:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4913:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4888:35:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1320, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4968:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4968:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1322, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "4992:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1323, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5010:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1324, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5010:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1325, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5032:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "5032:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - ], - "id": 1319, - "name": "SetTokenRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "4939:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4939:113:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1328, - "nodeType": "EmitStatement", - "src": "4934:118:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1330, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5083:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1331, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5083:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5101:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5093:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5093:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1329, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "5063:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5063:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1336, - "nodeType": "ExpressionStatement", - "src": "5063:41:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1338, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5136:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1339, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "5136:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5156:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5148:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5148:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1337, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "5114:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5114:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1344, - "nodeType": "ExpressionStatement", - "src": "5114:45:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "5202:17:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1345, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "5209:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1347, - "indexExpression": { - "argumentTypes": null, - "id": 1346, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "5214:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5209:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1349, - "nodeType": "ExpressionStatement", - "src": "5202:17:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1353, - "name": "_setAddressIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "5257:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1350, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "5230:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeByIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 1686, - "src": "5230:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_array$_t_address_$dyn_storage_ptr_$", - "typeString": "function (address[] storage pointer,uint256) returns (uint256)" - } - }, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5230:44:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "5230:44:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5292:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1304, - "id": 1357, - "nodeType": "Return", - "src": "5285:11:3" - } - ] - }, - "documentation": "@dev Function remove a {Set} from the registry", - "id": 1359, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1301, - "modifierName": { - "argumentTypes": null, - "id": 1300, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "4783:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4783:9:3" - } - ], - "name": "remove", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1296, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4723:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1295, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4723:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1298, - "name": "_setAddressIndex", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4737:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1297, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4737:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4722:37:3" - }, - "payable": false, - "returnParameters": { - "id": 1304, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1303, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4810:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1302, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4810:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4809:6:3" - }, - "scope": 1576, - "src": "4707:596:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1410, - "nodeType": "Block", - "src": "5625:364:3", - "statements": [ - { - "assignments": [ - 1371 - ], - "declarations": [ - { - "constant": false, - "id": 1371, - "name": "existingName", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5635:26:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1370, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5635:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1378, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1372, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "5664:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1376, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1374, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5677:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5669:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5669:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5664:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1377, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5664:24:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5635:53:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1380, - "name": "existingName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "5718:12:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1382, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5740:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5732:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5732:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1379, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "5698:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5698:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1385, - "nodeType": "ExpressionStatement", - "src": "5698:45:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1386, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "5754:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1390, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1388, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5767:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5759:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5759:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5754:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1391, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5754:24:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1392, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "5781:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "5754:32:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1394, - "nodeType": "ExpressionStatement", - "src": "5754:32:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1396, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "5816:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1397, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5823:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1395, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "5796:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5796:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1399, - "nodeType": "ExpressionStatement", - "src": "5796:32:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1401, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "5877:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5877:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1403, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5901:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1404, - "name": "existingName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "5919:12:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1405, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "5945:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1400, - "name": "SetTokenNameUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "5844:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5844:116:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1407, - "nodeType": "EmitStatement", - "src": "5839:121:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5978:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1369, - "id": 1409, - "nodeType": "Return", - "src": "5971:11:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Setters / Modify to avoid confusion with {Set}\n////////////////////////////////////////////////////////", - "id": 1411, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1366, - "modifierName": { - "argumentTypes": null, - "id": 1365, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "5588:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5588:9:3" - } - ], - "name": "modifySetName", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1361, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5524:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1360, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5524:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1363, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5546:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1362, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5546:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5514:50:3" - }, - "payable": false, - "returnParameters": { - "id": 1369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1368, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5615:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1367, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5615:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5614:6:3" - }, - "scope": 1576, - "src": "5492:497:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1462, - "nodeType": "Block", - "src": "6132:384:3", - "statements": [ - { - "assignments": [ - 1423 - ], - "declarations": [ - { - "constant": false, - "id": 1423, - "name": "existingSymbol", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6142:28:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1422, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6142:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1430, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1424, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "6173:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1428, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1426, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6186:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6178:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6178:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6173:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "6173:26:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6142:57:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1432, - "name": "existingSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1423, - "src": "6231:14:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1434, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6255:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1433, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6247:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6247:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1431, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "6209:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6209:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1437, - "nodeType": "ExpressionStatement", - "src": "6209:49:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1438, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "6269:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1442, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1440, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6282:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6274:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6274:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6269:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1443, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "6269:26:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1444, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1415, - "src": "6298:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "6269:36:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1446, - "nodeType": "ExpressionStatement", - "src": "6269:36:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1448, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1415, - "src": "6337:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1449, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6346:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1447, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "6315:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6315:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1451, - "nodeType": "ExpressionStatement", - "src": "6315:36:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1453, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "6400:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6400:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1455, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6424:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1456, - "name": "existingSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1423, - "src": "6442:14:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1457, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1415, - "src": "6470:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1452, - "name": "SetTokenNameUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "6367:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6367:120:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1459, - "nodeType": "EmitStatement", - "src": "6362:125:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6505:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1421, - "id": 1461, - "nodeType": "Return", - "src": "6498:11:3" - } - ] - }, - "documentation": null, - "id": 1463, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1418, - "modifierName": { - "argumentTypes": null, - "id": 1417, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "6095:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6095:9:3" - } - ], - "name": "modifySetSymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1416, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1413, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6029:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6029:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1415, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6051:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1414, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6051:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6019:52:3" - }, - "payable": false, - "returnParameters": { - "id": 1421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1420, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6122:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1419, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6122:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6121:6:3" - }, - "scope": 1576, - "src": "5995:521:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1471, - "nodeType": "Block", - "src": "6752:36:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1469, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "6769:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 1468, - "id": 1470, - "nodeType": "Return", - "src": "6762:19:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Getters\n////////////////////////////////////////////////////////", - "id": 1472, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetAddresses", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1464, - "nodeType": "ParameterList", - "parameters": [], - "src": "6690:2:3" - }, - "payable": false, - "returnParameters": { - "id": 1468, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1467, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1472, - "src": "6737:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1465, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6737:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1466, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6737:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6736:11:3" - }, - "scope": 1576, - "src": "6666:122:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1485, - "nodeType": "Block", - "src": "6915:71:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1479, - "name": "setAddressByHashedSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "6932:24:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1483, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1481, - "name": "_setSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "6967:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1480, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "6957:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6957:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6932:47:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 1478, - "id": 1484, - "nodeType": "Return", - "src": "6925:54:3" - } - ] - }, - "documentation": null, - "id": 1486, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetAddressBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1475, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1474, - "name": "_setSymbol", - "nodeType": "VariableDeclaration", - "scope": 1486, - "src": "6834:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1473, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6834:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6824:33:3" - }, - "payable": false, - "returnParameters": { - "id": 1478, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1477, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1486, - "src": "6902:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1476, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6902:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6901:9:3" - }, - "scope": 1576, - "src": "6794:192:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1494, - "nodeType": "Block", - "src": "7069:43:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1491, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "7086:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1492, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7086:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1490, - "id": 1493, - "nodeType": "Return", - "src": "7079:26:3" - } - ] - }, - "documentation": null, - "id": 1495, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1487, - "nodeType": "ParameterList", - "parameters": [], - "src": "7012:2:3" - }, - "payable": false, - "returnParameters": { - "id": 1490, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1489, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1495, - "src": "7059:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1488, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7059:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7058:6:3" - }, - "scope": 1576, - "src": "6992:120:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1508, - "nodeType": "Block", - "src": "7232:64:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1502, - "name": "setAddressByHashedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "7249:22:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1506, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1504, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1497, - "src": "7282:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1503, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "7272:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7272:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7249:40:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 1501, - "id": 1507, - "nodeType": "Return", - "src": "7242:47:3" - } - ] - }, - "documentation": null, - "id": 1509, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetAddressByName", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1498, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1497, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1509, - "src": "7156:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1496, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7156:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7146:28:3" - }, - "payable": false, - "returnParameters": { - "id": 1501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1500, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1509, - "src": "7219:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1499, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7219:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7218:9:3" - }, - "scope": 1576, - "src": "7118:178:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1534, - "nodeType": "Block", - "src": "7582:141:3", - "statements": [ - { - "assignments": [ - 1521 - ], - "declarations": [ - { - "constant": false, - "id": 1521, - "name": "set", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7592:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - }, - "typeName": { - "contractScope": null, - "id": 1520, - "name": "SetMetadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1024, - "src": "7592:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1525, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1522, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "7617:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1524, - "indexExpression": { - "argumentTypes": null, - "id": 1523, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "7622:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7617:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7592:35:3" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1526, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1521, - "src": "7654:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1527, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "setAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1019, - "src": "7654:14:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1528, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1521, - "src": "7678:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1529, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "7678:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1530, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1521, - "src": "7696:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1531, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "7696:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - } - ], - "id": 1532, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7644:72:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_string_memory_$_t_string_memory_$", - "typeString": "tuple(address,string memory,string memory)" - } - }, - "functionReturnParameters": 1519, - "id": 1533, - "nodeType": "Return", - "src": "7637:79:3" - } - ] - }, - "documentation": "@dev Gets a list of set metadata using a set address", - "id": 1535, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetMetadata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1511, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7409:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1510, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7409:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7399:28:3" - }, - "payable": false, - "returnParameters": { - "id": 1519, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1514, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7485:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7485:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1516, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7521:6:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1515, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7521:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1518, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7550:6:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1517, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7550:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7471:106:3" - }, - "scope": 1576, - "src": "7376:347:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1554, - "nodeType": "Block", - "src": "8004:85:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1544, - "name": "setAddressByHashedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "8014:22:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1548, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1546, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1537, - "src": "8047:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1545, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "8037:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8037:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8014:40:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1549, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1539, - "src": "8057:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8014:47:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1551, - "nodeType": "ExpressionStatement", - "src": "8014:47:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8078:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1543, - "id": 1553, - "nodeType": "Return", - "src": "8071:11:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Private Function\n////////////////////////////////////////////////////////", - "id": 1555, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "modifyAddressByName", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1537, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1555, - "src": "7921:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1536, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7921:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1539, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1555, - "src": "7943:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1538, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7943:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:50:3" - }, - "payable": false, - "returnParameters": { - "id": 1543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1555, - "src": "7994:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7994:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7993:6:3" - }, - "scope": 1576, - "src": "7883:206:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1574, - "nodeType": "Block", - "src": "8220:89:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1564, - "name": "setAddressByHashedSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "8230:24:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1568, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1566, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1557, - "src": "8265:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1565, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "8255:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8255:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8230:44:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1569, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1559, - "src": "8277:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8230:51:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1571, - "nodeType": "ExpressionStatement", - "src": "8230:51:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8298:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1563, - "id": 1573, - "nodeType": "Return", - "src": "8291:11:3" - } - ] - }, - "documentation": null, - "id": 1575, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "modifyAddressBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1557, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1575, - "src": "8135:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1556, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8135:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1559, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1575, - "src": "8159:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1558, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8159:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8125:52:3" - }, - "payable": false, - "returnParameters": { - "id": 1563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1562, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1575, - "src": "8210:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1561, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8210:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8209:6:3" - }, - "scope": 1576, - "src": "8095:214:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1577, - "src": "303:8008:3" - } - ], - "src": "0:8312:3" - }, - "compiler": { - "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.592Z" -} \ No newline at end of file diff --git a/artifacts/json/StandardToken.json b/artifacts/json/StandardToken.json index e43a66f5a..f1d329861 100644 --- a/artifacts/json/StandardToken.json +++ b/artifacts/json/StandardToken.json @@ -221,24 +221,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611037806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806366188463146101a857806370a082311461020d578063a9059cbb14610264578063d73dd623146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d610497565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104a1565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061085b565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aec565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b34565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d53565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f4f565b6040518082815260200191505060405180910390f35b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156104de57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561052b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156105b657600080fd5b610607826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061069a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061076b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561096c576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a00565b61097f8382610fd690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b7157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610bbe57600080fd5b610c0f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ca2826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000610de482600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000828211151515610fe457fe5b818303905092915050565b6000818301905082811015151561100257fe5b809050929150505600a165627a7a72305820efdbd7a4431781a7f3d329633858f76e41a4d1eb455d2bc46ba11deb405c78e10029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806366188463146101a857806370a082311461020d578063a9059cbb14610264578063d73dd623146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d610497565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104a1565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061085b565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aec565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b34565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d53565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f4f565b6040518082815260200191505060405180910390f35b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156104de57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561052b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156105b657600080fd5b610607826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061069a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061076b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561096c576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a00565b61097f8382610fd690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b7157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610bbe57600080fd5b610c0f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ca2826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000610de482600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000828211151515610fe457fe5b818303905092915050565b6000818301905082811015151561100257fe5b809050929150505600a165627a7a72305820efdbd7a4431781a7f3d329633858f76e41a4d1eb455d2bc46ba11deb405c78e10029", - "sourceMap": "344:3785:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:3785:17;;;;;;;", - "deployedSourceMap": "344:3785:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:12;;;;;;;;;;;;;;;;;;;;;;;736:470:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:425;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;371:83:12:-;415:7;437:12;;430:19;;371:83;:::o;736:470:17:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;3701:425::-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:12:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;608:321::-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:17:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1042:110:10:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "bytecode": "0x608060405234801561001057600080fd5b50611037806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806366188463146101a857806370a082311461020d578063a9059cbb14610264578063d73dd623146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d610497565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104a1565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061085b565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aec565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b34565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d53565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f4f565b6040518082815260200191505060405180910390f35b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156104de57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561052b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156105b657600080fd5b610607826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061069a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061076b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561096c576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a00565b61097f8382610fd690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b7157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610bbe57600080fd5b610c0f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ca2826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000610de482600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000828211151515610fe457fe5b818303905092915050565b6000818301905082811015151561100257fe5b809050929150505600a165627a7a723058202b02b1d4dd0f9af98c2d523f3ca9c91728ecd3d099b565b668615704684ad7b60029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806366188463146101a857806370a082311461020d578063a9059cbb14610264578063d73dd623146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d610497565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104a1565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061085b565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aec565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b34565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d53565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f4f565b6040518082815260200191505060405180910390f35b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156104de57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561052b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156105b657600080fd5b610607826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061069a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061076b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561096c576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a00565b61097f8382610fd690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b7157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610bbe57600080fd5b610c0f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ca2826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000610de482600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000828211151515610fe457fe5b818303905092915050565b6000818301905082811015151561100257fe5b809050929150505600a165627a7a723058202b02b1d4dd0f9af98c2d523f3ca9c91728ecd3d099b565b668615704684ad7b60029", + "sourceMap": "344:3785:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:3785:10;;;;;;;", + "deployedSourceMap": "344:3785:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:6;;;;;;;;;;;;;;;;;;;;;;;736:470:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:425;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;371:83:6:-;415:7;437:12;;430:19;;371:83;:::o;736:470:10:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;3701:425::-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:6:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;608:321::-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:10:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1042:110:4:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", "source": "pragma solidity ^0.4.23;\n\nimport \"./BasicToken.sol\";\nimport \"./ERC20.sol\";\n\n\n/**\n * @title Standard ERC20 token\n *\n * @dev Implementation of the basic standard token.\n * @dev https://github.com/ethereum/EIPs/issues/20\n * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\n */\ncontract StandardToken is ERC20, BasicToken {\n\n mapping (address => mapping (address => uint256)) internal allowed;\n\n\n /**\n * @dev Transfer tokens from one address to another\n * @param _from address The address which you want to send tokens from\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transferFrom(\n address _from,\n address _to,\n uint256 _value\n )\n public\n returns (bool)\n {\n require(_to != address(0));\n require(_value <= balances[_from]);\n require(_value <= allowed[_from][msg.sender]);\n\n balances[_from] = balances[_from].sub(_value);\n balances[_to] = balances[_to].add(_value);\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n emit Transfer(_from, _to, _value);\n return true;\n }\n\n /**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n *\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param _spender The address which will spend the funds.\n * @param _value The amount of tokens to be spent.\n */\n function approve(address _spender, uint256 _value) public returns (bool) {\n allowed[msg.sender][_spender] = _value;\n emit Approval(msg.sender, _spender, _value);\n return true;\n }\n\n /**\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\n * @param _owner address The address which owns the funds.\n * @param _spender address The address which will spend the funds.\n * @return A uint256 specifying the amount of tokens still available for the spender.\n */\n function allowance(\n address _owner,\n address _spender\n )\n public\n view\n returns (uint256)\n {\n return allowed[_owner][_spender];\n }\n\n /**\n * @dev Increase the amount of tokens that an owner allowed to a spender.\n *\n * approve should be called when allowed[_spender] == 0. To increment\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param _spender The address which will spend the funds.\n * @param _addedValue The amount of tokens to increase the allowance by.\n */\n function increaseApproval(\n address _spender,\n uint _addedValue\n )\n public\n returns (bool)\n {\n allowed[msg.sender][_spender] = (\n allowed[msg.sender][_spender].add(_addedValue));\n emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n return true;\n }\n\n /**\n * @dev Decrease the amount of tokens that an owner allowed to a spender.\n *\n * approve should be called when allowed[_spender] == 0. To decrement\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param _spender The address which will spend the funds.\n * @param _subtractedValue The amount of tokens to decrease the allowance by.\n */\n function decreaseApproval(\n address _spender,\n uint _subtractedValue\n )\n public\n returns (bool)\n {\n uint oldValue = allowed[msg.sender][_spender];\n if (_subtractedValue > oldValue) {\n allowed[msg.sender][_spender] = 0;\n } else {\n allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);\n }\n emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n return true;\n }\n\n}\n", "sourcePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "ast": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "exportedSymbols": { "StandardToken": [ - 2799 + 1421 ] }, - "id": 2800, + "id": 1422, "nodeType": "SourceUnit", "nodes": [ { - "id": 2554, + "id": 1176, "literals": [ "solidity", "^", @@ -246,27 +246,27 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:17" + "src": "0:24:10" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/BasicToken.sol", "file": "./BasicToken.sol", - "id": 2555, + "id": 1177, "nodeType": "ImportDirective", - "scope": 2800, - "sourceUnit": 2338, - "src": "26:26:17", + "scope": 1422, + "sourceUnit": 1066, + "src": "26:26:10", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "./ERC20.sol", - "id": 2556, + "id": 1178, "nodeType": "ImportDirective", - "scope": 2800, - "sourceUnit": 2415, - "src": "53:21:17", + "scope": 1422, + "sourceUnit": 1143, + "src": "53:21:10", "symbolAliases": [], "unitAlias": "" }, @@ -276,64 +276,64 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2557, + "id": 1179, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "370:5:17", + "referencedDeclaration": 1142, + "src": "370:5:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", + "typeIdentifier": "t_contract$_ERC20_$1142", "typeString": "contract ERC20" } }, - "id": 2558, + "id": 1180, "nodeType": "InheritanceSpecifier", - "src": "370:5:17" + "src": "370:5:10" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2559, + "id": 1181, "name": "BasicToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2337, - "src": "377:10:17", + "referencedDeclaration": 1065, + "src": "377:10:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_BasicToken_$2337", + "typeIdentifier": "t_contract$_BasicToken_$1065", "typeString": "contract BasicToken" } }, - "id": 2560, + "id": 1182, "nodeType": "InheritanceSpecifier", - "src": "377:10:17" + "src": "377:10:10" } ], "contractDependencies": [ - 2337, - 2414, - 2446 + 1065, + 1142, + 1174 ], "contractKind": "contract", "documentation": "@title Standard ERC20 token\n * @dev Implementation of the basic standard token.\n@dev https://github.com/ethereum/EIPs/issues/20\n@dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol", "fullyImplemented": true, - "id": 2799, + "id": 1421, "linearizedBaseContracts": [ - 2799, - 2337, - 2414, - 2446 + 1421, + 1065, + 1142, + 1174 ], "name": "StandardToken", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2566, + "id": 1188, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 2799, - "src": "393:66:17", + "scope": 1421, + "src": "393:66:10", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -341,46 +341,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 2565, + "id": 1187, "keyType": { - "id": 2561, + "id": 1183, "name": "address", "nodeType": "ElementaryTypeName", - "src": "402:7:17", + "src": "402:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "393:49:17", + "src": "393:49:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 2564, + "id": 1186, "keyType": { - "id": 2562, + "id": 1184, "name": "address", "nodeType": "ElementaryTypeName", - "src": "422:7:17", + "src": "422:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "413:28:17", + "src": "413:28:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 2563, + "id": 1185, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "433:7:17", + "src": "433:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -393,9 +393,9 @@ }, { "body": { - "id": 2651, + "id": 1273, "nodeType": "Block", - "src": "850:356:17", + "src": "850:356:10", "statements": [ { "expression": { @@ -407,19 +407,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2582, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2578, + "id": 1200, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "864:3:17", + "referencedDeclaration": 1192, + "src": "864:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -433,14 +433,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2580, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "879:1:17", + "src": "879:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -456,20 +456,20 @@ "typeString": "int_const 0" } ], - "id": 2579, + "id": 1201, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "871:7:17", + "src": "871:7:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2581, + "id": 1203, "isConstant": false, "isLValue": false, "isPure": true, @@ -477,13 +477,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "871:10:17", + "src": "871:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "864:17:17", + "src": "864:17:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -497,21 +497,21 @@ "typeString": "bool" } ], - "id": 2577, + "id": 1199, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "856:7:17", + "referencedDeclaration": 1439, + "src": "856:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2583, + "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, @@ -519,15 +519,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "856:26:17", + "src": "856:26:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2584, + "id": 1206, "nodeType": "ExpressionStatement", - "src": "856:26:17" + "src": "856:26:10" }, { "expression": { @@ -539,19 +539,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2590, + "id": 1212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2586, + "id": 1208, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "896:6:17", + "referencedDeclaration": 1194, + "src": "896:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -563,26 +563,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2587, + "id": 1209, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "906:8:17", + "referencedDeclaration": 982, + "src": "906:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2589, + "id": 1211, "indexExpression": { "argumentTypes": null, - "id": 2588, + "id": 1210, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "915:5:17", + "referencedDeclaration": 1190, + "src": "915:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -593,13 +593,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "906:15:17", + "src": "906:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "896:25:17", + "src": "896:25:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -613,21 +613,21 @@ "typeString": "bool" } ], - "id": 2585, + "id": 1207, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "888:7:17", + "referencedDeclaration": 1439, + "src": "888:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2591, + "id": 1213, "isConstant": false, "isLValue": false, "isPure": false, @@ -635,15 +635,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "888:34:17", + "src": "888:34:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2592, + "id": 1214, "nodeType": "ExpressionStatement", - "src": "888:34:17" + "src": "888:34:10" }, { "expression": { @@ -655,19 +655,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2601, + "id": 1223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2594, + "id": 1216, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "936:6:17", + "referencedDeclaration": 1194, + "src": "936:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -681,26 +681,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2595, + "id": 1217, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "946:7:17", + "referencedDeclaration": 1188, + "src": "946:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2597, + "id": 1219, "indexExpression": { "argumentTypes": null, - "id": 2596, + "id": 1218, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "954:5:17", + "referencedDeclaration": 1190, + "src": "954:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -711,29 +711,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "946:14:17", + "src": "946:14:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2600, + "id": 1222, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2598, + "id": 1220, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "961:3:17", + "referencedDeclaration": 1436, + "src": "961:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2599, + "id": 1221, "isConstant": false, "isLValue": false, "isPure": false, @@ -741,7 +741,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "961:10:17", + "src": "961:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -752,13 +752,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "946:26:17", + "src": "946:26:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "936:36:17", + "src": "936:36:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -772,21 +772,21 @@ "typeString": "bool" } ], - "id": 2593, + "id": 1215, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "928:7:17", + "referencedDeclaration": 1439, + "src": "928:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2602, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, @@ -794,20 +794,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "928:45:17", + "src": "928:45:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2603, + "id": 1225, "nodeType": "ExpressionStatement", - "src": "928:45:17" + "src": "928:45:10" }, { "expression": { "argumentTypes": null, - "id": 2613, + "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, @@ -816,26 +816,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2604, + "id": 1226, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "980:8:17", + "referencedDeclaration": 982, + "src": "980:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2606, + "id": 1228, "indexExpression": { "argumentTypes": null, - "id": 2605, + "id": 1227, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "989:5:17", + "referencedDeclaration": 1190, + "src": "989:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -846,7 +846,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "980:15:17", + "src": "980:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -859,12 +859,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2611, + "id": 1233, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1018:6:17", + "referencedDeclaration": 1194, + "src": "1018:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -882,26 +882,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2607, + "id": 1229, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "998:8:17", + "referencedDeclaration": 982, + "src": "998:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2609, + "id": 1231, "indexExpression": { "argumentTypes": null, - "id": 2608, + "id": 1230, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1007:5:17", + "referencedDeclaration": 1190, + "src": "1007:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -912,27 +912,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "998:15:17", + "src": "998:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2610, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "998:19:17", + "referencedDeclaration": 858, + "src": "998:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2612, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": false, @@ -940,26 +940,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "998:27:17", + "src": "998:27:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "980:45:17", + "src": "980:45:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2614, + "id": 1236, "nodeType": "ExpressionStatement", - "src": "980:45:17" + "src": "980:45:10" }, { "expression": { "argumentTypes": null, - "id": 2624, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -968,26 +968,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2615, + "id": 1237, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1031:8:17", + "referencedDeclaration": 982, + "src": "1031:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2617, + "id": 1239, "indexExpression": { "argumentTypes": null, - "id": 2616, + "id": 1238, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "1040:3:17", + "referencedDeclaration": 1192, + "src": "1040:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -998,7 +998,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1031:13:17", + "src": "1031:13:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1011,12 +1011,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2622, + "id": 1244, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1065:6:17", + "referencedDeclaration": 1194, + "src": "1065:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1034,26 +1034,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2618, + "id": 1240, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1047:8:17", + "referencedDeclaration": 982, + "src": "1047:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2620, + "id": 1242, "indexExpression": { "argumentTypes": null, - "id": 2619, + "id": 1241, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "1056:3:17", + "referencedDeclaration": 1192, + "src": "1056:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1064,27 +1064,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1047:13:17", + "src": "1047:13:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2621, + "id": 1243, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1047:17:17", + "referencedDeclaration": 882, + "src": "1047:17:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2623, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": false, @@ -1092,26 +1092,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1047:25:17", + "src": "1047:25:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1031:41:17", + "src": "1031:41:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2625, + "id": 1247, "nodeType": "ExpressionStatement", - "src": "1031:41:17" + "src": "1031:41:10" }, { "expression": { "argumentTypes": null, - "id": 2641, + "id": 1263, "isConstant": false, "isLValue": false, "isPure": false, @@ -1122,26 +1122,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2626, + "id": 1248, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1078:7:17", + "referencedDeclaration": 1188, + "src": "1078:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2630, + "id": 1252, "indexExpression": { "argumentTypes": null, - "id": 2627, + "id": 1249, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1086:5:17", + "referencedDeclaration": 1190, + "src": "1086:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1152,29 +1152,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1078:14:17", + "src": "1078:14:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2631, + "id": 1253, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2628, + "id": 1250, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1093:3:17", + "referencedDeclaration": 1436, + "src": "1093:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2629, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, @@ -1182,7 +1182,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1093:10:17", + "src": "1093:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1193,7 +1193,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1078:26:17", + "src": "1078:26:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1206,12 +1206,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2639, + "id": 1261, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1138:6:17", + "referencedDeclaration": 1194, + "src": "1138:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1231,26 +1231,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2632, + "id": 1254, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1107:7:17", + "referencedDeclaration": 1188, + "src": "1107:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2634, + "id": 1256, "indexExpression": { "argumentTypes": null, - "id": 2633, + "id": 1255, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1115:5:17", + "referencedDeclaration": 1190, + "src": "1115:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1261,29 +1261,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1107:14:17", + "src": "1107:14:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2637, + "id": 1259, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2635, + "id": 1257, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1122:3:17", + "referencedDeclaration": 1436, + "src": "1122:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2636, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, @@ -1291,7 +1291,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1122:10:17", + "src": "1122:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1302,27 +1302,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1107:26:17", + "src": "1107:26:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2638, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1107:30:17", + "referencedDeclaration": 858, + "src": "1107:30:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2640, + "id": 1262, "isConstant": false, "isLValue": false, "isPure": false, @@ -1330,21 +1330,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1107:38:17", + "src": "1107:38:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1078:67:17", + "src": "1078:67:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2642, + "id": 1264, "nodeType": "ExpressionStatement", - "src": "1078:67:17" + "src": "1078:67:10" }, { "eventCall": { @@ -1352,12 +1352,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2644, + "id": 1266, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1165:5:17", + "referencedDeclaration": 1190, + "src": "1165:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1365,12 +1365,12 @@ }, { "argumentTypes": null, - "id": 2645, + "id": 1267, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "1172:3:17", + "referencedDeclaration": 1192, + "src": "1172:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1378,12 +1378,12 @@ }, { "argumentTypes": null, - "id": 2646, + "id": 1268, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1177:6:17", + "referencedDeclaration": 1194, + "src": "1177:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1405,18 +1405,18 @@ "typeString": "uint256" } ], - "id": 2643, + "id": 1265, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "1156:8:17", + "referencedDeclaration": 1173, + "src": "1156:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2647, + "id": 1269, "isConstant": false, "isLValue": false, "isPure": false, @@ -1424,28 +1424,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1156:28:17", + "src": "1156:28:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2648, + "id": 1270, "nodeType": "EmitStatement", - "src": "1151:33:17" + "src": "1151:33:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2649, + "id": 1271, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1197:4:17", + "src": "1197:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1453,15 +1453,15 @@ }, "value": "true" }, - "functionReturnParameters": 2576, - "id": 2650, + "functionReturnParameters": 1198, + "id": 1272, "nodeType": "Return", - "src": "1190:11:17" + "src": "1190:11:10" } ] }, "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", - "id": 2652, + "id": 1274, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1469,16 +1469,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 2573, + "id": 1195, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2568, + "id": 1190, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "763:13:17", + "scope": 1274, + "src": "763:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1486,10 +1486,10 @@ "typeString": "address" }, "typeName": { - "id": 2567, + "id": 1189, "name": "address", "nodeType": "ElementaryTypeName", - "src": "763:7:17", + "src": "763:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1500,11 +1500,11 @@ }, { "constant": false, - "id": 2570, + "id": 1192, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "782:11:17", + "scope": 1274, + "src": "782:11:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1512,10 +1512,10 @@ "typeString": "address" }, "typeName": { - "id": 2569, + "id": 1191, "name": "address", "nodeType": "ElementaryTypeName", - "src": "782:7:17", + "src": "782:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1526,11 +1526,11 @@ }, { "constant": false, - "id": 2572, + "id": 1194, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "799:14:17", + "scope": 1274, + "src": "799:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1538,10 +1538,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2571, + "id": 1193, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "799:7:17", + "src": "799:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1551,20 +1551,20 @@ "visibility": "internal" } ], - "src": "757:60:17" + "src": "757:60:10" }, "payable": false, "returnParameters": { - "id": 2576, + "id": 1198, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2575, + "id": 1197, "name": "", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "842:4:17", + "scope": 1274, + "src": "842:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1572,10 +1572,10 @@ "typeString": "bool" }, "typeName": { - "id": 2574, + "id": 1196, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "842:4:17", + "src": "842:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1585,24 +1585,24 @@ "visibility": "internal" } ], - "src": "841:6:17" + "src": "841:6:10" }, - "scope": 2799, - "src": "736:470:17", + "scope": 1421, + "src": "736:470:10", "stateMutability": "nonpayable", - "superFunction": 2396, + "superFunction": 1124, "visibility": "public" }, { "body": { - "id": 2679, + "id": 1301, "nodeType": "Block", - "src": "1902:115:17", + "src": "1902:115:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2668, + "id": 1290, "isConstant": false, "isLValue": false, "isPure": false, @@ -1613,34 +1613,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2661, + "id": 1283, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1908:7:17", + "referencedDeclaration": 1188, + "src": "1908:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2665, + "id": 1287, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2662, + "id": 1284, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1916:3:17", + "referencedDeclaration": 1436, + "src": "1916:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2663, + "id": 1285, "isConstant": false, "isLValue": false, "isPure": false, @@ -1648,7 +1648,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1916:10:17", + "src": "1916:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1659,21 +1659,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1908:19:17", + "src": "1908:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2666, + "id": 1288, "indexExpression": { "argumentTypes": null, - "id": 2664, + "id": 1286, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2654, - "src": "1928:8:17", + "referencedDeclaration": 1276, + "src": "1928:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1684,7 +1684,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1908:29:17", + "src": "1908:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1694,26 +1694,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2667, + "id": 1289, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, - "src": "1940:6:17", + "referencedDeclaration": 1278, + "src": "1940:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1908:38:17", + "src": "1908:38:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2669, + "id": 1291, "nodeType": "ExpressionStatement", - "src": "1908:38:17" + "src": "1908:38:10" }, { "eventCall": { @@ -1723,18 +1723,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2671, + "id": 1293, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1966:3:17", + "referencedDeclaration": 1436, + "src": "1966:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2672, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": false, @@ -1742,7 +1742,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1966:10:17", + "src": "1966:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1750,12 +1750,12 @@ }, { "argumentTypes": null, - "id": 2673, + "id": 1295, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2654, - "src": "1978:8:17", + "referencedDeclaration": 1276, + "src": "1978:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1763,12 +1763,12 @@ }, { "argumentTypes": null, - "id": 2674, + "id": 1296, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, - "src": "1988:6:17", + "referencedDeclaration": 1278, + "src": "1988:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1790,18 +1790,18 @@ "typeString": "uint256" } ], - "id": 2670, + "id": 1292, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "1957:8:17", + "referencedDeclaration": 1141, + "src": "1957:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2675, + "id": 1297, "isConstant": false, "isLValue": false, "isPure": false, @@ -1809,28 +1809,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1957:38:17", + "src": "1957:38:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2676, + "id": 1298, "nodeType": "EmitStatement", - "src": "1952:43:17" + "src": "1952:43:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2677, + "id": 1299, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2008:4:17", + "src": "2008:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1838,15 +1838,15 @@ }, "value": "true" }, - "functionReturnParameters": 2660, - "id": 2678, + "functionReturnParameters": 1282, + "id": 1300, "nodeType": "Return", - "src": "2001:11:17" + "src": "2001:11:10" } ] }, "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.", - "id": 2680, + "id": 1302, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1854,16 +1854,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 2657, + "id": 1279, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2654, + "id": 1276, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2680, - "src": "1846:16:17", + "scope": 1302, + "src": "1846:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1871,10 +1871,10 @@ "typeString": "address" }, "typeName": { - "id": 2653, + "id": 1275, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1846:7:17", + "src": "1846:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1885,11 +1885,11 @@ }, { "constant": false, - "id": 2656, + "id": 1278, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2680, - "src": "1864:14:17", + "scope": 1302, + "src": "1864:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1897,10 +1897,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2655, + "id": 1277, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1864:7:17", + "src": "1864:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1910,20 +1910,20 @@ "visibility": "internal" } ], - "src": "1845:34:17" + "src": "1845:34:10" }, "payable": false, "returnParameters": { - "id": 2660, + "id": 1282, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2659, + "id": 1281, "name": "", "nodeType": "VariableDeclaration", - "scope": 2680, - "src": "1896:4:17", + "scope": 1302, + "src": "1896:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1931,10 +1931,10 @@ "typeString": "bool" }, "typeName": { - "id": 2658, + "id": 1280, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1896:4:17", + "src": "1896:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1944,19 +1944,19 @@ "visibility": "internal" } ], - "src": "1895:6:17" + "src": "1895:6:10" }, - "scope": 2799, - "src": "1829:188:17", + "scope": 1421, + "src": "1829:188:10", "stateMutability": "nonpayable", - "superFunction": 2405, + "superFunction": 1133, "visibility": "public" }, { "body": { - "id": 2695, + "id": 1317, "nodeType": "Block", - "src": "2446:43:17", + "src": "2446:43:10", "statements": [ { "expression": { @@ -1965,26 +1965,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2689, + "id": 1311, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "2459:7:17", + "referencedDeclaration": 1188, + "src": "2459:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2691, + "id": 1313, "indexExpression": { "argumentTypes": null, - "id": 2690, + "id": 1312, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2682, - "src": "2467:6:17", + "referencedDeclaration": 1304, + "src": "2467:6:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1995,21 +1995,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2459:15:17", + "src": "2459:15:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2693, + "id": 1315, "indexExpression": { "argumentTypes": null, - "id": 2692, + "id": 1314, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2684, - "src": "2475:8:17", + "referencedDeclaration": 1306, + "src": "2475:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2020,21 +2020,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2459:25:17", + "src": "2459:25:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2688, - "id": 2694, + "functionReturnParameters": 1310, + "id": 1316, "nodeType": "Return", - "src": "2452:32:17" + "src": "2452:32:10" } ] }, "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param _owner address The address which owns the funds.\n@param _spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", - "id": 2696, + "id": 1318, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2042,16 +2042,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2685, + "id": 1307, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2682, + "id": 1304, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 2696, - "src": "2360:14:17", + "scope": 1318, + "src": "2360:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2059,10 +2059,10 @@ "typeString": "address" }, "typeName": { - "id": 2681, + "id": 1303, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2360:7:17", + "src": "2360:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2073,11 +2073,11 @@ }, { "constant": false, - "id": 2684, + "id": 1306, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2696, - "src": "2380:16:17", + "scope": 1318, + "src": "2380:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2085,10 +2085,10 @@ "typeString": "address" }, "typeName": { - "id": 2683, + "id": 1305, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2380:7:17", + "src": "2380:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2098,20 +2098,20 @@ "visibility": "internal" } ], - "src": "2354:47:17" + "src": "2354:47:10" }, "payable": false, "returnParameters": { - "id": 2688, + "id": 1310, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2687, + "id": 1309, "name": "", "nodeType": "VariableDeclaration", - "scope": 2696, - "src": "2435:7:17", + "scope": 1318, + "src": "2435:7:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2119,10 +2119,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2686, + "id": 1308, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2435:7:17", + "src": "2435:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2132,24 +2132,24 @@ "visibility": "internal" } ], - "src": "2434:9:17" + "src": "2434:9:10" }, - "scope": 2799, - "src": "2336:153:17", + "scope": 1421, + "src": "2336:153:10", "stateMutability": "view", - "superFunction": 2385, + "superFunction": 1113, "visibility": "public" }, { "body": { - "id": 2737, + "id": 1359, "nodeType": "Block", - "src": "3052:187:17", + "src": "3052:187:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2721, + "id": 1343, "isConstant": false, "isLValue": false, "isPure": false, @@ -2160,34 +2160,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2705, + "id": 1327, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3058:7:17", + "referencedDeclaration": 1188, + "src": "3058:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2709, + "id": 1331, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2706, + "id": 1328, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3066:3:17", + "referencedDeclaration": 1436, + "src": "3066:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2707, + "id": 1329, "isConstant": false, "isLValue": false, "isPure": false, @@ -2195,7 +2195,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3066:10:17", + "src": "3066:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2206,21 +2206,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3058:19:17", + "src": "3058:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2710, + "id": 1332, "indexExpression": { "argumentTypes": null, - "id": 2708, + "id": 1330, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3078:8:17", + "referencedDeclaration": 1320, + "src": "3078:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2231,7 +2231,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3058:29:17", + "src": "3058:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2247,12 +2247,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2718, + "id": 1340, "name": "_addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, - "src": "3132:11:17", + "referencedDeclaration": 1322, + "src": "3132:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2272,34 +2272,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2711, + "id": 1333, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3098:7:17", + "referencedDeclaration": 1188, + "src": "3098:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2714, + "id": 1336, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2712, + "id": 1334, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3106:3:17", + "referencedDeclaration": 1436, + "src": "3106:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2713, + "id": 1335, "isConstant": false, "isLValue": false, "isPure": false, @@ -2307,7 +2307,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3106:10:17", + "src": "3106:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2318,21 +2318,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3098:19:17", + "src": "3098:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2716, + "id": 1338, "indexExpression": { "argumentTypes": null, - "id": 2715, + "id": 1337, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3118:8:17", + "referencedDeclaration": 1320, + "src": "3118:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2343,27 +2343,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3098:29:17", + "src": "3098:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2717, + "id": 1339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "3098:33:17", + "referencedDeclaration": 882, + "src": "3098:33:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2719, + "id": 1341, "isConstant": false, "isLValue": false, "isPure": false, @@ -2371,35 +2371,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3098:46:17", + "src": "3098:46:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2720, + "id": 1342, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3090:55:17", + "src": "3090:55:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3058:87:17", + "src": "3058:87:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2722, + "id": 1344, "nodeType": "ExpressionStatement", - "src": "3058:87:17" + "src": "3058:87:10" }, { "eventCall": { @@ -2409,18 +2409,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2724, + "id": 1346, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3165:3:17", + "referencedDeclaration": 1436, + "src": "3165:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2725, + "id": 1347, "isConstant": false, "isLValue": false, "isPure": false, @@ -2428,7 +2428,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3165:10:17", + "src": "3165:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2436,12 +2436,12 @@ }, { "argumentTypes": null, - "id": 2726, + "id": 1348, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3177:8:17", + "referencedDeclaration": 1320, + "src": "3177:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2453,34 +2453,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2727, + "id": 1349, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3187:7:17", + "referencedDeclaration": 1188, + "src": "3187:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2730, + "id": 1352, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2728, + "id": 1350, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3195:3:17", + "referencedDeclaration": 1436, + "src": "3195:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2729, + "id": 1351, "isConstant": false, "isLValue": false, "isPure": false, @@ -2488,7 +2488,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3195:10:17", + "src": "3195:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2499,21 +2499,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3187:19:17", + "src": "3187:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2732, + "id": 1354, "indexExpression": { "argumentTypes": null, - "id": 2731, + "id": 1353, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3207:8:17", + "referencedDeclaration": 1320, + "src": "3207:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2524,7 +2524,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3187:29:17", + "src": "3187:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2546,18 +2546,18 @@ "typeString": "uint256" } ], - "id": 2723, + "id": 1345, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "3156:8:17", + "referencedDeclaration": 1141, + "src": "3156:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2733, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": false, @@ -2565,28 +2565,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3156:61:17", + "src": "3156:61:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2734, + "id": 1356, "nodeType": "EmitStatement", - "src": "3151:66:17" + "src": "3151:66:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2735, + "id": 1357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3230:4:17", + "src": "3230:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2594,15 +2594,15 @@ }, "value": "true" }, - "functionReturnParameters": 2704, - "id": 2736, + "functionReturnParameters": 1326, + "id": 1358, "nodeType": "Return", - "src": "3223:11:17" + "src": "3223:11:10" } ] }, "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.", - "id": 2738, + "id": 1360, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2610,16 +2610,16 @@ "name": "increaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 2701, + "id": 1323, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2698, + "id": 1320, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2738, - "src": "2977:16:17", + "scope": 1360, + "src": "2977:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2627,10 +2627,10 @@ "typeString": "address" }, "typeName": { - "id": 2697, + "id": 1319, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2977:7:17", + "src": "2977:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2641,11 +2641,11 @@ }, { "constant": false, - "id": 2700, + "id": 1322, "name": "_addedValue", "nodeType": "VariableDeclaration", - "scope": 2738, - "src": "2999:16:17", + "scope": 1360, + "src": "2999:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2653,10 +2653,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2699, + "id": 1321, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2999:4:17", + "src": "2999:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2666,20 +2666,20 @@ "visibility": "internal" } ], - "src": "2971:48:17" + "src": "2971:48:10" }, "payable": false, "returnParameters": { - "id": 2704, + "id": 1326, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2703, + "id": 1325, "name": "", "nodeType": "VariableDeclaration", - "scope": 2738, - "src": "3044:4:17", + "scope": 1360, + "src": "3044:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2687,10 +2687,10 @@ "typeString": "bool" }, "typeName": { - "id": 2702, + "id": 1324, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3044:4:17", + "src": "3044:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2700,32 +2700,32 @@ "visibility": "internal" } ], - "src": "3043:6:17" + "src": "3043:6:10" }, - "scope": 2799, - "src": "2946:293:17", + "scope": 1421, + "src": "2946:293:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2797, + "id": 1419, "nodeType": "Block", - "src": "3812:314:17", + "src": "3812:314:10", "statements": [ { "assignments": [ - 2748 + 1370 ], "declarations": [ { "constant": false, - "id": 2748, + "id": 1370, "name": "oldValue", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3818:13:17", + "scope": 1420, + "src": "3818:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2733,10 +2733,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2747, + "id": 1369, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3818:4:17", + "src": "3818:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2746,41 +2746,41 @@ "visibility": "internal" } ], - "id": 2755, + "id": 1377, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2749, + "id": 1371, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3834:7:17", + "referencedDeclaration": 1188, + "src": "3834:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2752, + "id": 1374, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2750, + "id": 1372, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3842:3:17", + "referencedDeclaration": 1436, + "src": "3842:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2751, + "id": 1373, "isConstant": false, "isLValue": false, "isPure": false, @@ -2788,7 +2788,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3842:10:17", + "src": "3842:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2799,21 +2799,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3834:19:17", + "src": "3834:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2754, + "id": 1376, "indexExpression": { "argumentTypes": null, - "id": 2753, + "id": 1375, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "3854:8:17", + "referencedDeclaration": 1362, + "src": "3854:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2824,14 +2824,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3834:29:17", + "src": "3834:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3818:45:17" + "src": "3818:45:10" }, { "condition": { @@ -2840,19 +2840,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2758, + "id": 1380, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2756, + "id": 1378, "name": "_subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "3873:16:17", + "referencedDeclaration": 1364, + "src": "3873:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2862,32 +2862,32 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 2757, + "id": 1379, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2748, - "src": "3892:8:17", + "referencedDeclaration": 1370, + "src": "3892:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3873:27:17", + "src": "3873:27:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2781, + "id": 1403, "nodeType": "Block", - "src": "3956:77:17", + "src": "3956:77:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2779, + "id": 1401, "isConstant": false, "isLValue": false, "isPure": false, @@ -2898,34 +2898,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2769, + "id": 1391, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3964:7:17", + "referencedDeclaration": 1188, + "src": "3964:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2773, + "id": 1395, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2770, + "id": 1392, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3972:3:17", + "referencedDeclaration": 1436, + "src": "3972:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2771, + "id": 1393, "isConstant": false, "isLValue": false, "isPure": false, @@ -2933,7 +2933,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3972:10:17", + "src": "3972:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2944,21 +2944,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3964:19:17", + "src": "3964:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2774, + "id": 1396, "indexExpression": { "argumentTypes": null, - "id": 2772, + "id": 1394, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "3984:8:17", + "referencedDeclaration": 1362, + "src": "3984:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2969,7 +2969,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3964:29:17", + "src": "3964:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2982,12 +2982,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2777, + "id": 1399, "name": "_subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "4009:16:17", + "referencedDeclaration": 1364, + "src": "4009:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3003,32 +3003,32 @@ ], "expression": { "argumentTypes": null, - "id": 2775, + "id": 1397, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2748, - "src": "3996:8:17", + "referencedDeclaration": 1370, + "src": "3996:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2776, + "id": 1398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "3996:12:17", + "referencedDeclaration": 858, + "src": "3996:12:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2778, + "id": 1400, "isConstant": false, "isLValue": false, "isPure": false, @@ -3036,36 +3036,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3996:30:17", + "src": "3996:30:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3964:62:17", + "src": "3964:62:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2780, + "id": 1402, "nodeType": "ExpressionStatement", - "src": "3964:62:17" + "src": "3964:62:10" } ] }, - "id": 2782, + "id": 1404, "nodeType": "IfStatement", - "src": "3869:164:17", + "src": "3869:164:10", "trueBody": { - "id": 2768, + "id": 1390, "nodeType": "Block", - "src": "3902:48:17", + "src": "3902:48:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2766, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": false, @@ -3076,34 +3076,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2759, + "id": 1381, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3910:7:17", + "referencedDeclaration": 1188, + "src": "3910:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2763, + "id": 1385, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2760, + "id": 1382, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3918:3:17", + "referencedDeclaration": 1436, + "src": "3918:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2761, + "id": 1383, "isConstant": false, "isLValue": false, "isPure": false, @@ -3111,7 +3111,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3918:10:17", + "src": "3918:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3122,21 +3122,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3910:19:17", + "src": "3910:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2764, + "id": 1386, "indexExpression": { "argumentTypes": null, - "id": 2762, + "id": 1384, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "3930:8:17", + "referencedDeclaration": 1362, + "src": "3930:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3147,7 +3147,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3910:29:17", + "src": "3910:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3158,14 +3158,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2765, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3942:1:17", + "src": "3942:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3173,15 +3173,15 @@ }, "value": "0" }, - "src": "3910:33:17", + "src": "3910:33:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2767, + "id": 1389, "nodeType": "ExpressionStatement", - "src": "3910:33:17" + "src": "3910:33:10" } ] } @@ -3194,18 +3194,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2784, + "id": 1406, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4052:3:17", + "referencedDeclaration": 1436, + "src": "4052:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2785, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, @@ -3213,7 +3213,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4052:10:17", + "src": "4052:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3221,12 +3221,12 @@ }, { "argumentTypes": null, - "id": 2786, + "id": 1408, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "4064:8:17", + "referencedDeclaration": 1362, + "src": "4064:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3238,34 +3238,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2787, + "id": 1409, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "4074:7:17", + "referencedDeclaration": 1188, + "src": "4074:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2790, + "id": 1412, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2788, + "id": 1410, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4082:3:17", + "referencedDeclaration": 1436, + "src": "4082:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2789, + "id": 1411, "isConstant": false, "isLValue": false, "isPure": false, @@ -3273,7 +3273,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4082:10:17", + "src": "4082:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3284,21 +3284,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4074:19:17", + "src": "4074:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2792, + "id": 1414, "indexExpression": { "argumentTypes": null, - "id": 2791, + "id": 1413, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "4094:8:17", + "referencedDeclaration": 1362, + "src": "4094:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3309,7 +3309,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4074:29:17", + "src": "4074:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3331,18 +3331,18 @@ "typeString": "uint256" } ], - "id": 2783, + "id": 1405, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "4043:8:17", + "referencedDeclaration": 1141, + "src": "4043:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2793, + "id": 1415, "isConstant": false, "isLValue": false, "isPure": false, @@ -3350,28 +3350,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4043:61:17", + "src": "4043:61:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2794, + "id": 1416, "nodeType": "EmitStatement", - "src": "4038:66:17" + "src": "4038:66:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2795, + "id": 1417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4117:4:17", + "src": "4117:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3379,15 +3379,15 @@ }, "value": "true" }, - "functionReturnParameters": 2746, - "id": 2796, + "functionReturnParameters": 1368, + "id": 1418, "nodeType": "Return", - "src": "4110:11:17" + "src": "4110:11:10" } ] }, "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.", - "id": 2798, + "id": 1420, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3395,16 +3395,16 @@ "name": "decreaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 2743, + "id": 1365, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2740, + "id": 1362, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3732:16:17", + "scope": 1420, + "src": "3732:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3412,10 +3412,10 @@ "typeString": "address" }, "typeName": { - "id": 2739, + "id": 1361, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3732:7:17", + "src": "3732:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3426,11 +3426,11 @@ }, { "constant": false, - "id": 2742, + "id": 1364, "name": "_subtractedValue", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3754:21:17", + "scope": 1420, + "src": "3754:21:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3438,10 +3438,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2741, + "id": 1363, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3754:4:17", + "src": "3754:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3451,20 +3451,20 @@ "visibility": "internal" } ], - "src": "3726:53:17" + "src": "3726:53:10" }, "payable": false, "returnParameters": { - "id": 2746, + "id": 1368, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2745, + "id": 1367, "name": "", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3804:4:17", + "scope": 1420, + "src": "3804:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3472,10 +3472,10 @@ "typeString": "bool" }, "typeName": { - "id": 2744, + "id": 1366, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3804:4:17", + "src": "3804:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3485,33 +3485,33 @@ "visibility": "internal" } ], - "src": "3803:6:17" + "src": "3803:6:10" }, - "scope": 2799, - "src": "3701:425:17", + "scope": 1421, + "src": "3701:425:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2800, - "src": "344:3785:17" + "scope": 1422, + "src": "344:3785:10" } ], - "src": "0:4130:17" + "src": "0:4130:10" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "exportedSymbols": { "StandardToken": [ - 2799 + 1421 ] }, - "id": 2800, + "id": 1422, "nodeType": "SourceUnit", "nodes": [ { - "id": 2554, + "id": 1176, "literals": [ "solidity", "^", @@ -3519,27 +3519,27 @@ ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:17" + "src": "0:24:10" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/BasicToken.sol", "file": "./BasicToken.sol", - "id": 2555, + "id": 1177, "nodeType": "ImportDirective", - "scope": 2800, - "sourceUnit": 2338, - "src": "26:26:17", + "scope": 1422, + "sourceUnit": 1066, + "src": "26:26:10", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "./ERC20.sol", - "id": 2556, + "id": 1178, "nodeType": "ImportDirective", - "scope": 2800, - "sourceUnit": 2415, - "src": "53:21:17", + "scope": 1422, + "sourceUnit": 1143, + "src": "53:21:10", "symbolAliases": [], "unitAlias": "" }, @@ -3549,64 +3549,64 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2557, + "id": 1179, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "370:5:17", + "referencedDeclaration": 1142, + "src": "370:5:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", + "typeIdentifier": "t_contract$_ERC20_$1142", "typeString": "contract ERC20" } }, - "id": 2558, + "id": 1180, "nodeType": "InheritanceSpecifier", - "src": "370:5:17" + "src": "370:5:10" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2559, + "id": 1181, "name": "BasicToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2337, - "src": "377:10:17", + "referencedDeclaration": 1065, + "src": "377:10:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_BasicToken_$2337", + "typeIdentifier": "t_contract$_BasicToken_$1065", "typeString": "contract BasicToken" } }, - "id": 2560, + "id": 1182, "nodeType": "InheritanceSpecifier", - "src": "377:10:17" + "src": "377:10:10" } ], "contractDependencies": [ - 2337, - 2414, - 2446 + 1065, + 1142, + 1174 ], "contractKind": "contract", "documentation": "@title Standard ERC20 token\n * @dev Implementation of the basic standard token.\n@dev https://github.com/ethereum/EIPs/issues/20\n@dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol", "fullyImplemented": true, - "id": 2799, + "id": 1421, "linearizedBaseContracts": [ - 2799, - 2337, - 2414, - 2446 + 1421, + 1065, + 1142, + 1174 ], "name": "StandardToken", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2566, + "id": 1188, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 2799, - "src": "393:66:17", + "scope": 1421, + "src": "393:66:10", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3614,46 +3614,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 2565, + "id": 1187, "keyType": { - "id": 2561, + "id": 1183, "name": "address", "nodeType": "ElementaryTypeName", - "src": "402:7:17", + "src": "402:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "393:49:17", + "src": "393:49:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 2564, + "id": 1186, "keyType": { - "id": 2562, + "id": 1184, "name": "address", "nodeType": "ElementaryTypeName", - "src": "422:7:17", + "src": "422:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "413:28:17", + "src": "413:28:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 2563, + "id": 1185, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "433:7:17", + "src": "433:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3666,9 +3666,9 @@ }, { "body": { - "id": 2651, + "id": 1273, "nodeType": "Block", - "src": "850:356:17", + "src": "850:356:10", "statements": [ { "expression": { @@ -3680,19 +3680,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2582, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2578, + "id": 1200, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "864:3:17", + "referencedDeclaration": 1192, + "src": "864:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3706,14 +3706,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2580, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "879:1:17", + "src": "879:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3729,20 +3729,20 @@ "typeString": "int_const 0" } ], - "id": 2579, + "id": 1201, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "871:7:17", + "src": "871:7:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2581, + "id": 1203, "isConstant": false, "isLValue": false, "isPure": true, @@ -3750,13 +3750,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "871:10:17", + "src": "871:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "864:17:17", + "src": "864:17:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3770,21 +3770,21 @@ "typeString": "bool" } ], - "id": 2577, + "id": 1199, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "856:7:17", + "referencedDeclaration": 1439, + "src": "856:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2583, + "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, @@ -3792,15 +3792,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "856:26:17", + "src": "856:26:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2584, + "id": 1206, "nodeType": "ExpressionStatement", - "src": "856:26:17" + "src": "856:26:10" }, { "expression": { @@ -3812,19 +3812,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2590, + "id": 1212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2586, + "id": 1208, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "896:6:17", + "referencedDeclaration": 1194, + "src": "896:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3836,26 +3836,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2587, + "id": 1209, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "906:8:17", + "referencedDeclaration": 982, + "src": "906:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2589, + "id": 1211, "indexExpression": { "argumentTypes": null, - "id": 2588, + "id": 1210, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "915:5:17", + "referencedDeclaration": 1190, + "src": "915:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3866,13 +3866,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "906:15:17", + "src": "906:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "896:25:17", + "src": "896:25:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3886,21 +3886,21 @@ "typeString": "bool" } ], - "id": 2585, + "id": 1207, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "888:7:17", + "referencedDeclaration": 1439, + "src": "888:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2591, + "id": 1213, "isConstant": false, "isLValue": false, "isPure": false, @@ -3908,15 +3908,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "888:34:17", + "src": "888:34:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2592, + "id": 1214, "nodeType": "ExpressionStatement", - "src": "888:34:17" + "src": "888:34:10" }, { "expression": { @@ -3928,19 +3928,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2601, + "id": 1223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2594, + "id": 1216, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "936:6:17", + "referencedDeclaration": 1194, + "src": "936:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3954,26 +3954,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2595, + "id": 1217, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "946:7:17", + "referencedDeclaration": 1188, + "src": "946:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2597, + "id": 1219, "indexExpression": { "argumentTypes": null, - "id": 2596, + "id": 1218, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "954:5:17", + "referencedDeclaration": 1190, + "src": "954:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3984,29 +3984,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "946:14:17", + "src": "946:14:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2600, + "id": 1222, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2598, + "id": 1220, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "961:3:17", + "referencedDeclaration": 1436, + "src": "961:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2599, + "id": 1221, "isConstant": false, "isLValue": false, "isPure": false, @@ -4014,7 +4014,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "961:10:17", + "src": "961:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4025,13 +4025,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "946:26:17", + "src": "946:26:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "936:36:17", + "src": "936:36:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4045,21 +4045,21 @@ "typeString": "bool" } ], - "id": 2593, + "id": 1215, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "928:7:17", + "referencedDeclaration": 1439, + "src": "928:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2602, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, @@ -4067,20 +4067,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "928:45:17", + "src": "928:45:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2603, + "id": 1225, "nodeType": "ExpressionStatement", - "src": "928:45:17" + "src": "928:45:10" }, { "expression": { "argumentTypes": null, - "id": 2613, + "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, @@ -4089,26 +4089,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2604, + "id": 1226, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "980:8:17", + "referencedDeclaration": 982, + "src": "980:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2606, + "id": 1228, "indexExpression": { "argumentTypes": null, - "id": 2605, + "id": 1227, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "989:5:17", + "referencedDeclaration": 1190, + "src": "989:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4119,7 +4119,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "980:15:17", + "src": "980:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4132,12 +4132,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2611, + "id": 1233, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1018:6:17", + "referencedDeclaration": 1194, + "src": "1018:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4155,26 +4155,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2607, + "id": 1229, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "998:8:17", + "referencedDeclaration": 982, + "src": "998:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2609, + "id": 1231, "indexExpression": { "argumentTypes": null, - "id": 2608, + "id": 1230, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1007:5:17", + "referencedDeclaration": 1190, + "src": "1007:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4185,27 +4185,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "998:15:17", + "src": "998:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2610, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "998:19:17", + "referencedDeclaration": 858, + "src": "998:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2612, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": false, @@ -4213,26 +4213,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "998:27:17", + "src": "998:27:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "980:45:17", + "src": "980:45:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2614, + "id": 1236, "nodeType": "ExpressionStatement", - "src": "980:45:17" + "src": "980:45:10" }, { "expression": { "argumentTypes": null, - "id": 2624, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -4241,26 +4241,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2615, + "id": 1237, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1031:8:17", + "referencedDeclaration": 982, + "src": "1031:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2617, + "id": 1239, "indexExpression": { "argumentTypes": null, - "id": 2616, + "id": 1238, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "1040:3:17", + "referencedDeclaration": 1192, + "src": "1040:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4271,7 +4271,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1031:13:17", + "src": "1031:13:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4284,12 +4284,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2622, + "id": 1244, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1065:6:17", + "referencedDeclaration": 1194, + "src": "1065:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4307,26 +4307,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2618, + "id": 1240, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1047:8:17", + "referencedDeclaration": 982, + "src": "1047:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2620, + "id": 1242, "indexExpression": { "argumentTypes": null, - "id": 2619, + "id": 1241, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "1056:3:17", + "referencedDeclaration": 1192, + "src": "1056:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4337,27 +4337,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1047:13:17", + "src": "1047:13:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2621, + "id": 1243, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1047:17:17", + "referencedDeclaration": 882, + "src": "1047:17:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2623, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": false, @@ -4365,26 +4365,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1047:25:17", + "src": "1047:25:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1031:41:17", + "src": "1031:41:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2625, + "id": 1247, "nodeType": "ExpressionStatement", - "src": "1031:41:17" + "src": "1031:41:10" }, { "expression": { "argumentTypes": null, - "id": 2641, + "id": 1263, "isConstant": false, "isLValue": false, "isPure": false, @@ -4395,26 +4395,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2626, + "id": 1248, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1078:7:17", + "referencedDeclaration": 1188, + "src": "1078:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2630, + "id": 1252, "indexExpression": { "argumentTypes": null, - "id": 2627, + "id": 1249, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1086:5:17", + "referencedDeclaration": 1190, + "src": "1086:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4425,29 +4425,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1078:14:17", + "src": "1078:14:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2631, + "id": 1253, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2628, + "id": 1250, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1093:3:17", + "referencedDeclaration": 1436, + "src": "1093:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2629, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, @@ -4455,7 +4455,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1093:10:17", + "src": "1093:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4466,7 +4466,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1078:26:17", + "src": "1078:26:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4479,12 +4479,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2639, + "id": 1261, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1138:6:17", + "referencedDeclaration": 1194, + "src": "1138:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4504,26 +4504,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2632, + "id": 1254, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1107:7:17", + "referencedDeclaration": 1188, + "src": "1107:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2634, + "id": 1256, "indexExpression": { "argumentTypes": null, - "id": 2633, + "id": 1255, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1115:5:17", + "referencedDeclaration": 1190, + "src": "1115:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4534,29 +4534,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1107:14:17", + "src": "1107:14:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2637, + "id": 1259, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2635, + "id": 1257, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1122:3:17", + "referencedDeclaration": 1436, + "src": "1122:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2636, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, @@ -4564,7 +4564,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1122:10:17", + "src": "1122:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4575,27 +4575,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1107:26:17", + "src": "1107:26:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2638, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1107:30:17", + "referencedDeclaration": 858, + "src": "1107:30:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2640, + "id": 1262, "isConstant": false, "isLValue": false, "isPure": false, @@ -4603,21 +4603,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1107:38:17", + "src": "1107:38:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1078:67:17", + "src": "1078:67:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2642, + "id": 1264, "nodeType": "ExpressionStatement", - "src": "1078:67:17" + "src": "1078:67:10" }, { "eventCall": { @@ -4625,12 +4625,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2644, + "id": 1266, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1165:5:17", + "referencedDeclaration": 1190, + "src": "1165:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4638,12 +4638,12 @@ }, { "argumentTypes": null, - "id": 2645, + "id": 1267, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "1172:3:17", + "referencedDeclaration": 1192, + "src": "1172:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4651,12 +4651,12 @@ }, { "argumentTypes": null, - "id": 2646, + "id": 1268, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1177:6:17", + "referencedDeclaration": 1194, + "src": "1177:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4678,18 +4678,18 @@ "typeString": "uint256" } ], - "id": 2643, + "id": 1265, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "1156:8:17", + "referencedDeclaration": 1173, + "src": "1156:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2647, + "id": 1269, "isConstant": false, "isLValue": false, "isPure": false, @@ -4697,28 +4697,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1156:28:17", + "src": "1156:28:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2648, + "id": 1270, "nodeType": "EmitStatement", - "src": "1151:33:17" + "src": "1151:33:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2649, + "id": 1271, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1197:4:17", + "src": "1197:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4726,15 +4726,15 @@ }, "value": "true" }, - "functionReturnParameters": 2576, - "id": 2650, + "functionReturnParameters": 1198, + "id": 1272, "nodeType": "Return", - "src": "1190:11:17" + "src": "1190:11:10" } ] }, "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", - "id": 2652, + "id": 1274, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4742,16 +4742,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 2573, + "id": 1195, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2568, + "id": 1190, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "763:13:17", + "scope": 1274, + "src": "763:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4759,10 +4759,10 @@ "typeString": "address" }, "typeName": { - "id": 2567, + "id": 1189, "name": "address", "nodeType": "ElementaryTypeName", - "src": "763:7:17", + "src": "763:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4773,11 +4773,11 @@ }, { "constant": false, - "id": 2570, + "id": 1192, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "782:11:17", + "scope": 1274, + "src": "782:11:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4785,10 +4785,10 @@ "typeString": "address" }, "typeName": { - "id": 2569, + "id": 1191, "name": "address", "nodeType": "ElementaryTypeName", - "src": "782:7:17", + "src": "782:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4799,11 +4799,11 @@ }, { "constant": false, - "id": 2572, + "id": 1194, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "799:14:17", + "scope": 1274, + "src": "799:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4811,10 +4811,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2571, + "id": 1193, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "799:7:17", + "src": "799:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4824,20 +4824,20 @@ "visibility": "internal" } ], - "src": "757:60:17" + "src": "757:60:10" }, "payable": false, "returnParameters": { - "id": 2576, + "id": 1198, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2575, + "id": 1197, "name": "", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "842:4:17", + "scope": 1274, + "src": "842:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4845,10 +4845,10 @@ "typeString": "bool" }, "typeName": { - "id": 2574, + "id": 1196, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "842:4:17", + "src": "842:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4858,24 +4858,24 @@ "visibility": "internal" } ], - "src": "841:6:17" + "src": "841:6:10" }, - "scope": 2799, - "src": "736:470:17", + "scope": 1421, + "src": "736:470:10", "stateMutability": "nonpayable", - "superFunction": 2396, + "superFunction": 1124, "visibility": "public" }, { "body": { - "id": 2679, + "id": 1301, "nodeType": "Block", - "src": "1902:115:17", + "src": "1902:115:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2668, + "id": 1290, "isConstant": false, "isLValue": false, "isPure": false, @@ -4886,34 +4886,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2661, + "id": 1283, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1908:7:17", + "referencedDeclaration": 1188, + "src": "1908:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2665, + "id": 1287, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2662, + "id": 1284, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1916:3:17", + "referencedDeclaration": 1436, + "src": "1916:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2663, + "id": 1285, "isConstant": false, "isLValue": false, "isPure": false, @@ -4921,7 +4921,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1916:10:17", + "src": "1916:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4932,21 +4932,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1908:19:17", + "src": "1908:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2666, + "id": 1288, "indexExpression": { "argumentTypes": null, - "id": 2664, + "id": 1286, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2654, - "src": "1928:8:17", + "referencedDeclaration": 1276, + "src": "1928:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4957,7 +4957,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1908:29:17", + "src": "1908:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4967,26 +4967,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2667, + "id": 1289, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, - "src": "1940:6:17", + "referencedDeclaration": 1278, + "src": "1940:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1908:38:17", + "src": "1908:38:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2669, + "id": 1291, "nodeType": "ExpressionStatement", - "src": "1908:38:17" + "src": "1908:38:10" }, { "eventCall": { @@ -4996,18 +4996,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2671, + "id": 1293, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1966:3:17", + "referencedDeclaration": 1436, + "src": "1966:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2672, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": false, @@ -5015,7 +5015,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1966:10:17", + "src": "1966:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5023,12 +5023,12 @@ }, { "argumentTypes": null, - "id": 2673, + "id": 1295, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2654, - "src": "1978:8:17", + "referencedDeclaration": 1276, + "src": "1978:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5036,12 +5036,12 @@ }, { "argumentTypes": null, - "id": 2674, + "id": 1296, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, - "src": "1988:6:17", + "referencedDeclaration": 1278, + "src": "1988:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5063,18 +5063,18 @@ "typeString": "uint256" } ], - "id": 2670, + "id": 1292, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "1957:8:17", + "referencedDeclaration": 1141, + "src": "1957:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2675, + "id": 1297, "isConstant": false, "isLValue": false, "isPure": false, @@ -5082,28 +5082,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1957:38:17", + "src": "1957:38:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2676, + "id": 1298, "nodeType": "EmitStatement", - "src": "1952:43:17" + "src": "1952:43:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2677, + "id": 1299, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2008:4:17", + "src": "2008:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5111,15 +5111,15 @@ }, "value": "true" }, - "functionReturnParameters": 2660, - "id": 2678, + "functionReturnParameters": 1282, + "id": 1300, "nodeType": "Return", - "src": "2001:11:17" + "src": "2001:11:10" } ] }, "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.", - "id": 2680, + "id": 1302, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5127,16 +5127,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 2657, + "id": 1279, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2654, + "id": 1276, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2680, - "src": "1846:16:17", + "scope": 1302, + "src": "1846:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5144,10 +5144,10 @@ "typeString": "address" }, "typeName": { - "id": 2653, + "id": 1275, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1846:7:17", + "src": "1846:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5158,11 +5158,11 @@ }, { "constant": false, - "id": 2656, + "id": 1278, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2680, - "src": "1864:14:17", + "scope": 1302, + "src": "1864:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5170,10 +5170,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2655, + "id": 1277, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1864:7:17", + "src": "1864:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5183,20 +5183,20 @@ "visibility": "internal" } ], - "src": "1845:34:17" + "src": "1845:34:10" }, "payable": false, "returnParameters": { - "id": 2660, + "id": 1282, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2659, + "id": 1281, "name": "", "nodeType": "VariableDeclaration", - "scope": 2680, - "src": "1896:4:17", + "scope": 1302, + "src": "1896:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5204,10 +5204,10 @@ "typeString": "bool" }, "typeName": { - "id": 2658, + "id": 1280, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1896:4:17", + "src": "1896:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5217,19 +5217,19 @@ "visibility": "internal" } ], - "src": "1895:6:17" + "src": "1895:6:10" }, - "scope": 2799, - "src": "1829:188:17", + "scope": 1421, + "src": "1829:188:10", "stateMutability": "nonpayable", - "superFunction": 2405, + "superFunction": 1133, "visibility": "public" }, { "body": { - "id": 2695, + "id": 1317, "nodeType": "Block", - "src": "2446:43:17", + "src": "2446:43:10", "statements": [ { "expression": { @@ -5238,26 +5238,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2689, + "id": 1311, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "2459:7:17", + "referencedDeclaration": 1188, + "src": "2459:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2691, + "id": 1313, "indexExpression": { "argumentTypes": null, - "id": 2690, + "id": 1312, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2682, - "src": "2467:6:17", + "referencedDeclaration": 1304, + "src": "2467:6:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5268,21 +5268,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2459:15:17", + "src": "2459:15:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2693, + "id": 1315, "indexExpression": { "argumentTypes": null, - "id": 2692, + "id": 1314, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2684, - "src": "2475:8:17", + "referencedDeclaration": 1306, + "src": "2475:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5293,21 +5293,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2459:25:17", + "src": "2459:25:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2688, - "id": 2694, + "functionReturnParameters": 1310, + "id": 1316, "nodeType": "Return", - "src": "2452:32:17" + "src": "2452:32:10" } ] }, "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param _owner address The address which owns the funds.\n@param _spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", - "id": 2696, + "id": 1318, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5315,16 +5315,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2685, + "id": 1307, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2682, + "id": 1304, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 2696, - "src": "2360:14:17", + "scope": 1318, + "src": "2360:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5332,10 +5332,10 @@ "typeString": "address" }, "typeName": { - "id": 2681, + "id": 1303, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2360:7:17", + "src": "2360:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5346,11 +5346,11 @@ }, { "constant": false, - "id": 2684, + "id": 1306, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2696, - "src": "2380:16:17", + "scope": 1318, + "src": "2380:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5358,10 +5358,10 @@ "typeString": "address" }, "typeName": { - "id": 2683, + "id": 1305, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2380:7:17", + "src": "2380:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5371,20 +5371,20 @@ "visibility": "internal" } ], - "src": "2354:47:17" + "src": "2354:47:10" }, "payable": false, "returnParameters": { - "id": 2688, + "id": 1310, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2687, + "id": 1309, "name": "", "nodeType": "VariableDeclaration", - "scope": 2696, - "src": "2435:7:17", + "scope": 1318, + "src": "2435:7:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5392,10 +5392,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2686, + "id": 1308, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2435:7:17", + "src": "2435:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5405,24 +5405,24 @@ "visibility": "internal" } ], - "src": "2434:9:17" + "src": "2434:9:10" }, - "scope": 2799, - "src": "2336:153:17", + "scope": 1421, + "src": "2336:153:10", "stateMutability": "view", - "superFunction": 2385, + "superFunction": 1113, "visibility": "public" }, { "body": { - "id": 2737, + "id": 1359, "nodeType": "Block", - "src": "3052:187:17", + "src": "3052:187:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2721, + "id": 1343, "isConstant": false, "isLValue": false, "isPure": false, @@ -5433,34 +5433,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2705, + "id": 1327, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3058:7:17", + "referencedDeclaration": 1188, + "src": "3058:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2709, + "id": 1331, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2706, + "id": 1328, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3066:3:17", + "referencedDeclaration": 1436, + "src": "3066:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2707, + "id": 1329, "isConstant": false, "isLValue": false, "isPure": false, @@ -5468,7 +5468,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3066:10:17", + "src": "3066:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5479,21 +5479,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3058:19:17", + "src": "3058:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2710, + "id": 1332, "indexExpression": { "argumentTypes": null, - "id": 2708, + "id": 1330, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3078:8:17", + "referencedDeclaration": 1320, + "src": "3078:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5504,7 +5504,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3058:29:17", + "src": "3058:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5520,12 +5520,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2718, + "id": 1340, "name": "_addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, - "src": "3132:11:17", + "referencedDeclaration": 1322, + "src": "3132:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5545,34 +5545,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2711, + "id": 1333, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3098:7:17", + "referencedDeclaration": 1188, + "src": "3098:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2714, + "id": 1336, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2712, + "id": 1334, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3106:3:17", + "referencedDeclaration": 1436, + "src": "3106:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2713, + "id": 1335, "isConstant": false, "isLValue": false, "isPure": false, @@ -5580,7 +5580,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3106:10:17", + "src": "3106:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5591,21 +5591,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3098:19:17", + "src": "3098:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2716, + "id": 1338, "indexExpression": { "argumentTypes": null, - "id": 2715, + "id": 1337, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3118:8:17", + "referencedDeclaration": 1320, + "src": "3118:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5616,27 +5616,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3098:29:17", + "src": "3098:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2717, + "id": 1339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "3098:33:17", + "referencedDeclaration": 882, + "src": "3098:33:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2719, + "id": 1341, "isConstant": false, "isLValue": false, "isPure": false, @@ -5644,35 +5644,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3098:46:17", + "src": "3098:46:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2720, + "id": 1342, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3090:55:17", + "src": "3090:55:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3058:87:17", + "src": "3058:87:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2722, + "id": 1344, "nodeType": "ExpressionStatement", - "src": "3058:87:17" + "src": "3058:87:10" }, { "eventCall": { @@ -5682,18 +5682,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2724, + "id": 1346, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3165:3:17", + "referencedDeclaration": 1436, + "src": "3165:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2725, + "id": 1347, "isConstant": false, "isLValue": false, "isPure": false, @@ -5701,7 +5701,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3165:10:17", + "src": "3165:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5709,12 +5709,12 @@ }, { "argumentTypes": null, - "id": 2726, + "id": 1348, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3177:8:17", + "referencedDeclaration": 1320, + "src": "3177:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5726,34 +5726,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2727, + "id": 1349, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3187:7:17", + "referencedDeclaration": 1188, + "src": "3187:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2730, + "id": 1352, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2728, + "id": 1350, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3195:3:17", + "referencedDeclaration": 1436, + "src": "3195:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2729, + "id": 1351, "isConstant": false, "isLValue": false, "isPure": false, @@ -5761,7 +5761,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3195:10:17", + "src": "3195:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5772,21 +5772,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3187:19:17", + "src": "3187:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2732, + "id": 1354, "indexExpression": { "argumentTypes": null, - "id": 2731, + "id": 1353, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3207:8:17", + "referencedDeclaration": 1320, + "src": "3207:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5797,7 +5797,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3187:29:17", + "src": "3187:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5819,18 +5819,18 @@ "typeString": "uint256" } ], - "id": 2723, + "id": 1345, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "3156:8:17", + "referencedDeclaration": 1141, + "src": "3156:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2733, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": false, @@ -5838,28 +5838,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3156:61:17", + "src": "3156:61:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2734, + "id": 1356, "nodeType": "EmitStatement", - "src": "3151:66:17" + "src": "3151:66:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2735, + "id": 1357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3230:4:17", + "src": "3230:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5867,15 +5867,15 @@ }, "value": "true" }, - "functionReturnParameters": 2704, - "id": 2736, + "functionReturnParameters": 1326, + "id": 1358, "nodeType": "Return", - "src": "3223:11:17" + "src": "3223:11:10" } ] }, "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.", - "id": 2738, + "id": 1360, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5883,16 +5883,16 @@ "name": "increaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 2701, + "id": 1323, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2698, + "id": 1320, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2738, - "src": "2977:16:17", + "scope": 1360, + "src": "2977:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5900,10 +5900,10 @@ "typeString": "address" }, "typeName": { - "id": 2697, + "id": 1319, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2977:7:17", + "src": "2977:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5914,11 +5914,11 @@ }, { "constant": false, - "id": 2700, + "id": 1322, "name": "_addedValue", "nodeType": "VariableDeclaration", - "scope": 2738, - "src": "2999:16:17", + "scope": 1360, + "src": "2999:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5926,10 +5926,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2699, + "id": 1321, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2999:4:17", + "src": "2999:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5939,20 +5939,20 @@ "visibility": "internal" } ], - "src": "2971:48:17" + "src": "2971:48:10" }, "payable": false, "returnParameters": { - "id": 2704, + "id": 1326, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2703, + "id": 1325, "name": "", "nodeType": "VariableDeclaration", - "scope": 2738, - "src": "3044:4:17", + "scope": 1360, + "src": "3044:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5960,10 +5960,10 @@ "typeString": "bool" }, "typeName": { - "id": 2702, + "id": 1324, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3044:4:17", + "src": "3044:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5973,32 +5973,32 @@ "visibility": "internal" } ], - "src": "3043:6:17" + "src": "3043:6:10" }, - "scope": 2799, - "src": "2946:293:17", + "scope": 1421, + "src": "2946:293:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2797, + "id": 1419, "nodeType": "Block", - "src": "3812:314:17", + "src": "3812:314:10", "statements": [ { "assignments": [ - 2748 + 1370 ], "declarations": [ { "constant": false, - "id": 2748, + "id": 1370, "name": "oldValue", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3818:13:17", + "scope": 1420, + "src": "3818:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6006,10 +6006,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2747, + "id": 1369, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3818:4:17", + "src": "3818:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6019,41 +6019,41 @@ "visibility": "internal" } ], - "id": 2755, + "id": 1377, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2749, + "id": 1371, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3834:7:17", + "referencedDeclaration": 1188, + "src": "3834:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2752, + "id": 1374, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2750, + "id": 1372, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3842:3:17", + "referencedDeclaration": 1436, + "src": "3842:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2751, + "id": 1373, "isConstant": false, "isLValue": false, "isPure": false, @@ -6061,7 +6061,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3842:10:17", + "src": "3842:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6072,21 +6072,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3834:19:17", + "src": "3834:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2754, + "id": 1376, "indexExpression": { "argumentTypes": null, - "id": 2753, + "id": 1375, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "3854:8:17", + "referencedDeclaration": 1362, + "src": "3854:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6097,14 +6097,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3834:29:17", + "src": "3834:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3818:45:17" + "src": "3818:45:10" }, { "condition": { @@ -6113,19 +6113,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2758, + "id": 1380, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2756, + "id": 1378, "name": "_subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "3873:16:17", + "referencedDeclaration": 1364, + "src": "3873:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6135,32 +6135,32 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 2757, + "id": 1379, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2748, - "src": "3892:8:17", + "referencedDeclaration": 1370, + "src": "3892:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3873:27:17", + "src": "3873:27:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2781, + "id": 1403, "nodeType": "Block", - "src": "3956:77:17", + "src": "3956:77:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2779, + "id": 1401, "isConstant": false, "isLValue": false, "isPure": false, @@ -6171,34 +6171,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2769, + "id": 1391, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3964:7:17", + "referencedDeclaration": 1188, + "src": "3964:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2773, + "id": 1395, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2770, + "id": 1392, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3972:3:17", + "referencedDeclaration": 1436, + "src": "3972:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2771, + "id": 1393, "isConstant": false, "isLValue": false, "isPure": false, @@ -6206,7 +6206,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3972:10:17", + "src": "3972:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6217,21 +6217,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3964:19:17", + "src": "3964:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2774, + "id": 1396, "indexExpression": { "argumentTypes": null, - "id": 2772, + "id": 1394, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "3984:8:17", + "referencedDeclaration": 1362, + "src": "3984:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6242,7 +6242,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3964:29:17", + "src": "3964:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6255,12 +6255,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2777, + "id": 1399, "name": "_subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "4009:16:17", + "referencedDeclaration": 1364, + "src": "4009:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6276,32 +6276,32 @@ ], "expression": { "argumentTypes": null, - "id": 2775, + "id": 1397, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2748, - "src": "3996:8:17", + "referencedDeclaration": 1370, + "src": "3996:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2776, + "id": 1398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "3996:12:17", + "referencedDeclaration": 858, + "src": "3996:12:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2778, + "id": 1400, "isConstant": false, "isLValue": false, "isPure": false, @@ -6309,36 +6309,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3996:30:17", + "src": "3996:30:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3964:62:17", + "src": "3964:62:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2780, + "id": 1402, "nodeType": "ExpressionStatement", - "src": "3964:62:17" + "src": "3964:62:10" } ] }, - "id": 2782, + "id": 1404, "nodeType": "IfStatement", - "src": "3869:164:17", + "src": "3869:164:10", "trueBody": { - "id": 2768, + "id": 1390, "nodeType": "Block", - "src": "3902:48:17", + "src": "3902:48:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2766, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": false, @@ -6349,34 +6349,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2759, + "id": 1381, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3910:7:17", + "referencedDeclaration": 1188, + "src": "3910:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2763, + "id": 1385, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2760, + "id": 1382, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3918:3:17", + "referencedDeclaration": 1436, + "src": "3918:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2761, + "id": 1383, "isConstant": false, "isLValue": false, "isPure": false, @@ -6384,7 +6384,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3918:10:17", + "src": "3918:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6395,21 +6395,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3910:19:17", + "src": "3910:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2764, + "id": 1386, "indexExpression": { "argumentTypes": null, - "id": 2762, + "id": 1384, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "3930:8:17", + "referencedDeclaration": 1362, + "src": "3930:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6420,7 +6420,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3910:29:17", + "src": "3910:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6431,14 +6431,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2765, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3942:1:17", + "src": "3942:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6446,15 +6446,15 @@ }, "value": "0" }, - "src": "3910:33:17", + "src": "3910:33:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2767, + "id": 1389, "nodeType": "ExpressionStatement", - "src": "3910:33:17" + "src": "3910:33:10" } ] } @@ -6467,18 +6467,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2784, + "id": 1406, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4052:3:17", + "referencedDeclaration": 1436, + "src": "4052:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2785, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, @@ -6486,7 +6486,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4052:10:17", + "src": "4052:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6494,12 +6494,12 @@ }, { "argumentTypes": null, - "id": 2786, + "id": 1408, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "4064:8:17", + "referencedDeclaration": 1362, + "src": "4064:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6511,34 +6511,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2787, + "id": 1409, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "4074:7:17", + "referencedDeclaration": 1188, + "src": "4074:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2790, + "id": 1412, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2788, + "id": 1410, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4082:3:17", + "referencedDeclaration": 1436, + "src": "4082:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2789, + "id": 1411, "isConstant": false, "isLValue": false, "isPure": false, @@ -6546,7 +6546,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4082:10:17", + "src": "4082:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6557,21 +6557,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4074:19:17", + "src": "4074:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2792, + "id": 1414, "indexExpression": { "argumentTypes": null, - "id": 2791, + "id": 1413, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "4094:8:17", + "referencedDeclaration": 1362, + "src": "4094:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6582,7 +6582,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4074:29:17", + "src": "4074:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6604,18 +6604,18 @@ "typeString": "uint256" } ], - "id": 2783, + "id": 1405, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "4043:8:17", + "referencedDeclaration": 1141, + "src": "4043:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2793, + "id": 1415, "isConstant": false, "isLValue": false, "isPure": false, @@ -6623,28 +6623,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4043:61:17", + "src": "4043:61:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2794, + "id": 1416, "nodeType": "EmitStatement", - "src": "4038:66:17" + "src": "4038:66:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2795, + "id": 1417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4117:4:17", + "src": "4117:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6652,15 +6652,15 @@ }, "value": "true" }, - "functionReturnParameters": 2746, - "id": 2796, + "functionReturnParameters": 1368, + "id": 1418, "nodeType": "Return", - "src": "4110:11:17" + "src": "4110:11:10" } ] }, "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.", - "id": 2798, + "id": 1420, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6668,16 +6668,16 @@ "name": "decreaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 2743, + "id": 1365, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2740, + "id": 1362, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3732:16:17", + "scope": 1420, + "src": "3732:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6685,10 +6685,10 @@ "typeString": "address" }, "typeName": { - "id": 2739, + "id": 1361, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3732:7:17", + "src": "3732:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6699,11 +6699,11 @@ }, { "constant": false, - "id": 2742, + "id": 1364, "name": "_subtractedValue", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3754:21:17", + "scope": 1420, + "src": "3754:21:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6711,10 +6711,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2741, + "id": 1363, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3754:4:17", + "src": "3754:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6724,20 +6724,20 @@ "visibility": "internal" } ], - "src": "3726:53:17" + "src": "3726:53:10" }, "payable": false, "returnParameters": { - "id": 2746, + "id": 1368, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2745, + "id": 1367, "name": "", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3804:4:17", + "scope": 1420, + "src": "3804:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6745,10 +6745,10 @@ "typeString": "bool" }, "typeName": { - "id": 2744, + "id": 1366, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3804:4:17", + "src": "3804:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6758,26 +6758,26 @@ "visibility": "internal" } ], - "src": "3803:6:17" + "src": "3803:6:10" }, - "scope": 2799, - "src": "3701:425:17", + "scope": 1421, + "src": "3701:425:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2800, - "src": "344:3785:17" + "scope": 1422, + "src": "344:3785:10" } ], - "src": "0:4130:17" + "src": "0:4130:10" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.598Z" + "updatedAt": "2018-07-07T15:28:53.742Z" } \ No newline at end of file diff --git a/artifacts/json/StandardTokenMock.json b/artifacts/json/StandardTokenMock.json index ae7e633fa..6add91c31 100644 --- a/artifacts/json/StandardTokenMock.json +++ b/artifacts/json/StandardTokenMock.json @@ -235,6 +235,10 @@ { "name": "_symbol", "type": "string" + }, + { + "name": "_decimals", + "type": "uint256" } ], "payable": false, @@ -286,40 +290,40 @@ "type": "event" } ], - "bytecode": "0x608060405260126003553480156200001657600080fd5b506040516200147f3803806200147f83398101806040528101908080519060200190929190805190602001909291908051820192919060200180518201929190505050826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550826006819055508160049080519060200190620000bb929190620000df565b508060059080519060200190620000d4929190620000df565b50505050506200018e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200012257805160ff191683800117855562000153565b8280016001018555821562000153579182015b828111156200015257825182559160200191906001019062000135565b5b50905062000162919062000166565b5090565b6200018b91905b80821115620001875760008160009055506001016200016d565b5090565b90565b6112e1806200019e6000396000f3006080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a957806323b872dd146101d4578063313ce56714610259578063661884631461028457806370a08231146102e957806395d89b4114610340578063a9059cbb146103d0578063d73dd62314610435578063dd62ed3e1461049a575b600080fd5b3480156100c057600080fd5b506100c9610511565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105af565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be6106a1565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a7565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610a61565b6040518082815260200191505060405180910390f35b34801561029057600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a67565b604051808215151515815260200191505060405180910390f35b3480156102f557600080fd5b5061032a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf8565b6040518082815260200191505060405180910390f35b34801561034c57600080fd5b50610355610d40565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103dc57600080fd5b5061041b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dde565b604051808215151515815260200191505060405180910390f35b34801561044157600080fd5b50610480600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ffd565b604051808215151515815260200191505060405180910390f35b3480156104a657600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f9565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105a75780601f1061057c576101008083540402835291602001916105a7565b820191906000526020600020905b81548152906001019060200180831161058a57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561073157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107bc57600080fd5b61080d826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a0826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b78576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c0c565b610b8b838261128090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e1b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e6857600080fd5b610eb9826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f4c826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061108e82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561128e57fe5b818303905092915050565b600081830190508281101515156112ac57fe5b809050929150505600a165627a7a7230582009b4c7f597b9c9f75fbdc63c6714c8991a034bccaaa75083793064d2d2fe84ac0029", - "deployedBytecode": "0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a957806323b872dd146101d4578063313ce56714610259578063661884631461028457806370a08231146102e957806395d89b4114610340578063a9059cbb146103d0578063d73dd62314610435578063dd62ed3e1461049a575b600080fd5b3480156100c057600080fd5b506100c9610511565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105af565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be6106a1565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a7565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610a61565b6040518082815260200191505060405180910390f35b34801561029057600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a67565b604051808215151515815260200191505060405180910390f35b3480156102f557600080fd5b5061032a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf8565b6040518082815260200191505060405180910390f35b34801561034c57600080fd5b50610355610d40565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103dc57600080fd5b5061041b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dde565b604051808215151515815260200191505060405180910390f35b34801561044157600080fd5b50610480600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ffd565b604051808215151515815260200191505060405180910390f35b3480156104a657600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f9565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105a75780601f1061057c576101008083540402835291602001916105a7565b820191906000526020600020905b81548152906001019060200180831161058a57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561073157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107bc57600080fd5b61080d826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a0826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b78576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c0c565b610b8b838261128090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e1b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e6857600080fd5b610eb9826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f4c826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061108e82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561128e57fe5b818303905092915050565b600081830190508281101515156112ac57fe5b809050929150505600a165627a7a7230582009b4c7f597b9c9f75fbdc63c6714c8991a034bccaaa75083793064d2d2fe84ac0029", - "sourceMap": "127:406:8:-;;;201:2;175:28;;284:246;8:9:-1;5:2;;;30:1;27;20:12;5:2;284:246:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;437:14;410:8;:24;419:14;410:24;;;;;;;;;;;;;;;:41;;;;471:14;457:11;:28;;;;498:5;491:4;:12;;;;;;;;;;;;:::i;:::-;;518:7;509:6;:16;;;;;;;;;;;;:::i;:::-;;284:246;;;;127:406;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "127:406:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;207:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;207:18:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;207:18:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;253:26:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;253:26:8;;;;;;;;;;;;;;;;;;;;;;;736:470:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;175:28:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;175:28:8;;;;;;;;;;;;;;;;;;;;;;;3701:425:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;229:20:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;229:20:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;229:20:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;207:18:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:17:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;253:26:8:-;;;;:::o;736:470:17:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;175:28:8:-;;;;:::o;3701:425:17:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:12:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;229:20:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;608:321:12:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:17:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1042:110:10:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", - "source": "pragma solidity 0.4.23;\n\n\nimport \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\n\n\n// mock class using BasicToken\ncontract StandardTokenMock is StandardToken {\n uint256 public decimals = 18;\n string public name;\n string public symbol;\n uint256 public totalSupply;\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n }\n\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/StandardTokenMock.sol", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200148f3803806200148f8339810180604052810190808051906020019092919080519060200190929190805182019291906020018051820192919060200180519060200190929190505050836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836006819055508260049080519060200190620000c3929190620000ef565b508160059080519060200190620000dc929190620000ef565b508060038190555050505050506200019e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013257805160ff191683800117855562000163565b8280016001018555821562000163579182015b828111156200016257825182559160200191906001019062000145565b5b50905062000172919062000176565b5090565b6200019b91905b80821115620001975760008160009055506001016200017d565b5090565b90565b6112e180620001ae6000396000f3006080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a957806323b872dd146101d4578063313ce56714610259578063661884631461028457806370a08231146102e957806395d89b4114610340578063a9059cbb146103d0578063d73dd62314610435578063dd62ed3e1461049a575b600080fd5b3480156100c057600080fd5b506100c9610511565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105af565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be6106a1565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a7565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610a61565b6040518082815260200191505060405180910390f35b34801561029057600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a67565b604051808215151515815260200191505060405180910390f35b3480156102f557600080fd5b5061032a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf8565b6040518082815260200191505060405180910390f35b34801561034c57600080fd5b50610355610d40565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103dc57600080fd5b5061041b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dde565b604051808215151515815260200191505060405180910390f35b34801561044157600080fd5b50610480600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ffd565b604051808215151515815260200191505060405180910390f35b3480156104a657600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f9565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105a75780601f1061057c576101008083540402835291602001916105a7565b820191906000526020600020905b81548152906001019060200180831161058a57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561073157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107bc57600080fd5b61080d826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a0826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b78576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c0c565b610b8b838261128090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e1b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e6857600080fd5b610eb9826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f4c826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061108e82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561128e57fe5b818303905092915050565b600081830190508281101515156112ac57fe5b809050929150505600a165627a7a7230582024e2ab456a3fb58e384f287982db6b48194245c3ebe1e99c1996ccdecca2b9bd0029", + "deployedBytecode": "0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a957806323b872dd146101d4578063313ce56714610259578063661884631461028457806370a08231146102e957806395d89b4114610340578063a9059cbb146103d0578063d73dd62314610435578063dd62ed3e1461049a575b600080fd5b3480156100c057600080fd5b506100c9610511565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105af565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be6106a1565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a7565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610a61565b6040518082815260200191505060405180910390f35b34801561029057600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a67565b604051808215151515815260200191505060405180910390f35b3480156102f557600080fd5b5061032a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf8565b6040518082815260200191505060405180910390f35b34801561034c57600080fd5b50610355610d40565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103dc57600080fd5b5061041b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dde565b604051808215151515815260200191505060405180910390f35b34801561044157600080fd5b50610480600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ffd565b604051808215151515815260200191505060405180910390f35b3480156104a657600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f9565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105a75780601f1061057c576101008083540402835291602001916105a7565b820191906000526020600020905b81548152906001019060200180831161058a57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561073157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107bc57600080fd5b61080d826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a0826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b78576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c0c565b610b8b838261128090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e1b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e6857600080fd5b610eb9826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f4c826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061108e82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561128e57fe5b818303905092915050565b600081830190508281101515156112ac57fe5b809050929150505600a165627a7a7230582024e2ab456a3fb58e384f287982db6b48194245c3ebe1e99c1996ccdecca2b9bd0029", + "sourceMap": "127:450:34:-;;;279:295;8:9:-1;5:2;;;30:1;27;20:12;5:2;279:295:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;455:14;428:8;:24;437:14;428:24;;;;;;;;;;;;;;;:41;;;;489:14;475:11;:28;;;;516:5;509:4;:12;;;;;;;;;;;;:::i;:::-;;536:7;527:6;:16;;;;;;;;;;;;:::i;:::-;;560:9;549:8;:20;;;;279:295;;;;;127:450;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "127:450:34:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;202:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;202:18:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;202:18:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;248:26:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:26:34;;;;;;;;;;;;;;;;;;;;;;;736:470:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;175:23:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;175:23:34;;;;;;;;;;;;;;;;;;;;;;;3701:425:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;224:20:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;224:20:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;224:20:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;202:18:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:45:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;248:26:34:-;;;;:::o;736:470:45:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;175:23:34:-;;;;:::o;3701:425:45:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:40:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;224:20:34:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;608:321:40:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:45:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "source": "pragma solidity 0.4.24;\n\n\nimport \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\n\n\n// mock class using BasicToken\ncontract StandardTokenMock is StandardToken {\n uint256 public decimals;\n string public name;\n string public symbol;\n uint256 public totalSupply;\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol,\n uint256 _decimals)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n decimals = _decimals;\n }\n\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/StandardTokenMock.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/StandardTokenMock.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/StandardTokenMock.sol", "exportedSymbols": { "StandardTokenMock": [ - 1832 + 4233 ] }, - "id": 1833, + "id": 4234, "nodeType": "SourceUnit", "nodes": [ { - "id": 1789, + "id": 4185, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:8" + "src": "0:23:34" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", - "id": 1790, + "id": 4186, "nodeType": "ImportDirective", - "scope": 1833, - "sourceUnit": 2800, - "src": "26:67:8", + "scope": 4234, + "sourceUnit": 5383, + "src": "26:67:34", "symbolAliases": [], "unitAlias": "" }, @@ -329,48 +333,48 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1791, + "id": 4187, "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "157:13:8", + "referencedDeclaration": 5382, + "src": "157:13:34", "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", + "typeIdentifier": "t_contract$_StandardToken_$5382", "typeString": "contract StandardToken" } }, - "id": 1792, + "id": 4188, "nodeType": "InheritanceSpecifier", - "src": "157:13:8" + "src": "157:13:34" } ], "contractDependencies": [ - 2337, - 2414, - 2446, - 2799 + 4920, + 4997, + 5029, + 5382 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1832, + "id": 4233, "linearizedBaseContracts": [ - 1832, - 2799, - 2337, - 2414, - 2446 + 4233, + 5382, + 4920, + 4997, + 5029 ], "name": "StandardTokenMock", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1795, + "id": 4190, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "175:28:8", + "scope": 4233, + "src": "175:23:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -378,42 +382,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1793, + "id": 4189, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "175:7:8", + "src": "175:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 1794, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "201:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, + "value": null, "visibility": "public" }, { "constant": false, - "id": 1797, + "id": 4192, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "207:18:8", + "scope": 4233, + "src": "202:18:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -421,10 +408,10 @@ "typeString": "string" }, "typeName": { - "id": 1796, + "id": 4191, "name": "string", "nodeType": "ElementaryTypeName", - "src": "207:6:8", + "src": "202:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -435,11 +422,11 @@ }, { "constant": false, - "id": 1799, + "id": 4194, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "229:20:8", + "scope": 4233, + "src": "224:20:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -447,10 +434,10 @@ "typeString": "string" }, "typeName": { - "id": 1798, + "id": 4193, "name": "string", "nodeType": "ElementaryTypeName", - "src": "229:6:8", + "src": "224:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -461,11 +448,11 @@ }, { "constant": false, - "id": 1801, + "id": 4196, "name": "totalSupply", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "253:26:8", + "scope": 4233, + "src": "248:26:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -473,10 +460,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1800, + "id": 4195, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "253:7:8", + "src": "248:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -487,14 +474,14 @@ }, { "body": { - "id": 1830, + "id": 4231, "nodeType": "Block", - "src": "404:126:8", + "src": "422:152:34", "statements": [ { "expression": { "argumentTypes": null, - "id": 1816, + "id": 4213, "isConstant": false, "isLValue": false, "isPure": false, @@ -503,26 +490,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1812, + "id": 4209, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "410:8:8", + "referencedDeclaration": 4837, + "src": "428:8:34", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1814, + "id": 4211, "indexExpression": { "argumentTypes": null, - "id": 1813, + "id": 4210, "name": "initialAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "419:14:8", + "referencedDeclaration": 4198, + "src": "437:14:34", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -533,7 +520,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "410:24:8", + "src": "428:24:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -543,45 +530,45 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1815, + "id": 4212, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "437:14:8", + "referencedDeclaration": 4200, + "src": "455:14:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "410:41:8", + "src": "428:41:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1817, + "id": 4214, "nodeType": "ExpressionStatement", - "src": "410:41:8" + "src": "428:41:34" }, { "expression": { "argumentTypes": null, - "id": 1820, + "id": 4217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1818, + "id": 4215, "name": "totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [ - 1801 + 4196 ], - "referencedDeclaration": 1801, - "src": "457:11:8", + "referencedDeclaration": 4196, + "src": "475:11:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -591,43 +578,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1819, + "id": 4216, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "471:14:8", + "referencedDeclaration": 4200, + "src": "489:14:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "457:28:8", + "src": "475:28:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1821, + "id": 4218, "nodeType": "ExpressionStatement", - "src": "457:28:8" + "src": "475:28:34" }, { "expression": { "argumentTypes": null, - "id": 1824, + "id": 4221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1822, + "id": 4219, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1797, - "src": "491:4:8", + "referencedDeclaration": 4192, + "src": "509:4:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -637,43 +624,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1823, + "id": 4220, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1807, - "src": "498:5:8", + "referencedDeclaration": 4202, + "src": "516:5:34", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "491:12:8", + "src": "509:12:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1825, + "id": 4222, "nodeType": "ExpressionStatement", - "src": "491:12:8" + "src": "509:12:34" }, { "expression": { "argumentTypes": null, - "id": 1828, + "id": 4225, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1826, + "id": 4223, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1799, - "src": "509:6:8", + "referencedDeclaration": 4194, + "src": "527:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -683,31 +670,77 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1827, + "id": 4224, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "518:7:8", + "referencedDeclaration": 4204, + "src": "536:7:34", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "509:16:8", + "src": "527:16:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1829, + "id": 4226, "nodeType": "ExpressionStatement", - "src": "509:16:8" + "src": "527:16:34" + }, + { + "expression": { + "argumentTypes": null, + "id": 4229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4227, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4190, + "src": "549:8:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4228, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4206, + "src": "560:9:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "549:20:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4230, + "nodeType": "ExpressionStatement", + "src": "549:20:34" } ] }, "documentation": null, - "id": 1831, + "id": 4232, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -715,16 +748,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1810, + "id": 4207, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1803, + "id": 4198, "name": "initialAccount", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "301:22:8", + "scope": 4232, + "src": "296:22:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -732,10 +765,10 @@ "typeString": "address" }, "typeName": { - "id": 1802, + "id": 4197, "name": "address", "nodeType": "ElementaryTypeName", - "src": "301:7:8", + "src": "296:7:34", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -746,11 +779,11 @@ }, { "constant": false, - "id": 1805, + "id": 4200, "name": "initialBalance", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "329:22:8", + "scope": 4232, + "src": "324:22:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -758,10 +791,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1804, + "id": 4199, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "329:7:8", + "src": "324:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -772,11 +805,11 @@ }, { "constant": false, - "id": 1807, + "id": 4202, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "357:12:8", + "scope": 4232, + "src": "352:12:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -784,10 +817,10 @@ "typeString": "string" }, "typeName": { - "id": 1806, + "id": 4201, "name": "string", "nodeType": "ElementaryTypeName", - "src": "357:6:8", + "src": "352:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -798,11 +831,11 @@ }, { "constant": false, - "id": 1809, + "id": 4204, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "375:14:8", + "scope": 4232, + "src": "370:14:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -810,10 +843,10 @@ "typeString": "string" }, "typeName": { - "id": 1808, + "id": 4203, "name": "string", "nodeType": "ElementaryTypeName", - "src": "375:6:8", + "src": "370:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -821,58 +854,84 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 4206, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 4232, + "src": "390:17:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "390:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "295:95:8" + "src": "290:118:34" }, "payable": false, "returnParameters": { - "id": 1811, + "id": 4208, "nodeType": "ParameterList", "parameters": [], - "src": "404:0:8" + "src": "422:0:34" }, - "scope": 1832, - "src": "284:246:8", + "scope": 4233, + "src": "279:295:34", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1833, - "src": "127:406:8" + "scope": 4234, + "src": "127:450:34" } ], - "src": "0:534:8" + "src": "0:578:34" }, "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/StandardTokenMock.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/StandardTokenMock.sol", "exportedSymbols": { "StandardTokenMock": [ - 1832 + 4233 ] }, - "id": 1833, + "id": 4234, "nodeType": "SourceUnit", "nodes": [ { - "id": 1789, + "id": 4185, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:8" + "src": "0:23:34" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", - "id": 1790, + "id": 4186, "nodeType": "ImportDirective", - "scope": 1833, - "sourceUnit": 2800, - "src": "26:67:8", + "scope": 4234, + "sourceUnit": 5383, + "src": "26:67:34", "symbolAliases": [], "unitAlias": "" }, @@ -882,48 +941,48 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1791, + "id": 4187, "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "157:13:8", + "referencedDeclaration": 5382, + "src": "157:13:34", "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", + "typeIdentifier": "t_contract$_StandardToken_$5382", "typeString": "contract StandardToken" } }, - "id": 1792, + "id": 4188, "nodeType": "InheritanceSpecifier", - "src": "157:13:8" + "src": "157:13:34" } ], "contractDependencies": [ - 2337, - 2414, - 2446, - 2799 + 4920, + 4997, + 5029, + 5382 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1832, + "id": 4233, "linearizedBaseContracts": [ - 1832, - 2799, - 2337, - 2414, - 2446 + 4233, + 5382, + 4920, + 4997, + 5029 ], "name": "StandardTokenMock", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1795, + "id": 4190, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "175:28:8", + "scope": 4233, + "src": "175:23:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -931,42 +990,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1793, + "id": 4189, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "175:7:8", + "src": "175:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 1794, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "201:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, + "value": null, "visibility": "public" }, { "constant": false, - "id": 1797, + "id": 4192, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "207:18:8", + "scope": 4233, + "src": "202:18:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -974,10 +1016,10 @@ "typeString": "string" }, "typeName": { - "id": 1796, + "id": 4191, "name": "string", "nodeType": "ElementaryTypeName", - "src": "207:6:8", + "src": "202:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -988,11 +1030,11 @@ }, { "constant": false, - "id": 1799, + "id": 4194, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "229:20:8", + "scope": 4233, + "src": "224:20:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1000,10 +1042,10 @@ "typeString": "string" }, "typeName": { - "id": 1798, + "id": 4193, "name": "string", "nodeType": "ElementaryTypeName", - "src": "229:6:8", + "src": "224:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1014,11 +1056,11 @@ }, { "constant": false, - "id": 1801, + "id": 4196, "name": "totalSupply", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "253:26:8", + "scope": 4233, + "src": "248:26:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1026,10 +1068,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1800, + "id": 4195, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "253:7:8", + "src": "248:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1040,14 +1082,14 @@ }, { "body": { - "id": 1830, + "id": 4231, "nodeType": "Block", - "src": "404:126:8", + "src": "422:152:34", "statements": [ { "expression": { "argumentTypes": null, - "id": 1816, + "id": 4213, "isConstant": false, "isLValue": false, "isPure": false, @@ -1056,26 +1098,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1812, + "id": 4209, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "410:8:8", + "referencedDeclaration": 4837, + "src": "428:8:34", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1814, + "id": 4211, "indexExpression": { "argumentTypes": null, - "id": 1813, + "id": 4210, "name": "initialAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "419:14:8", + "referencedDeclaration": 4198, + "src": "437:14:34", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1086,7 +1128,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "410:24:8", + "src": "428:24:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1096,45 +1138,45 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1815, + "id": 4212, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "437:14:8", + "referencedDeclaration": 4200, + "src": "455:14:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "410:41:8", + "src": "428:41:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1817, + "id": 4214, "nodeType": "ExpressionStatement", - "src": "410:41:8" + "src": "428:41:34" }, { "expression": { "argumentTypes": null, - "id": 1820, + "id": 4217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1818, + "id": 4215, "name": "totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [ - 1801 + 4196 ], - "referencedDeclaration": 1801, - "src": "457:11:8", + "referencedDeclaration": 4196, + "src": "475:11:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1144,43 +1186,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1819, + "id": 4216, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "471:14:8", + "referencedDeclaration": 4200, + "src": "489:14:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "457:28:8", + "src": "475:28:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1821, + "id": 4218, "nodeType": "ExpressionStatement", - "src": "457:28:8" + "src": "475:28:34" }, { "expression": { "argumentTypes": null, - "id": 1824, + "id": 4221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1822, + "id": 4219, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1797, - "src": "491:4:8", + "referencedDeclaration": 4192, + "src": "509:4:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -1190,43 +1232,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1823, + "id": 4220, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1807, - "src": "498:5:8", + "referencedDeclaration": 4202, + "src": "516:5:34", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "491:12:8", + "src": "509:12:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1825, + "id": 4222, "nodeType": "ExpressionStatement", - "src": "491:12:8" + "src": "509:12:34" }, { "expression": { "argumentTypes": null, - "id": 1828, + "id": 4225, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1826, + "id": 4223, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1799, - "src": "509:6:8", + "referencedDeclaration": 4194, + "src": "527:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -1236,31 +1278,77 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1827, + "id": 4224, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "518:7:8", + "referencedDeclaration": 4204, + "src": "536:7:34", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "509:16:8", + "src": "527:16:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1829, + "id": 4226, + "nodeType": "ExpressionStatement", + "src": "527:16:34" + }, + { + "expression": { + "argumentTypes": null, + "id": 4229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4227, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4190, + "src": "549:8:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4228, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4206, + "src": "560:9:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "549:20:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4230, "nodeType": "ExpressionStatement", - "src": "509:16:8" + "src": "549:20:34" } ] }, "documentation": null, - "id": 1831, + "id": 4232, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1268,16 +1356,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1810, + "id": 4207, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1803, + "id": 4198, "name": "initialAccount", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "301:22:8", + "scope": 4232, + "src": "296:22:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1285,10 +1373,10 @@ "typeString": "address" }, "typeName": { - "id": 1802, + "id": 4197, "name": "address", "nodeType": "ElementaryTypeName", - "src": "301:7:8", + "src": "296:7:34", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1299,11 +1387,11 @@ }, { "constant": false, - "id": 1805, + "id": 4200, "name": "initialBalance", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "329:22:8", + "scope": 4232, + "src": "324:22:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1311,10 +1399,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1804, + "id": 4199, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "329:7:8", + "src": "324:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1325,11 +1413,11 @@ }, { "constant": false, - "id": 1807, + "id": 4202, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "357:12:8", + "scope": 4232, + "src": "352:12:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1337,10 +1425,10 @@ "typeString": "string" }, "typeName": { - "id": 1806, + "id": 4201, "name": "string", "nodeType": "ElementaryTypeName", - "src": "357:6:8", + "src": "352:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1351,11 +1439,11 @@ }, { "constant": false, - "id": 1809, + "id": 4204, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "375:14:8", + "scope": 4232, + "src": "370:14:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1363,10 +1451,10 @@ "typeString": "string" }, "typeName": { - "id": 1808, + "id": 4203, "name": "string", "nodeType": "ElementaryTypeName", - "src": "375:6:8", + "src": "370:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1374,35 +1462,61 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 4206, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 4232, + "src": "390:17:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "390:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "295:95:8" + "src": "290:118:34" }, "payable": false, "returnParameters": { - "id": 1811, + "id": 4208, "nodeType": "ParameterList", "parameters": [], - "src": "404:0:8" + "src": "422:0:34" }, - "scope": 1832, - "src": "284:246:8", + "scope": 4233, + "src": "279:295:34", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1833, - "src": "127:406:8" + "scope": 4234, + "src": "127:450:34" } ], - "src": "0:534:8" + "src": "0:578:34" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.580Z" + "updatedAt": "2018-07-07T07:45:08.914Z" } \ No newline at end of file diff --git a/artifacts/json/StandardTokenWithFeeMock.json b/artifacts/json/StandardTokenWithFeeMock.json index c11d5e8b9..c61749db0 100644 --- a/artifacts/json/StandardTokenWithFeeMock.json +++ b/artifacts/json/StandardTokenWithFeeMock.json @@ -323,51 +323,51 @@ "type": "function" } ], - "bytecode": "0x608060405260126003553480156200001657600080fd5b5060405162001562380380620015628339810180604052810190808051906020019092919080519060200190929190805182019291906020018051820192919060200180519060200190929190505050836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836006819055508260049080519060200190620000c8929190620000f4565b508160059080519060200190620000e1929190620000f4565b50806007819055505050505050620001a3565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013757805160ff191683800117855562000168565b8280016001018555821562000168579182015b82811115620001675782518255916020019190600101906200014a565b5b5090506200017791906200017b565b5090565b620001a091905b808211156200019c57600081600090555060010162000182565b5090565b90565b6113af80620001b36000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100ca578063095ea7b31461015a57806318160ddd146101bf57806323b872dd146101ea578063313ce5671461026f578063661884631461029a57806369fe0e2d146102ff57806370a082311461034457806395d89b411461039b578063a9059cbb1461042b578063d73dd62314610490578063dd62ed3e146104f5578063ddca3f431461056c575b600080fd5b3480156100d657600080fd5b506100df610597565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561011f578082015181840152602081019050610104565b50505050905090810190601f16801561014c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016657600080fd5b506101a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610635565b604051808215151515815260200191505060405180910390f35b3480156101cb57600080fd5b506101d4610727565b6040518082815260200191505060405180910390f35b3480156101f657600080fd5b50610255600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072d565b604051808215151515815260200191505060405180910390f35b34801561027b57600080fd5b50610284610b01565b6040518082815260200191505060405180910390f35b3480156102a657600080fd5b506102e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b07565b604051808215151515815260200191505060405180910390f35b34801561030b57600080fd5b5061032a60048036038101908080359060200190929190505050610d98565b604051808215151515815260200191505060405180910390f35b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da6565b6040518082815260200191505060405180910390f35b3480156103a757600080fd5b506103b0610dee565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103f05780820151818401526020810190506103d5565b50505050905090810190601f16801561041d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561043757600080fd5b50610476600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e8c565b604051808215151515815260200191505060405180910390f35b34801561049c57600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c5565b604051808215151515815260200191505060405180910390f35b34801561050157600080fd5b50610556600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c1565b6040518082815260200191505060405180910390f35b34801561057857600080fd5b50610581611348565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561062d5780601f106106025761010080835404028352916020019161062d565b820191906000526020600020905b81548152906001019060200180831161061057829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561076c57600080fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111515156107b957600080fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561084457600080fd5b6108596007548461134e90919063ffffffff16565b90506108ac836000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093f816000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a1083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610c18576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cac565b610c2b838261134e90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600081600781905550919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e845780601f10610e5957610100808354040283529160200191610e84565b820191906000526020600020905b815481529060010190602001808311610e6757829003601f168201915b505050505081565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610ecb57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610f1857600080fd5b610f2d6007548461136790919063ffffffff16565b9050610f80816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611013836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600061115682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b600082821115151561135c57fe5b818303905092915050565b6000818301905082811015151561137a57fe5b809050929150505600a165627a7a723058207cfda84d8c0638c7261de0474924deac21400fa7e9f833b2198d7d61927925150029", - "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100ca578063095ea7b31461015a57806318160ddd146101bf57806323b872dd146101ea578063313ce5671461026f578063661884631461029a57806369fe0e2d146102ff57806370a082311461034457806395d89b411461039b578063a9059cbb1461042b578063d73dd62314610490578063dd62ed3e146104f5578063ddca3f431461056c575b600080fd5b3480156100d657600080fd5b506100df610597565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561011f578082015181840152602081019050610104565b50505050905090810190601f16801561014c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016657600080fd5b506101a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610635565b604051808215151515815260200191505060405180910390f35b3480156101cb57600080fd5b506101d4610727565b6040518082815260200191505060405180910390f35b3480156101f657600080fd5b50610255600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072d565b604051808215151515815260200191505060405180910390f35b34801561027b57600080fd5b50610284610b01565b6040518082815260200191505060405180910390f35b3480156102a657600080fd5b506102e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b07565b604051808215151515815260200191505060405180910390f35b34801561030b57600080fd5b5061032a60048036038101908080359060200190929190505050610d98565b604051808215151515815260200191505060405180910390f35b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da6565b6040518082815260200191505060405180910390f35b3480156103a757600080fd5b506103b0610dee565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103f05780820151818401526020810190506103d5565b50505050905090810190601f16801561041d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561043757600080fd5b50610476600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e8c565b604051808215151515815260200191505060405180910390f35b34801561049c57600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c5565b604051808215151515815260200191505060405180910390f35b34801561050157600080fd5b50610556600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c1565b6040518082815260200191505060405180910390f35b34801561057857600080fd5b50610581611348565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561062d5780601f106106025761010080835404028352916020019161062d565b820191906000526020600020905b81548152906001019060200180831161061057829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561076c57600080fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111515156107b957600080fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561084457600080fd5b6108596007548461134e90919063ffffffff16565b90506108ac836000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093f816000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a1083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610c18576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cac565b610c2b838261134e90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600081600781905550919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e845780601f10610e5957610100808354040283529160200191610e84565b820191906000526020600020905b815481529060010190602001808311610e6757829003601f168201915b505050505081565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610ecb57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610f1857600080fd5b610f2d6007548461136790919063ffffffff16565b9050610f80816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611013836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600061115682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b600082821115151561135c57fe5b818303905092915050565b6000818301905082811015151561137a57fe5b809050929150505600a165627a7a723058207cfda84d8c0638c7261de0474924deac21400fa7e9f833b2198d7d61927925150029", - "sourceMap": "183:2001:9:-;;;295:2;269:28;;400:280;8:9:-1;5:2;;;30:1;27;20:12;5:2;400:280:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;571:14;544:8;:24;553:14;544:24;;;;;;;;;;;;;;;:41;;;;605:14;591:11;:28;;;;632:5;625:4;:12;;;;;;;;;;;;:::i;:::-;;652:7;643:6;:16;;;;;;;;;;;;:::i;:::-;;671:4;665:3;:10;;;;400:280;;;;;183:2001;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "183:2001:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;301:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;301:18:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;301:18:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;347:26:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;347:26:9;;;;;;;;;;;;;;;;;;;;;;;976:498;;8:9:-1;5:2;;;30:1;27;20:12;5:2;976:498:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;269:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;269:28:9;;;;;;;;;;;;;;;;;;;;;;;3701:425:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2109:73:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2109:73:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;323:20:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;323:20:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;323:20:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1669:436;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1669:436:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;377:18:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;377:18:9;;;;;;;;;;;;;;;;;;;;;;;301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:17:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;347:26:9:-;;;;:::o;976:498::-;1058:4;1194:24;1093:1;1078:17;;:3;:17;;;;1070:26;;;;;;;;1120:8;:15;1129:5;1120:15;;;;;;;;;;;;;;;;1110:6;:25;;1102:34;;;;;;;;1160:7;:14;1168:5;1160:14;;;;;;;;;;;;;;;:26;1175:10;1160:26;;;;;;;;;;;;;;;;1150:6;:36;;1142:45;;;;;;;;1221:15;1232:3;;1221:6;:10;;:15;;;;:::i;:::-;1194:42;;1261:27;1281:6;1261:8;:15;1270:5;1261:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;1243:8;:15;1252:5;1243:15;;;;;;;;;;;;;;;:45;;;;1310:35;1328:16;1310:8;:13;1319:3;1310:13;;;;;;;;;;;;;;;;:17;;:35;;;;:::i;:::-;1294:8;:13;1303:3;1294:13;;;;;;;;;;;;;;;:51;;;;1380:38;1411:6;1380:7;:14;1388:5;1380:14;;;;;;;;;;;;;;;:26;1395:10;1380:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1351:7;:14;1359:5;1351:14;;;;;;;;;;;;;;;:26;1366:10;1351:26;;;;;;;;;;;;;;;:67;;;;1440:3;1424:28;;1433:5;1424:28;;;1445:6;1424:28;;;;;;;;;;;;;;;;;;1465:4;1458:11;;976:498;;;;;;:::o;269:28::-;;;;:::o;3701:425:17:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;2109:73:9:-;2155:4;2173;2167:3;:10;;;;2109:73;;;:::o;1131:99:12:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;323:20:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1669:436::-;1732:4;1822:23;1767:1;1752:17;;:3;:17;;;;1744:26;;;;;;;;1794:8;:20;1803:10;1794:20;;;;;;;;;;;;;;;;1784:6;:30;;1776:39;;;;;;;;1848:15;1859:3;;1848:6;:10;;:15;;;;:::i;:::-;1822:41;;1956;1981:15;1956:8;:20;1965:10;1956:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;1933:8;:20;1942:10;1933:20;;;;;;;;;;;;;;;:64;;;;2019:25;2037:6;2019:8;:13;2028:3;2019:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;2003:8;:13;2012:3;2003:13;;;;;;;;;;;;;;;:41;;;;2071:3;2050:33;;2059:10;2050:33;;;2076:6;2050:33;;;;;;;;;;;;;;;;;;2096:4;2089:11;;1669:436;;;;;:::o;2946:293:17:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;377:18:9:-;;;;:::o;1042:110:10:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", - "source": "pragma solidity 0.4.23;\n\n\nimport \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\n\n\n// mock class using BasicToken\ncontract StandardTokenWithFeeMock is StandardToken {\n using SafeMath for uint256;\n\n uint256 public decimals = 18;\n string public name;\n string public symbol;\n uint256 public totalSupply;\n uint256 public fee;\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol,\n uint256 _fee)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n fee = _fee;\n }\n\n /**\n * @dev Transfer tokens from one address to another with a fee component\n * @param _from address The address which you want to send tokens from\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n require(_value <= balances[_from]);\n require(_value <= allowed[_from][msg.sender]);\n\n uint256 netValueMinusFee = _value.sub(fee);\n\n balances[_from] = balances[_from].sub(_value);\n balances[_to] = balances[_to].add(netValueMinusFee);\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n Transfer(_from, _to, _value);\n return true;\n }\n\n /**\n * @dev transfer token for a specified address with a fee component applied to the send\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n require(_value <= balances[msg.sender]);\n\n uint256 netValuePlusFee = _value.add(fee);\n\n // SafeMath.sub will throw if there is not enough balance.\n balances[msg.sender] = balances[msg.sender].sub(netValuePlusFee);\n balances[_to] = balances[_to].add(_value);\n Transfer(msg.sender, _to, _value);\n return true;\n }\n\n function setFee(uint256 _fee) public returns (bool) {\n fee = _fee;\n }\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/StandardTokenWithFeeMock.sol", + "bytecode": "0x608060405260126003553480156200001657600080fd5b5060405162001562380380620015628339810180604052810190808051906020019092919080519060200190929190805182019291906020018051820192919060200180519060200190929190505050836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836006819055508260049080519060200190620000c8929190620000f4565b508160059080519060200190620000e1929190620000f4565b50806007819055505050505050620001a3565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013757805160ff191683800117855562000168565b8280016001018555821562000168579182015b82811115620001675782518255916020019190600101906200014a565b5b5090506200017791906200017b565b5090565b620001a091905b808211156200019c57600081600090555060010162000182565b5090565b90565b6113af80620001b36000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100ca578063095ea7b31461015a57806318160ddd146101bf57806323b872dd146101ea578063313ce5671461026f578063661884631461029a57806369fe0e2d146102ff57806370a082311461034457806395d89b411461039b578063a9059cbb1461042b578063d73dd62314610490578063dd62ed3e146104f5578063ddca3f431461056c575b600080fd5b3480156100d657600080fd5b506100df610597565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561011f578082015181840152602081019050610104565b50505050905090810190601f16801561014c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016657600080fd5b506101a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610635565b604051808215151515815260200191505060405180910390f35b3480156101cb57600080fd5b506101d4610727565b6040518082815260200191505060405180910390f35b3480156101f657600080fd5b50610255600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072d565b604051808215151515815260200191505060405180910390f35b34801561027b57600080fd5b50610284610b01565b6040518082815260200191505060405180910390f35b3480156102a657600080fd5b506102e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b07565b604051808215151515815260200191505060405180910390f35b34801561030b57600080fd5b5061032a60048036038101908080359060200190929190505050610d98565b604051808215151515815260200191505060405180910390f35b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da6565b6040518082815260200191505060405180910390f35b3480156103a757600080fd5b506103b0610dee565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103f05780820151818401526020810190506103d5565b50505050905090810190601f16801561041d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561043757600080fd5b50610476600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e8c565b604051808215151515815260200191505060405180910390f35b34801561049c57600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c5565b604051808215151515815260200191505060405180910390f35b34801561050157600080fd5b50610556600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c1565b6040518082815260200191505060405180910390f35b34801561057857600080fd5b50610581611348565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561062d5780601f106106025761010080835404028352916020019161062d565b820191906000526020600020905b81548152906001019060200180831161061057829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561076c57600080fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111515156107b957600080fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561084457600080fd5b6108596007548461134e90919063ffffffff16565b90506108ac836000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093f816000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a1083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610c18576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cac565b610c2b838261134e90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600081600781905550919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e845780601f10610e5957610100808354040283529160200191610e84565b820191906000526020600020905b815481529060010190602001808311610e6757829003601f168201915b505050505081565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610ecb57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610f1857600080fd5b610f2d6007548461136790919063ffffffff16565b9050610f80816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611013836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600061115682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b600082821115151561135c57fe5b818303905092915050565b6000818301905082811015151561137a57fe5b809050929150505600a165627a7a723058205e31bb65cafc0f2368a2d7be8cb3c97843f806fc3457ba2ce0de9efa3c1c8bd70029", + "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100ca578063095ea7b31461015a57806318160ddd146101bf57806323b872dd146101ea578063313ce5671461026f578063661884631461029a57806369fe0e2d146102ff57806370a082311461034457806395d89b411461039b578063a9059cbb1461042b578063d73dd62314610490578063dd62ed3e146104f5578063ddca3f431461056c575b600080fd5b3480156100d657600080fd5b506100df610597565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561011f578082015181840152602081019050610104565b50505050905090810190601f16801561014c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016657600080fd5b506101a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610635565b604051808215151515815260200191505060405180910390f35b3480156101cb57600080fd5b506101d4610727565b6040518082815260200191505060405180910390f35b3480156101f657600080fd5b50610255600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072d565b604051808215151515815260200191505060405180910390f35b34801561027b57600080fd5b50610284610b01565b6040518082815260200191505060405180910390f35b3480156102a657600080fd5b506102e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b07565b604051808215151515815260200191505060405180910390f35b34801561030b57600080fd5b5061032a60048036038101908080359060200190929190505050610d98565b604051808215151515815260200191505060405180910390f35b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da6565b6040518082815260200191505060405180910390f35b3480156103a757600080fd5b506103b0610dee565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103f05780820151818401526020810190506103d5565b50505050905090810190601f16801561041d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561043757600080fd5b50610476600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e8c565b604051808215151515815260200191505060405180910390f35b34801561049c57600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c5565b604051808215151515815260200191505060405180910390f35b34801561050157600080fd5b50610556600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c1565b6040518082815260200191505060405180910390f35b34801561057857600080fd5b50610581611348565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561062d5780601f106106025761010080835404028352916020019161062d565b820191906000526020600020905b81548152906001019060200180831161061057829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561076c57600080fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111515156107b957600080fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561084457600080fd5b6108596007548461134e90919063ffffffff16565b90506108ac836000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093f816000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a1083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610c18576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cac565b610c2b838261134e90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600081600781905550919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e845780601f10610e5957610100808354040283529160200191610e84565b820191906000526020600020905b815481529060010190602001808311610e6757829003601f168201915b505050505081565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610ecb57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610f1857600080fd5b610f2d6007548461136790919063ffffffff16565b9050610f80816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611013836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600061115682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b600082821115151561135c57fe5b818303905092915050565b6000818301905082811015151561137a57fe5b809050929150505600a165627a7a723058205e31bb65cafc0f2368a2d7be8cb3c97843f806fc3457ba2ce0de9efa3c1c8bd70029", + "sourceMap": "183:2011:35:-;;;295:2;269:28;;400:280;8:9:-1;5:2;;;30:1;27;20:12;5:2;400:280:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;571:14;544:8;:24;553:14;544:24;;;;;;;;;;;;;;;:41;;;;605:14;591:11;:28;;;;632:5;625:4;:12;;;;;;;;;;;;:::i;:::-;;652:7;643:6;:16;;;;;;;;;;;;:::i;:::-;;671:4;665:3;:10;;;;400:280;;;;;183:2011;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "183:2011:35:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;301:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;301:18:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;301:18:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;347:26:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;347:26:35;;;;;;;;;;;;;;;;;;;;;;;976:503;;8:9:-1;5:2;;;30:1;27;20:12;5:2;976:503:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;269:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;269:28:35;;;;;;;;;;;;;;;;;;;;;;;3701:425:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2119:73:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2119:73:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;323:20:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;323:20:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;323:20:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1674:441;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1674:441:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;377:18:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;377:18:35;;;;;;;;;;;;;;;;;;;;;;;301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:45:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;347:26:35:-;;;;:::o;976:503::-;1058:4;1194:24;1093:1;1078:17;;:3;:17;;;;1070:26;;;;;;;;1120:8;:15;1129:5;1120:15;;;;;;;;;;;;;;;;1110:6;:25;;1102:34;;;;;;;;1160:7;:14;1168:5;1160:14;;;;;;;;;;;;;;;:26;1175:10;1160:26;;;;;;;;;;;;;;;;1150:6;:36;;1142:45;;;;;;;;1221:15;1232:3;;1221:6;:10;;:15;;;;:::i;:::-;1194:42;;1261:27;1281:6;1261:8;:15;1270:5;1261:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;1243:8;:15;1252:5;1243:15;;;;;;;;;;;;;;;:45;;;;1310:35;1328:16;1310:8;:13;1319:3;1310:13;;;;;;;;;;;;;;;;:17;;:35;;;;:::i;:::-;1294:8;:13;1303:3;1294:13;;;;;;;;;;;;;;;:51;;;;1380:38;1411:6;1380:7;:14;1388:5;1380:14;;;;;;;;;;;;;;;:26;1395:10;1380:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1351:7;:14;1359:5;1351:14;;;;;;;;;;;;;;;:26;1366:10;1351:26;;;;;;;;;;;;;;;:67;;;;1445:3;1429:28;;1438:5;1429:28;;;1450:6;1429:28;;;;;;;;;;;;;;;;;;1470:4;1463:11;;976:503;;;;;;:::o;269:28::-;;;;:::o;3701:425:45:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;2119:73:35:-;2165:4;2183;2177:3;:10;;;;2119:73;;;:::o;1131:99:40:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;323:20:35:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1674:441::-;1737:4;1827:23;1772:1;1757:17;;:3;:17;;;;1749:26;;;;;;;;1799:8;:20;1808:10;1799:20;;;;;;;;;;;;;;;;1789:6;:30;;1781:39;;;;;;;;1853:15;1864:3;;1853:6;:10;;:15;;;;:::i;:::-;1827:41;;1961;1986:15;1961:8;:20;1970:10;1961:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;1938:8;:20;1947:10;1938:20;;;;;;;;;;;;;;;:64;;;;2024:25;2042:6;2024:8;:13;2033:3;2024:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;2008:8;:13;2017:3;2008:13;;;;;;;;;;;;;;;:41;;;;2081:3;2060:33;;2069:10;2060:33;;;2086:6;2060:33;;;;;;;;;;;;;;;;;;2106:4;2099:11;;1674:441;;;;;:::o;2946:293:45:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;377:18:35:-;;;;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "source": "pragma solidity 0.4.24;\n\n\nimport \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\n\n\n// mock class using BasicToken\ncontract StandardTokenWithFeeMock is StandardToken {\n using SafeMath for uint256;\n\n uint256 public decimals = 18;\n string public name;\n string public symbol;\n uint256 public totalSupply;\n uint256 public fee;\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol,\n uint256 _fee)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n fee = _fee;\n }\n\n /**\n * @dev Transfer tokens from one address to another with a fee component\n * @param _from address The address which you want to send tokens from\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n require(_value <= balances[_from]);\n require(_value <= allowed[_from][msg.sender]);\n\n uint256 netValueMinusFee = _value.sub(fee);\n\n balances[_from] = balances[_from].sub(_value);\n balances[_to] = balances[_to].add(netValueMinusFee);\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n emit Transfer(_from, _to, _value);\n return true;\n }\n\n /**\n * @dev transfer token for a specified address with a fee component applied to the send\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n require(_value <= balances[msg.sender]);\n\n uint256 netValuePlusFee = _value.add(fee);\n\n // SafeMath.sub will throw if there is not enough balance.\n balances[msg.sender] = balances[msg.sender].sub(netValuePlusFee);\n balances[_to] = balances[_to].add(_value);\n emit Transfer(msg.sender, _to, _value);\n return true;\n }\n\n function setFee(uint256 _fee) public returns (bool) {\n fee = _fee;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/StandardTokenWithFeeMock.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/StandardTokenWithFeeMock.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/StandardTokenWithFeeMock.sol", "exportedSymbols": { "StandardTokenWithFeeMock": [ - 2061 + 4462 ] }, - "id": 2062, + "id": 4463, "nodeType": "SourceUnit", "nodes": [ { - "id": 1834, + "id": 4235, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:9" + "src": "0:23:35" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", - "id": 1835, + "id": 4236, "nodeType": "ImportDirective", - "scope": 2062, - "sourceUnit": 2800, - "src": "26:67:9", + "scope": 4463, + "sourceUnit": 5383, + "src": "26:67:35", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "zeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1836, + "id": 4237, "nodeType": "ImportDirective", - "scope": 2062, - "sourceUnit": 2156, - "src": "94:55:9", + "scope": 4463, + "sourceUnit": 4739, + "src": "94:55:35", "symbolAliases": [], "unitAlias": "" }, @@ -377,62 +377,62 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1837, + "id": 4238, "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "220:13:9", + "referencedDeclaration": 5382, + "src": "220:13:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", + "typeIdentifier": "t_contract$_StandardToken_$5382", "typeString": "contract StandardToken" } }, - "id": 1838, + "id": 4239, "nodeType": "InheritanceSpecifier", - "src": "220:13:9" + "src": "220:13:35" } ], "contractDependencies": [ - 2337, - 2414, - 2446, - 2799 + 4920, + 4997, + 5029, + 5382 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 2061, + "id": 4462, "linearizedBaseContracts": [ - 2061, - 2799, - 2337, - 2414, - 2446 + 4462, + 5382, + 4920, + 4997, + 5029 ], "name": "StandardTokenWithFeeMock", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1841, + "id": 4242, "libraryName": { "contractScope": null, - "id": 1839, + "id": 4240, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "244:8:9", + "referencedDeclaration": 4738, + "src": "244:8:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", + "typeIdentifier": "t_contract$_SafeMath_$4738", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "238:27:9", + "src": "238:27:35", "typeName": { - "id": 1840, + "id": 4241, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "257:7:9", + "src": "257:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -441,11 +441,11 @@ }, { "constant": false, - "id": 1844, + "id": 4245, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "269:28:9", + "scope": 4462, + "src": "269:28:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -453,10 +453,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1842, + "id": 4243, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "269:7:9", + "src": "269:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -465,14 +465,14 @@ "value": { "argumentTypes": null, "hexValue": "3138", - "id": 1843, + "id": 4244, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "295:2:9", + "src": "295:2:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -484,11 +484,11 @@ }, { "constant": false, - "id": 1846, + "id": 4247, "name": "name", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "301:18:9", + "scope": 4462, + "src": "301:18:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -496,10 +496,10 @@ "typeString": "string" }, "typeName": { - "id": 1845, + "id": 4246, "name": "string", "nodeType": "ElementaryTypeName", - "src": "301:6:9", + "src": "301:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -510,11 +510,11 @@ }, { "constant": false, - "id": 1848, + "id": 4249, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "323:20:9", + "scope": 4462, + "src": "323:20:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -522,10 +522,10 @@ "typeString": "string" }, "typeName": { - "id": 1847, + "id": 4248, "name": "string", "nodeType": "ElementaryTypeName", - "src": "323:6:9", + "src": "323:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -536,11 +536,11 @@ }, { "constant": false, - "id": 1850, + "id": 4251, "name": "totalSupply", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "347:26:9", + "scope": 4462, + "src": "347:26:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -548,10 +548,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1849, + "id": 4250, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "347:7:9", + "src": "347:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -562,11 +562,11 @@ }, { "constant": false, - "id": 1852, + "id": 4253, "name": "fee", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "377:18:9", + "scope": 4462, + "src": "377:18:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -574,10 +574,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1851, + "id": 4252, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "377:7:9", + "src": "377:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -588,14 +588,14 @@ }, { "body": { - "id": 1887, + "id": 4288, "nodeType": "Block", - "src": "538:142:9", + "src": "538:142:35", "statements": [ { "expression": { "argumentTypes": null, - "id": 1869, + "id": 4270, "isConstant": false, "isLValue": false, "isPure": false, @@ -604,26 +604,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1865, + "id": 4266, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "544:8:9", + "referencedDeclaration": 4837, + "src": "544:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1867, + "id": 4268, "indexExpression": { "argumentTypes": null, - "id": 1866, + "id": 4267, "name": "initialAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1854, - "src": "553:14:9", + "referencedDeclaration": 4255, + "src": "553:14:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -634,7 +634,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "544:24:9", + "src": "544:24:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -644,45 +644,45 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1868, + "id": 4269, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1856, - "src": "571:14:9", + "referencedDeclaration": 4257, + "src": "571:14:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "544:41:9", + "src": "544:41:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1870, + "id": 4271, "nodeType": "ExpressionStatement", - "src": "544:41:9" + "src": "544:41:35" }, { "expression": { "argumentTypes": null, - "id": 1873, + "id": 4274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1871, + "id": 4272, "name": "totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [ - 1850 + 4251 ], - "referencedDeclaration": 1850, - "src": "591:11:9", + "referencedDeclaration": 4251, + "src": "591:11:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -692,43 +692,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1872, + "id": 4273, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1856, - "src": "605:14:9", + "referencedDeclaration": 4257, + "src": "605:14:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "591:28:9", + "src": "591:28:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1874, + "id": 4275, "nodeType": "ExpressionStatement", - "src": "591:28:9" + "src": "591:28:35" }, { "expression": { "argumentTypes": null, - "id": 1877, + "id": 4278, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1875, + "id": 4276, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1846, - "src": "625:4:9", + "referencedDeclaration": 4247, + "src": "625:4:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -738,43 +738,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1876, + "id": 4277, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, - "src": "632:5:9", + "referencedDeclaration": 4259, + "src": "632:5:35", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "625:12:9", + "src": "625:12:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1878, + "id": 4279, "nodeType": "ExpressionStatement", - "src": "625:12:9" + "src": "625:12:35" }, { "expression": { "argumentTypes": null, - "id": 1881, + "id": 4282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1879, + "id": 4280, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1848, - "src": "643:6:9", + "referencedDeclaration": 4249, + "src": "643:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -784,43 +784,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1880, + "id": 4281, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1860, - "src": "652:7:9", + "referencedDeclaration": 4261, + "src": "652:7:35", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "643:16:9", + "src": "643:16:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1882, + "id": 4283, "nodeType": "ExpressionStatement", - "src": "643:16:9" + "src": "643:16:35" }, { "expression": { "argumentTypes": null, - "id": 1885, + "id": 4286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1883, + "id": 4284, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "665:3:9", + "referencedDeclaration": 4253, + "src": "665:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -830,31 +830,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1884, + "id": 4285, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1862, - "src": "671:4:9", + "referencedDeclaration": 4263, + "src": "671:4:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "665:10:9", + "src": "665:10:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1886, + "id": 4287, "nodeType": "ExpressionStatement", - "src": "665:10:9" + "src": "665:10:35" } ] }, "documentation": null, - "id": 1888, + "id": 4289, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -862,16 +862,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1863, + "id": 4264, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1854, + "id": 4255, "name": "initialAccount", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "417:22:9", + "scope": 4289, + "src": "417:22:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -879,10 +879,10 @@ "typeString": "address" }, "typeName": { - "id": 1853, + "id": 4254, "name": "address", "nodeType": "ElementaryTypeName", - "src": "417:7:9", + "src": "417:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -893,11 +893,11 @@ }, { "constant": false, - "id": 1856, + "id": 4257, "name": "initialBalance", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "445:22:9", + "scope": 4289, + "src": "445:22:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -905,10 +905,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1855, + "id": 4256, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "445:7:9", + "src": "445:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -919,11 +919,11 @@ }, { "constant": false, - "id": 1858, + "id": 4259, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "473:12:9", + "scope": 4289, + "src": "473:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -931,10 +931,10 @@ "typeString": "string" }, "typeName": { - "id": 1857, + "id": 4258, "name": "string", "nodeType": "ElementaryTypeName", - "src": "473:6:9", + "src": "473:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -945,11 +945,11 @@ }, { "constant": false, - "id": 1860, + "id": 4261, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "491:14:9", + "scope": 4289, + "src": "491:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -957,10 +957,10 @@ "typeString": "string" }, "typeName": { - "id": 1859, + "id": 4260, "name": "string", "nodeType": "ElementaryTypeName", - "src": "491:6:9", + "src": "491:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -971,11 +971,11 @@ }, { "constant": false, - "id": 1862, + "id": 4263, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "511:12:9", + "scope": 4289, + "src": "511:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -983,10 +983,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1861, + "id": 4262, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "511:7:9", + "src": "511:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -996,26 +996,26 @@ "visibility": "internal" } ], - "src": "411:113:9" + "src": "411:113:35" }, "payable": false, "returnParameters": { - "id": 1864, + "id": 4265, "nodeType": "ParameterList", "parameters": [], - "src": "538:0:9" + "src": "538:0:35" }, - "scope": 2061, - "src": "400:280:9", + "scope": 4462, + "src": "400:280:35", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1980, + "id": 4381, "nodeType": "Block", - "src": "1064:410:9", + "src": "1064:415:35", "statements": [ { "expression": { @@ -1027,19 +1027,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1904, + "id": 4305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1900, + "id": 4301, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1078:3:9", + "referencedDeclaration": 4293, + "src": "1078:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1053,14 +1053,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1902, + "id": 4303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1093:1:9", + "src": "1093:1:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1076,20 +1076,20 @@ "typeString": "int_const 0" } ], - "id": 1901, + "id": 4302, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1085:7:9", + "src": "1085:7:35", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1903, + "id": 4304, "isConstant": false, "isLValue": false, "isPure": true, @@ -1097,13 +1097,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1085:10:9", + "src": "1085:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1078:17:9", + "src": "1078:17:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1117,21 +1117,21 @@ "typeString": "bool" } ], - "id": 1899, + "id": 4300, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1070:7:9", + "referencedDeclaration": 5400, + "src": "1070:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1905, + "id": 4306, "isConstant": false, "isLValue": false, "isPure": false, @@ -1139,15 +1139,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1070:26:9", + "src": "1070:26:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1906, + "id": 4307, "nodeType": "ExpressionStatement", - "src": "1070:26:9" + "src": "1070:26:35" }, { "expression": { @@ -1159,19 +1159,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1912, + "id": 4313, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1908, + "id": 4309, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1110:6:9", + "referencedDeclaration": 4295, + "src": "1110:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1183,26 +1183,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1909, + "id": 4310, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1120:8:9", + "referencedDeclaration": 4837, + "src": "1120:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1911, + "id": 4312, "indexExpression": { "argumentTypes": null, - "id": 1910, + "id": 4311, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1129:5:9", + "referencedDeclaration": 4291, + "src": "1129:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1213,13 +1213,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1120:15:9", + "src": "1120:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1110:25:9", + "src": "1110:25:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1233,21 +1233,21 @@ "typeString": "bool" } ], - "id": 1907, + "id": 4308, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1102:7:9", + "referencedDeclaration": 5400, + "src": "1102:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1913, + "id": 4314, "isConstant": false, "isLValue": false, "isPure": false, @@ -1255,15 +1255,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1102:34:9", + "src": "1102:34:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1914, + "id": 4315, "nodeType": "ExpressionStatement", - "src": "1102:34:9" + "src": "1102:34:35" }, { "expression": { @@ -1275,19 +1275,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1923, + "id": 4324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1916, + "id": 4317, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1150:6:9", + "referencedDeclaration": 4295, + "src": "1150:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1301,26 +1301,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1917, + "id": 4318, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1160:7:9", + "referencedDeclaration": 5149, + "src": "1160:7:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1919, + "id": 4320, "indexExpression": { "argumentTypes": null, - "id": 1918, + "id": 4319, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1168:5:9", + "referencedDeclaration": 4291, + "src": "1168:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1331,29 +1331,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1160:14:9", + "src": "1160:14:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1922, + "id": 4323, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1920, + "id": 4321, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1175:3:9", + "referencedDeclaration": 5397, + "src": "1175:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1921, + "id": 4322, "isConstant": false, "isLValue": false, "isPure": false, @@ -1361,7 +1361,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1175:10:9", + "src": "1175:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1372,13 +1372,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1160:26:9", + "src": "1160:26:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1150:36:9", + "src": "1150:36:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1392,21 +1392,21 @@ "typeString": "bool" } ], - "id": 1915, + "id": 4316, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1142:7:9", + "referencedDeclaration": 5400, + "src": "1142:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1924, + "id": 4325, "isConstant": false, "isLValue": false, "isPure": false, @@ -1414,28 +1414,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1142:45:9", + "src": "1142:45:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1925, + "id": 4326, "nodeType": "ExpressionStatement", - "src": "1142:45:9" + "src": "1142:45:35" }, { "assignments": [ - 1927 + 4328 ], "declarations": [ { "constant": false, - "id": 1927, + "id": 4328, "name": "netValueMinusFee", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1194:24:9", + "scope": 4382, + "src": "1194:24:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1443,10 +1443,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1926, + "id": 4327, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1194:7:9", + "src": "1194:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1456,18 +1456,18 @@ "visibility": "internal" } ], - "id": 1932, + "id": 4333, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1930, + "id": 4331, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "1232:3:9", + "referencedDeclaration": 4253, + "src": "1232:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1483,32 +1483,32 @@ ], "expression": { "argumentTypes": null, - "id": 1928, + "id": 4329, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1221:6:9", + "referencedDeclaration": 4295, + "src": "1221:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1929, + "id": 4330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1221:10:9", + "referencedDeclaration": 4713, + "src": "1221:10:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1931, + "id": 4332, "isConstant": false, "isLValue": false, "isPure": false, @@ -1516,19 +1516,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1221:15:9", + "src": "1221:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1194:42:9" + "src": "1194:42:35" }, { "expression": { "argumentTypes": null, - "id": 1942, + "id": 4343, "isConstant": false, "isLValue": false, "isPure": false, @@ -1537,26 +1537,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1933, + "id": 4334, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1243:8:9", + "referencedDeclaration": 4837, + "src": "1243:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1935, + "id": 4336, "indexExpression": { "argumentTypes": null, - "id": 1934, + "id": 4335, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1252:5:9", + "referencedDeclaration": 4291, + "src": "1252:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1567,7 +1567,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1243:15:9", + "src": "1243:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1580,12 +1580,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1940, + "id": 4341, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1281:6:9", + "referencedDeclaration": 4295, + "src": "1281:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1603,26 +1603,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1936, + "id": 4337, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1261:8:9", + "referencedDeclaration": 4837, + "src": "1261:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1938, + "id": 4339, "indexExpression": { "argumentTypes": null, - "id": 1937, + "id": 4338, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1270:5:9", + "referencedDeclaration": 4291, + "src": "1270:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1633,27 +1633,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1261:15:9", + "src": "1261:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1939, + "id": 4340, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1261:19:9", + "referencedDeclaration": 4713, + "src": "1261:19:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1941, + "id": 4342, "isConstant": false, "isLValue": false, "isPure": false, @@ -1661,26 +1661,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1261:27:9", + "src": "1261:27:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1243:45:9", + "src": "1243:45:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1943, + "id": 4344, "nodeType": "ExpressionStatement", - "src": "1243:45:9" + "src": "1243:45:35" }, { "expression": { "argumentTypes": null, - "id": 1953, + "id": 4354, "isConstant": false, "isLValue": false, "isPure": false, @@ -1689,26 +1689,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1944, + "id": 4345, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1294:8:9", + "referencedDeclaration": 4837, + "src": "1294:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1946, + "id": 4347, "indexExpression": { "argumentTypes": null, - "id": 1945, + "id": 4346, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1303:3:9", + "referencedDeclaration": 4293, + "src": "1303:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1719,7 +1719,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1294:13:9", + "src": "1294:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1732,12 +1732,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1951, + "id": 4352, "name": "netValueMinusFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1927, - "src": "1328:16:9", + "referencedDeclaration": 4328, + "src": "1328:16:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1755,26 +1755,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1947, + "id": 4348, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1310:8:9", + "referencedDeclaration": 4837, + "src": "1310:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1949, + "id": 4350, "indexExpression": { "argumentTypes": null, - "id": 1948, + "id": 4349, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1319:3:9", + "referencedDeclaration": 4293, + "src": "1319:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1785,27 +1785,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1310:13:9", + "src": "1310:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1950, + "id": 4351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1310:17:9", + "referencedDeclaration": 4737, + "src": "1310:17:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1952, + "id": 4353, "isConstant": false, "isLValue": false, "isPure": false, @@ -1813,26 +1813,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1310:35:9", + "src": "1310:35:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1294:51:9", + "src": "1294:51:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1954, + "id": 4355, "nodeType": "ExpressionStatement", - "src": "1294:51:9" + "src": "1294:51:35" }, { "expression": { "argumentTypes": null, - "id": 1970, + "id": 4371, "isConstant": false, "isLValue": false, "isPure": false, @@ -1843,26 +1843,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1955, + "id": 4356, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1351:7:9", + "referencedDeclaration": 5149, + "src": "1351:7:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1959, + "id": 4360, "indexExpression": { "argumentTypes": null, - "id": 1956, + "id": 4357, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1359:5:9", + "referencedDeclaration": 4291, + "src": "1359:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1873,29 +1873,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1351:14:9", + "src": "1351:14:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1960, + "id": 4361, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1957, + "id": 4358, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1366:3:9", + "referencedDeclaration": 5397, + "src": "1366:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1958, + "id": 4359, "isConstant": false, "isLValue": false, "isPure": false, @@ -1903,7 +1903,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1366:10:9", + "src": "1366:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1914,7 +1914,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1351:26:9", + "src": "1351:26:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1927,12 +1927,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1968, + "id": 4369, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1411:6:9", + "referencedDeclaration": 4295, + "src": "1411:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1952,26 +1952,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1961, + "id": 4362, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1380:7:9", + "referencedDeclaration": 5149, + "src": "1380:7:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1963, + "id": 4364, "indexExpression": { "argumentTypes": null, - "id": 1962, + "id": 4363, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1388:5:9", + "referencedDeclaration": 4291, + "src": "1388:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1982,29 +1982,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1380:14:9", + "src": "1380:14:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1966, + "id": 4367, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1964, + "id": 4365, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1395:3:9", + "referencedDeclaration": 5397, + "src": "1395:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1965, + "id": 4366, "isConstant": false, "isLValue": false, "isPure": false, @@ -2012,7 +2012,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1395:10:9", + "src": "1395:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2023,27 +2023,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1380:26:9", + "src": "1380:26:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1967, + "id": 4368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1380:30:9", + "referencedDeclaration": 4713, + "src": "1380:30:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1969, + "id": 4370, "isConstant": false, "isLValue": false, "isPure": false, @@ -2051,34 +2051,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1380:38:9", + "src": "1380:38:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1351:67:9", + "src": "1351:67:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1971, + "id": 4372, "nodeType": "ExpressionStatement", - "src": "1351:67:9" + "src": "1351:67:35" }, { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1973, + "id": 4374, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1433:5:9", + "referencedDeclaration": 4291, + "src": "1438:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2086,12 +2086,12 @@ }, { "argumentTypes": null, - "id": 1974, + "id": 4375, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1440:3:9", + "referencedDeclaration": 4293, + "src": "1445:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2099,12 +2099,12 @@ }, { "argumentTypes": null, - "id": 1975, + "id": 4376, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1445:6:9", + "referencedDeclaration": 4295, + "src": "1450:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2126,18 +2126,18 @@ "typeString": "uint256" } ], - "id": 1972, + "id": 4373, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "1424:8:9", + "referencedDeclaration": 5028, + "src": "1429:8:35", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1976, + "id": 4377, "isConstant": false, "isLValue": false, "isPure": false, @@ -2145,28 +2145,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1424:28:9", + "src": "1429:28:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1977, - "nodeType": "ExpressionStatement", - "src": "1424:28:9" + "id": 4378, + "nodeType": "EmitStatement", + "src": "1424:33:35" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1978, + "id": 4379, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1465:4:9", + "src": "1470:4:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2174,15 +2174,15 @@ }, "value": "true" }, - "functionReturnParameters": 1898, - "id": 1979, + "functionReturnParameters": 4299, + "id": 4380, "nodeType": "Return", - "src": "1458:11:9" + "src": "1463:11:35" } ] }, "documentation": "@dev Transfer tokens from one address to another with a fee component\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", - "id": 1981, + "id": 4382, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2190,16 +2190,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1895, + "id": 4296, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1890, + "id": 4291, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "998:13:9", + "scope": 4382, + "src": "998:13:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2207,10 +2207,10 @@ "typeString": "address" }, "typeName": { - "id": 1889, + "id": 4290, "name": "address", "nodeType": "ElementaryTypeName", - "src": "998:7:9", + "src": "998:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2221,11 +2221,11 @@ }, { "constant": false, - "id": 1892, + "id": 4293, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1013:11:9", + "scope": 4382, + "src": "1013:11:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2233,10 +2233,10 @@ "typeString": "address" }, "typeName": { - "id": 1891, + "id": 4292, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1013:7:9", + "src": "1013:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2247,11 +2247,11 @@ }, { "constant": false, - "id": 1894, + "id": 4295, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1026:14:9", + "scope": 4382, + "src": "1026:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2259,10 +2259,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1893, + "id": 4294, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1026:7:9", + "src": "1026:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2272,20 +2272,20 @@ "visibility": "internal" } ], - "src": "997:44:9" + "src": "997:44:35" }, "payable": false, "returnParameters": { - "id": 1898, + "id": 4299, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1897, + "id": 4298, "name": "", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1058:4:9", + "scope": 4382, + "src": "1058:4:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2293,10 +2293,10 @@ "typeString": "bool" }, "typeName": { - "id": 1896, + "id": 4297, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1058:4:9", + "src": "1058:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2306,19 +2306,19 @@ "visibility": "internal" } ], - "src": "1057:6:9" + "src": "1057:6:35" }, - "scope": 2061, - "src": "976:498:9", + "scope": 4462, + "src": "976:503:35", "stateMutability": "nonpayable", - "superFunction": 2652, + "superFunction": 5235, "visibility": "public" }, { "body": { - "id": 2047, + "id": 4448, "nodeType": "Block", - "src": "1738:367:9", + "src": "1743:372:35", "statements": [ { "expression": { @@ -2330,19 +2330,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1995, + "id": 4396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1991, + "id": 4392, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "1752:3:9", + "referencedDeclaration": 4384, + "src": "1757:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2356,14 +2356,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1993, + "id": 4394, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1767:1:9", + "src": "1772:1:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2379,20 +2379,20 @@ "typeString": "int_const 0" } ], - "id": 1992, + "id": 4393, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1759:7:9", + "src": "1764:7:35", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1994, + "id": 4395, "isConstant": false, "isLValue": false, "isPure": true, @@ -2400,13 +2400,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1759:10:9", + "src": "1764:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1752:17:9", + "src": "1757:17:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2420,21 +2420,21 @@ "typeString": "bool" } ], - "id": 1990, + "id": 4391, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1744:7:9", + "referencedDeclaration": 5400, + "src": "1749:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1996, + "id": 4397, "isConstant": false, "isLValue": false, "isPure": false, @@ -2442,15 +2442,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1744:26:9", + "src": "1749:26:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1997, + "id": 4398, "nodeType": "ExpressionStatement", - "src": "1744:26:9" + "src": "1749:26:35" }, { "expression": { @@ -2462,19 +2462,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2004, + "id": 4405, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1999, + "id": 4400, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "1784:6:9", + "referencedDeclaration": 4386, + "src": "1789:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2486,34 +2486,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2000, + "id": 4401, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1794:8:9", + "referencedDeclaration": 4837, + "src": "1799:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2003, + "id": 4404, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2001, + "id": 4402, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1803:3:9", + "referencedDeclaration": 5397, + "src": "1808:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2002, + "id": 4403, "isConstant": false, "isLValue": false, "isPure": false, @@ -2521,7 +2521,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1803:10:9", + "src": "1808:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2532,13 +2532,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1794:20:9", + "src": "1799:20:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1784:30:9", + "src": "1789:30:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2552,21 +2552,21 @@ "typeString": "bool" } ], - "id": 1998, + "id": 4399, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1776:7:9", + "referencedDeclaration": 5400, + "src": "1781:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2005, + "id": 4406, "isConstant": false, "isLValue": false, "isPure": false, @@ -2574,28 +2574,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1776:39:9", + "src": "1781:39:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2006, + "id": 4407, "nodeType": "ExpressionStatement", - "src": "1776:39:9" + "src": "1781:39:35" }, { "assignments": [ - 2008 + 4409 ], "declarations": [ { "constant": false, - "id": 2008, + "id": 4409, "name": "netValuePlusFee", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1822:23:9", + "scope": 4449, + "src": "1827:23:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2603,10 +2603,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2007, + "id": 4408, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1822:7:9", + "src": "1827:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2616,18 +2616,18 @@ "visibility": "internal" } ], - "id": 2013, + "id": 4414, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2011, + "id": 4412, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "1859:3:9", + "referencedDeclaration": 4253, + "src": "1864:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2643,32 +2643,32 @@ ], "expression": { "argumentTypes": null, - "id": 2009, + "id": 4410, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "1848:6:9", + "referencedDeclaration": 4386, + "src": "1853:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2010, + "id": 4411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1848:10:9", + "referencedDeclaration": 4737, + "src": "1853:10:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2012, + "id": 4413, "isConstant": false, "isLValue": false, "isPure": false, @@ -2676,19 +2676,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1848:15:9", + "src": "1853:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1822:41:9" + "src": "1827:41:35" }, { "expression": { "argumentTypes": null, - "id": 2025, + "id": 4426, "isConstant": false, "isLValue": false, "isPure": false, @@ -2697,34 +2697,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2014, + "id": 4415, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1933:8:9", + "referencedDeclaration": 4837, + "src": "1938:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2017, + "id": 4418, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2015, + "id": 4416, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1942:3:9", + "referencedDeclaration": 5397, + "src": "1947:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2016, + "id": 4417, "isConstant": false, "isLValue": false, "isPure": false, @@ -2732,7 +2732,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1942:10:9", + "src": "1947:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2743,7 +2743,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1933:20:9", + "src": "1938:20:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2756,12 +2756,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2023, + "id": 4424, "name": "netValuePlusFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2008, - "src": "1981:15:9", + "referencedDeclaration": 4409, + "src": "1986:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2779,34 +2779,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2018, + "id": 4419, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1956:8:9", + "referencedDeclaration": 4837, + "src": "1961:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2021, + "id": 4422, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2019, + "id": 4420, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1965:3:9", + "referencedDeclaration": 5397, + "src": "1970:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2020, + "id": 4421, "isConstant": false, "isLValue": false, "isPure": false, @@ -2814,7 +2814,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1965:10:9", + "src": "1970:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2825,27 +2825,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1956:20:9", + "src": "1961:20:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2022, + "id": 4423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1956:24:9", + "referencedDeclaration": 4713, + "src": "1961:24:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2024, + "id": 4425, "isConstant": false, "isLValue": false, "isPure": false, @@ -2853,26 +2853,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1956:41:9", + "src": "1961:41:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1933:64:9", + "src": "1938:64:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2026, + "id": 4427, "nodeType": "ExpressionStatement", - "src": "1933:64:9" + "src": "1938:64:35" }, { "expression": { "argumentTypes": null, - "id": 2036, + "id": 4437, "isConstant": false, "isLValue": false, "isPure": false, @@ -2881,26 +2881,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2027, + "id": 4428, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2003:8:9", + "referencedDeclaration": 4837, + "src": "2008:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2029, + "id": 4430, "indexExpression": { "argumentTypes": null, - "id": 2028, + "id": 4429, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "2012:3:9", + "referencedDeclaration": 4384, + "src": "2017:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2911,7 +2911,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2003:13:9", + "src": "2008:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2924,12 +2924,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2034, + "id": 4435, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "2037:6:9", + "referencedDeclaration": 4386, + "src": "2042:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2947,26 +2947,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2030, + "id": 4431, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2019:8:9", + "referencedDeclaration": 4837, + "src": "2024:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2032, + "id": 4433, "indexExpression": { "argumentTypes": null, - "id": 2031, + "id": 4432, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "2028:3:9", + "referencedDeclaration": 4384, + "src": "2033:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2977,27 +2977,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2019:13:9", + "src": "2024:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2033, + "id": 4434, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "2019:17:9", + "referencedDeclaration": 4737, + "src": "2024:17:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2035, + "id": 4436, "isConstant": false, "isLValue": false, "isPure": false, @@ -3005,42 +3005,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2019:25:9", + "src": "2024:25:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2003:41:9", + "src": "2008:41:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2037, + "id": 4438, "nodeType": "ExpressionStatement", - "src": "2003:41:9" + "src": "2008:41:35" }, { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2039, + "id": 4440, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "2059:3:9", + "referencedDeclaration": 5397, + "src": "2069:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2040, + "id": 4441, "isConstant": false, "isLValue": false, "isPure": false, @@ -3048,7 +3048,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2059:10:9", + "src": "2069:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3056,12 +3056,12 @@ }, { "argumentTypes": null, - "id": 2041, + "id": 4442, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "2071:3:9", + "referencedDeclaration": 4384, + "src": "2081:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3069,12 +3069,12 @@ }, { "argumentTypes": null, - "id": 2042, + "id": 4443, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "2076:6:9", + "referencedDeclaration": 4386, + "src": "2086:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3096,18 +3096,18 @@ "typeString": "uint256" } ], - "id": 2038, + "id": 4439, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "2050:8:9", + "referencedDeclaration": 5028, + "src": "2060:8:35", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2043, + "id": 4444, "isConstant": false, "isLValue": false, "isPure": false, @@ -3115,28 +3115,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2050:33:9", + "src": "2060:33:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2044, - "nodeType": "ExpressionStatement", - "src": "2050:33:9" + "id": 4445, + "nodeType": "EmitStatement", + "src": "2055:38:35" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2045, + "id": 4446, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2096:4:9", + "src": "2106:4:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3144,15 +3144,15 @@ }, "value": "true" }, - "functionReturnParameters": 1989, - "id": 2046, + "functionReturnParameters": 4390, + "id": 4447, "nodeType": "Return", - "src": "2089:11:9" + "src": "2099:11:35" } ] }, "documentation": "@dev transfer token for a specified address with a fee component applied to the send\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", - "id": 2048, + "id": 4449, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3160,16 +3160,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1986, + "id": 4387, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1983, + "id": 4384, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1687:11:9", + "scope": 4449, + "src": "1692:11:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3177,10 +3177,10 @@ "typeString": "address" }, "typeName": { - "id": 1982, + "id": 4383, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:9", + "src": "1692:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3191,11 +3191,11 @@ }, { "constant": false, - "id": 1985, + "id": 4386, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1700:14:9", + "scope": 4449, + "src": "1705:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3203,10 +3203,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1984, + "id": 4385, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1700:7:9", + "src": "1705:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3216,20 +3216,20 @@ "visibility": "internal" } ], - "src": "1686:29:9" + "src": "1691:29:35" }, "payable": false, "returnParameters": { - "id": 1989, + "id": 4390, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1988, + "id": 4389, "name": "", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1732:4:9", + "scope": 4449, + "src": "1737:4:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3237,10 +3237,10 @@ "typeString": "bool" }, "typeName": { - "id": 1987, + "id": 4388, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1732:4:9", + "src": "1737:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3250,36 +3250,36 @@ "visibility": "internal" } ], - "src": "1731:6:9" + "src": "1736:6:35" }, - "scope": 2061, - "src": "1669:436:9", + "scope": 4462, + "src": "1674:441:35", "stateMutability": "nonpayable", - "superFunction": 2324, + "superFunction": 4907, "visibility": "public" }, { "body": { - "id": 2059, + "id": 4460, "nodeType": "Block", - "src": "2161:21:9", + "src": "2171:21:35", "statements": [ { "expression": { "argumentTypes": null, - "id": 2057, + "id": 4458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2055, + "id": 4456, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "2167:3:9", + "referencedDeclaration": 4253, + "src": "2177:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3289,31 +3289,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2056, + "id": 4457, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "2173:4:9", + "referencedDeclaration": 4451, + "src": "2183:4:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2167:10:9", + "src": "2177:10:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2058, + "id": 4459, "nodeType": "ExpressionStatement", - "src": "2167:10:9" + "src": "2177:10:35" } ] }, "documentation": null, - "id": 2060, + "id": 4461, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3321,16 +3321,16 @@ "name": "setFee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2051, + "id": 4452, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2050, + "id": 4451, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 2060, - "src": "2125:12:9", + "scope": 4461, + "src": "2135:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3338,10 +3338,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2049, + "id": 4450, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2125:7:9", + "src": "2135:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3351,20 +3351,20 @@ "visibility": "internal" } ], - "src": "2124:14:9" + "src": "2134:14:35" }, "payable": false, "returnParameters": { - "id": 2054, + "id": 4455, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2053, + "id": 4454, "name": "", "nodeType": "VariableDeclaration", - "scope": 2060, - "src": "2155:4:9", + "scope": 4461, + "src": "2165:4:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3372,10 +3372,10 @@ "typeString": "bool" }, "typeName": { - "id": 2052, + "id": 4453, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2155:4:9", + "src": "2165:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3385,60 +3385,60 @@ "visibility": "internal" } ], - "src": "2154:6:9" + "src": "2164:6:35" }, - "scope": 2061, - "src": "2109:73:9", + "scope": 4462, + "src": "2119:73:35", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2062, - "src": "183:2001:9" + "scope": 4463, + "src": "183:2011:35" } ], - "src": "0:2185:9" + "src": "0:2195:35" }, "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/StandardTokenWithFeeMock.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/StandardTokenWithFeeMock.sol", "exportedSymbols": { "StandardTokenWithFeeMock": [ - 2061 + 4462 ] }, - "id": 2062, + "id": 4463, "nodeType": "SourceUnit", "nodes": [ { - "id": 1834, + "id": 4235, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:9" + "src": "0:23:35" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", - "id": 1835, + "id": 4236, "nodeType": "ImportDirective", - "scope": 2062, - "sourceUnit": 2800, - "src": "26:67:9", + "scope": 4463, + "sourceUnit": 5383, + "src": "26:67:35", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "zeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1836, + "id": 4237, "nodeType": "ImportDirective", - "scope": 2062, - "sourceUnit": 2156, - "src": "94:55:9", + "scope": 4463, + "sourceUnit": 4739, + "src": "94:55:35", "symbolAliases": [], "unitAlias": "" }, @@ -3448,62 +3448,62 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1837, + "id": 4238, "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "220:13:9", + "referencedDeclaration": 5382, + "src": "220:13:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", + "typeIdentifier": "t_contract$_StandardToken_$5382", "typeString": "contract StandardToken" } }, - "id": 1838, + "id": 4239, "nodeType": "InheritanceSpecifier", - "src": "220:13:9" + "src": "220:13:35" } ], "contractDependencies": [ - 2337, - 2414, - 2446, - 2799 + 4920, + 4997, + 5029, + 5382 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 2061, + "id": 4462, "linearizedBaseContracts": [ - 2061, - 2799, - 2337, - 2414, - 2446 + 4462, + 5382, + 4920, + 4997, + 5029 ], "name": "StandardTokenWithFeeMock", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1841, + "id": 4242, "libraryName": { "contractScope": null, - "id": 1839, + "id": 4240, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "244:8:9", + "referencedDeclaration": 4738, + "src": "244:8:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", + "typeIdentifier": "t_contract$_SafeMath_$4738", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "238:27:9", + "src": "238:27:35", "typeName": { - "id": 1840, + "id": 4241, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "257:7:9", + "src": "257:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3512,11 +3512,11 @@ }, { "constant": false, - "id": 1844, + "id": 4245, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "269:28:9", + "scope": 4462, + "src": "269:28:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3524,10 +3524,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1842, + "id": 4243, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "269:7:9", + "src": "269:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3536,14 +3536,14 @@ "value": { "argumentTypes": null, "hexValue": "3138", - "id": 1843, + "id": 4244, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "295:2:9", + "src": "295:2:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -3555,11 +3555,11 @@ }, { "constant": false, - "id": 1846, + "id": 4247, "name": "name", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "301:18:9", + "scope": 4462, + "src": "301:18:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3567,10 +3567,10 @@ "typeString": "string" }, "typeName": { - "id": 1845, + "id": 4246, "name": "string", "nodeType": "ElementaryTypeName", - "src": "301:6:9", + "src": "301:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3581,11 +3581,11 @@ }, { "constant": false, - "id": 1848, + "id": 4249, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "323:20:9", + "scope": 4462, + "src": "323:20:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3593,10 +3593,10 @@ "typeString": "string" }, "typeName": { - "id": 1847, + "id": 4248, "name": "string", "nodeType": "ElementaryTypeName", - "src": "323:6:9", + "src": "323:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3607,11 +3607,11 @@ }, { "constant": false, - "id": 1850, + "id": 4251, "name": "totalSupply", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "347:26:9", + "scope": 4462, + "src": "347:26:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3619,10 +3619,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1849, + "id": 4250, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "347:7:9", + "src": "347:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3633,11 +3633,11 @@ }, { "constant": false, - "id": 1852, + "id": 4253, "name": "fee", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "377:18:9", + "scope": 4462, + "src": "377:18:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3645,10 +3645,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1851, + "id": 4252, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "377:7:9", + "src": "377:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3659,14 +3659,14 @@ }, { "body": { - "id": 1887, + "id": 4288, "nodeType": "Block", - "src": "538:142:9", + "src": "538:142:35", "statements": [ { "expression": { "argumentTypes": null, - "id": 1869, + "id": 4270, "isConstant": false, "isLValue": false, "isPure": false, @@ -3675,26 +3675,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1865, + "id": 4266, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "544:8:9", + "referencedDeclaration": 4837, + "src": "544:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1867, + "id": 4268, "indexExpression": { "argumentTypes": null, - "id": 1866, + "id": 4267, "name": "initialAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1854, - "src": "553:14:9", + "referencedDeclaration": 4255, + "src": "553:14:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3705,7 +3705,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "544:24:9", + "src": "544:24:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3715,45 +3715,45 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1868, + "id": 4269, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1856, - "src": "571:14:9", + "referencedDeclaration": 4257, + "src": "571:14:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "544:41:9", + "src": "544:41:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1870, + "id": 4271, "nodeType": "ExpressionStatement", - "src": "544:41:9" + "src": "544:41:35" }, { "expression": { "argumentTypes": null, - "id": 1873, + "id": 4274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1871, + "id": 4272, "name": "totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [ - 1850 + 4251 ], - "referencedDeclaration": 1850, - "src": "591:11:9", + "referencedDeclaration": 4251, + "src": "591:11:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3763,43 +3763,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1872, + "id": 4273, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1856, - "src": "605:14:9", + "referencedDeclaration": 4257, + "src": "605:14:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "591:28:9", + "src": "591:28:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1874, + "id": 4275, "nodeType": "ExpressionStatement", - "src": "591:28:9" + "src": "591:28:35" }, { "expression": { "argumentTypes": null, - "id": 1877, + "id": 4278, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1875, + "id": 4276, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1846, - "src": "625:4:9", + "referencedDeclaration": 4247, + "src": "625:4:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3809,43 +3809,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1876, + "id": 4277, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, - "src": "632:5:9", + "referencedDeclaration": 4259, + "src": "632:5:35", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "625:12:9", + "src": "625:12:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1878, + "id": 4279, "nodeType": "ExpressionStatement", - "src": "625:12:9" + "src": "625:12:35" }, { "expression": { "argumentTypes": null, - "id": 1881, + "id": 4282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1879, + "id": 4280, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1848, - "src": "643:6:9", + "referencedDeclaration": 4249, + "src": "643:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3855,43 +3855,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1880, + "id": 4281, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1860, - "src": "652:7:9", + "referencedDeclaration": 4261, + "src": "652:7:35", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "643:16:9", + "src": "643:16:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1882, + "id": 4283, "nodeType": "ExpressionStatement", - "src": "643:16:9" + "src": "643:16:35" }, { "expression": { "argumentTypes": null, - "id": 1885, + "id": 4286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1883, + "id": 4284, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "665:3:9", + "referencedDeclaration": 4253, + "src": "665:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3901,31 +3901,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1884, + "id": 4285, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1862, - "src": "671:4:9", + "referencedDeclaration": 4263, + "src": "671:4:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "665:10:9", + "src": "665:10:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1886, + "id": 4287, "nodeType": "ExpressionStatement", - "src": "665:10:9" + "src": "665:10:35" } ] }, "documentation": null, - "id": 1888, + "id": 4289, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -3933,16 +3933,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1863, + "id": 4264, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1854, + "id": 4255, "name": "initialAccount", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "417:22:9", + "scope": 4289, + "src": "417:22:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3950,10 +3950,10 @@ "typeString": "address" }, "typeName": { - "id": 1853, + "id": 4254, "name": "address", "nodeType": "ElementaryTypeName", - "src": "417:7:9", + "src": "417:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3964,11 +3964,11 @@ }, { "constant": false, - "id": 1856, + "id": 4257, "name": "initialBalance", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "445:22:9", + "scope": 4289, + "src": "445:22:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3976,10 +3976,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1855, + "id": 4256, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "445:7:9", + "src": "445:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3990,11 +3990,11 @@ }, { "constant": false, - "id": 1858, + "id": 4259, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "473:12:9", + "scope": 4289, + "src": "473:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4002,10 +4002,10 @@ "typeString": "string" }, "typeName": { - "id": 1857, + "id": 4258, "name": "string", "nodeType": "ElementaryTypeName", - "src": "473:6:9", + "src": "473:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4016,11 +4016,11 @@ }, { "constant": false, - "id": 1860, + "id": 4261, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "491:14:9", + "scope": 4289, + "src": "491:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4028,10 +4028,10 @@ "typeString": "string" }, "typeName": { - "id": 1859, + "id": 4260, "name": "string", "nodeType": "ElementaryTypeName", - "src": "491:6:9", + "src": "491:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4042,11 +4042,11 @@ }, { "constant": false, - "id": 1862, + "id": 4263, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "511:12:9", + "scope": 4289, + "src": "511:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4054,10 +4054,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1861, + "id": 4262, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "511:7:9", + "src": "511:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4067,26 +4067,26 @@ "visibility": "internal" } ], - "src": "411:113:9" + "src": "411:113:35" }, "payable": false, "returnParameters": { - "id": 1864, + "id": 4265, "nodeType": "ParameterList", "parameters": [], - "src": "538:0:9" + "src": "538:0:35" }, - "scope": 2061, - "src": "400:280:9", + "scope": 4462, + "src": "400:280:35", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1980, + "id": 4381, "nodeType": "Block", - "src": "1064:410:9", + "src": "1064:415:35", "statements": [ { "expression": { @@ -4098,19 +4098,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1904, + "id": 4305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1900, + "id": 4301, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1078:3:9", + "referencedDeclaration": 4293, + "src": "1078:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4124,14 +4124,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1902, + "id": 4303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1093:1:9", + "src": "1093:1:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4147,20 +4147,20 @@ "typeString": "int_const 0" } ], - "id": 1901, + "id": 4302, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1085:7:9", + "src": "1085:7:35", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1903, + "id": 4304, "isConstant": false, "isLValue": false, "isPure": true, @@ -4168,13 +4168,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1085:10:9", + "src": "1085:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1078:17:9", + "src": "1078:17:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4188,21 +4188,21 @@ "typeString": "bool" } ], - "id": 1899, + "id": 4300, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1070:7:9", + "referencedDeclaration": 5400, + "src": "1070:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1905, + "id": 4306, "isConstant": false, "isLValue": false, "isPure": false, @@ -4210,15 +4210,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1070:26:9", + "src": "1070:26:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1906, + "id": 4307, "nodeType": "ExpressionStatement", - "src": "1070:26:9" + "src": "1070:26:35" }, { "expression": { @@ -4230,19 +4230,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1912, + "id": 4313, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1908, + "id": 4309, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1110:6:9", + "referencedDeclaration": 4295, + "src": "1110:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4254,26 +4254,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1909, + "id": 4310, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1120:8:9", + "referencedDeclaration": 4837, + "src": "1120:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1911, + "id": 4312, "indexExpression": { "argumentTypes": null, - "id": 1910, + "id": 4311, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1129:5:9", + "referencedDeclaration": 4291, + "src": "1129:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4284,13 +4284,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1120:15:9", + "src": "1120:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1110:25:9", + "src": "1110:25:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4304,21 +4304,21 @@ "typeString": "bool" } ], - "id": 1907, + "id": 4308, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1102:7:9", + "referencedDeclaration": 5400, + "src": "1102:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1913, + "id": 4314, "isConstant": false, "isLValue": false, "isPure": false, @@ -4326,15 +4326,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1102:34:9", + "src": "1102:34:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1914, + "id": 4315, "nodeType": "ExpressionStatement", - "src": "1102:34:9" + "src": "1102:34:35" }, { "expression": { @@ -4346,19 +4346,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1923, + "id": 4324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1916, + "id": 4317, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1150:6:9", + "referencedDeclaration": 4295, + "src": "1150:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4372,26 +4372,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1917, + "id": 4318, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1160:7:9", + "referencedDeclaration": 5149, + "src": "1160:7:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1919, + "id": 4320, "indexExpression": { "argumentTypes": null, - "id": 1918, + "id": 4319, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1168:5:9", + "referencedDeclaration": 4291, + "src": "1168:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4402,29 +4402,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1160:14:9", + "src": "1160:14:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1922, + "id": 4323, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1920, + "id": 4321, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1175:3:9", + "referencedDeclaration": 5397, + "src": "1175:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1921, + "id": 4322, "isConstant": false, "isLValue": false, "isPure": false, @@ -4432,7 +4432,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1175:10:9", + "src": "1175:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4443,13 +4443,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1160:26:9", + "src": "1160:26:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1150:36:9", + "src": "1150:36:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4463,21 +4463,21 @@ "typeString": "bool" } ], - "id": 1915, + "id": 4316, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1142:7:9", + "referencedDeclaration": 5400, + "src": "1142:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1924, + "id": 4325, "isConstant": false, "isLValue": false, "isPure": false, @@ -4485,28 +4485,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1142:45:9", + "src": "1142:45:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1925, + "id": 4326, "nodeType": "ExpressionStatement", - "src": "1142:45:9" + "src": "1142:45:35" }, { "assignments": [ - 1927 + 4328 ], "declarations": [ { "constant": false, - "id": 1927, + "id": 4328, "name": "netValueMinusFee", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1194:24:9", + "scope": 4382, + "src": "1194:24:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4514,10 +4514,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1926, + "id": 4327, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1194:7:9", + "src": "1194:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4527,18 +4527,18 @@ "visibility": "internal" } ], - "id": 1932, + "id": 4333, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1930, + "id": 4331, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "1232:3:9", + "referencedDeclaration": 4253, + "src": "1232:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4554,32 +4554,32 @@ ], "expression": { "argumentTypes": null, - "id": 1928, + "id": 4329, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1221:6:9", + "referencedDeclaration": 4295, + "src": "1221:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1929, + "id": 4330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1221:10:9", + "referencedDeclaration": 4713, + "src": "1221:10:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1931, + "id": 4332, "isConstant": false, "isLValue": false, "isPure": false, @@ -4587,19 +4587,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1221:15:9", + "src": "1221:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1194:42:9" + "src": "1194:42:35" }, { "expression": { "argumentTypes": null, - "id": 1942, + "id": 4343, "isConstant": false, "isLValue": false, "isPure": false, @@ -4608,26 +4608,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1933, + "id": 4334, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1243:8:9", + "referencedDeclaration": 4837, + "src": "1243:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1935, + "id": 4336, "indexExpression": { "argumentTypes": null, - "id": 1934, + "id": 4335, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1252:5:9", + "referencedDeclaration": 4291, + "src": "1252:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4638,7 +4638,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1243:15:9", + "src": "1243:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4651,12 +4651,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1940, + "id": 4341, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1281:6:9", + "referencedDeclaration": 4295, + "src": "1281:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4674,26 +4674,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1936, + "id": 4337, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1261:8:9", + "referencedDeclaration": 4837, + "src": "1261:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1938, + "id": 4339, "indexExpression": { "argumentTypes": null, - "id": 1937, + "id": 4338, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1270:5:9", + "referencedDeclaration": 4291, + "src": "1270:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4704,27 +4704,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1261:15:9", + "src": "1261:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1939, + "id": 4340, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1261:19:9", + "referencedDeclaration": 4713, + "src": "1261:19:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1941, + "id": 4342, "isConstant": false, "isLValue": false, "isPure": false, @@ -4732,26 +4732,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1261:27:9", + "src": "1261:27:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1243:45:9", + "src": "1243:45:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1943, + "id": 4344, "nodeType": "ExpressionStatement", - "src": "1243:45:9" + "src": "1243:45:35" }, { "expression": { "argumentTypes": null, - "id": 1953, + "id": 4354, "isConstant": false, "isLValue": false, "isPure": false, @@ -4760,26 +4760,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1944, + "id": 4345, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1294:8:9", + "referencedDeclaration": 4837, + "src": "1294:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1946, + "id": 4347, "indexExpression": { "argumentTypes": null, - "id": 1945, + "id": 4346, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1303:3:9", + "referencedDeclaration": 4293, + "src": "1303:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4790,7 +4790,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1294:13:9", + "src": "1294:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4803,12 +4803,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1951, + "id": 4352, "name": "netValueMinusFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1927, - "src": "1328:16:9", + "referencedDeclaration": 4328, + "src": "1328:16:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4826,26 +4826,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1947, + "id": 4348, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1310:8:9", + "referencedDeclaration": 4837, + "src": "1310:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1949, + "id": 4350, "indexExpression": { "argumentTypes": null, - "id": 1948, + "id": 4349, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1319:3:9", + "referencedDeclaration": 4293, + "src": "1319:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4856,27 +4856,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1310:13:9", + "src": "1310:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1950, + "id": 4351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1310:17:9", + "referencedDeclaration": 4737, + "src": "1310:17:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1952, + "id": 4353, "isConstant": false, "isLValue": false, "isPure": false, @@ -4884,26 +4884,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1310:35:9", + "src": "1310:35:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1294:51:9", + "src": "1294:51:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1954, + "id": 4355, "nodeType": "ExpressionStatement", - "src": "1294:51:9" + "src": "1294:51:35" }, { "expression": { "argumentTypes": null, - "id": 1970, + "id": 4371, "isConstant": false, "isLValue": false, "isPure": false, @@ -4914,26 +4914,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1955, + "id": 4356, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1351:7:9", + "referencedDeclaration": 5149, + "src": "1351:7:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1959, + "id": 4360, "indexExpression": { "argumentTypes": null, - "id": 1956, + "id": 4357, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1359:5:9", + "referencedDeclaration": 4291, + "src": "1359:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4944,29 +4944,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1351:14:9", + "src": "1351:14:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1960, + "id": 4361, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1957, + "id": 4358, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1366:3:9", + "referencedDeclaration": 5397, + "src": "1366:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1958, + "id": 4359, "isConstant": false, "isLValue": false, "isPure": false, @@ -4974,7 +4974,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1366:10:9", + "src": "1366:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4985,7 +4985,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1351:26:9", + "src": "1351:26:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4998,12 +4998,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1968, + "id": 4369, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1411:6:9", + "referencedDeclaration": 4295, + "src": "1411:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5023,26 +5023,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1961, + "id": 4362, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1380:7:9", + "referencedDeclaration": 5149, + "src": "1380:7:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1963, + "id": 4364, "indexExpression": { "argumentTypes": null, - "id": 1962, + "id": 4363, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1388:5:9", + "referencedDeclaration": 4291, + "src": "1388:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5053,29 +5053,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1380:14:9", + "src": "1380:14:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1966, + "id": 4367, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1964, + "id": 4365, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1395:3:9", + "referencedDeclaration": 5397, + "src": "1395:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1965, + "id": 4366, "isConstant": false, "isLValue": false, "isPure": false, @@ -5083,7 +5083,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1395:10:9", + "src": "1395:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5094,27 +5094,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1380:26:9", + "src": "1380:26:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1967, + "id": 4368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1380:30:9", + "referencedDeclaration": 4713, + "src": "1380:30:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1969, + "id": 4370, "isConstant": false, "isLValue": false, "isPure": false, @@ -5122,34 +5122,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1380:38:9", + "src": "1380:38:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1351:67:9", + "src": "1351:67:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1971, + "id": 4372, "nodeType": "ExpressionStatement", - "src": "1351:67:9" + "src": "1351:67:35" }, { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1973, + "id": 4374, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1433:5:9", + "referencedDeclaration": 4291, + "src": "1438:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5157,12 +5157,12 @@ }, { "argumentTypes": null, - "id": 1974, + "id": 4375, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1440:3:9", + "referencedDeclaration": 4293, + "src": "1445:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5170,12 +5170,12 @@ }, { "argumentTypes": null, - "id": 1975, + "id": 4376, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1445:6:9", + "referencedDeclaration": 4295, + "src": "1450:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5197,18 +5197,18 @@ "typeString": "uint256" } ], - "id": 1972, + "id": 4373, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "1424:8:9", + "referencedDeclaration": 5028, + "src": "1429:8:35", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1976, + "id": 4377, "isConstant": false, "isLValue": false, "isPure": false, @@ -5216,28 +5216,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1424:28:9", + "src": "1429:28:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1977, - "nodeType": "ExpressionStatement", - "src": "1424:28:9" + "id": 4378, + "nodeType": "EmitStatement", + "src": "1424:33:35" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1978, + "id": 4379, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1465:4:9", + "src": "1470:4:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5245,15 +5245,15 @@ }, "value": "true" }, - "functionReturnParameters": 1898, - "id": 1979, + "functionReturnParameters": 4299, + "id": 4380, "nodeType": "Return", - "src": "1458:11:9" + "src": "1463:11:35" } ] }, "documentation": "@dev Transfer tokens from one address to another with a fee component\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", - "id": 1981, + "id": 4382, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5261,16 +5261,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1895, + "id": 4296, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1890, + "id": 4291, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "998:13:9", + "scope": 4382, + "src": "998:13:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5278,10 +5278,10 @@ "typeString": "address" }, "typeName": { - "id": 1889, + "id": 4290, "name": "address", "nodeType": "ElementaryTypeName", - "src": "998:7:9", + "src": "998:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5292,11 +5292,11 @@ }, { "constant": false, - "id": 1892, + "id": 4293, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1013:11:9", + "scope": 4382, + "src": "1013:11:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5304,10 +5304,10 @@ "typeString": "address" }, "typeName": { - "id": 1891, + "id": 4292, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1013:7:9", + "src": "1013:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5318,11 +5318,11 @@ }, { "constant": false, - "id": 1894, + "id": 4295, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1026:14:9", + "scope": 4382, + "src": "1026:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5330,10 +5330,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1893, + "id": 4294, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1026:7:9", + "src": "1026:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5343,20 +5343,20 @@ "visibility": "internal" } ], - "src": "997:44:9" + "src": "997:44:35" }, "payable": false, "returnParameters": { - "id": 1898, + "id": 4299, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1897, + "id": 4298, "name": "", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1058:4:9", + "scope": 4382, + "src": "1058:4:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5364,10 +5364,10 @@ "typeString": "bool" }, "typeName": { - "id": 1896, + "id": 4297, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1058:4:9", + "src": "1058:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5377,19 +5377,19 @@ "visibility": "internal" } ], - "src": "1057:6:9" + "src": "1057:6:35" }, - "scope": 2061, - "src": "976:498:9", + "scope": 4462, + "src": "976:503:35", "stateMutability": "nonpayable", - "superFunction": 2652, + "superFunction": 5235, "visibility": "public" }, { "body": { - "id": 2047, + "id": 4448, "nodeType": "Block", - "src": "1738:367:9", + "src": "1743:372:35", "statements": [ { "expression": { @@ -5401,19 +5401,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1995, + "id": 4396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1991, + "id": 4392, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "1752:3:9", + "referencedDeclaration": 4384, + "src": "1757:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5427,14 +5427,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1993, + "id": 4394, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1767:1:9", + "src": "1772:1:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5450,20 +5450,20 @@ "typeString": "int_const 0" } ], - "id": 1992, + "id": 4393, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1759:7:9", + "src": "1764:7:35", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1994, + "id": 4395, "isConstant": false, "isLValue": false, "isPure": true, @@ -5471,13 +5471,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1759:10:9", + "src": "1764:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1752:17:9", + "src": "1757:17:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5491,21 +5491,21 @@ "typeString": "bool" } ], - "id": 1990, + "id": 4391, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1744:7:9", + "referencedDeclaration": 5400, + "src": "1749:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1996, + "id": 4397, "isConstant": false, "isLValue": false, "isPure": false, @@ -5513,15 +5513,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1744:26:9", + "src": "1749:26:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1997, + "id": 4398, "nodeType": "ExpressionStatement", - "src": "1744:26:9" + "src": "1749:26:35" }, { "expression": { @@ -5533,19 +5533,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2004, + "id": 4405, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1999, + "id": 4400, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "1784:6:9", + "referencedDeclaration": 4386, + "src": "1789:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5557,34 +5557,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2000, + "id": 4401, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1794:8:9", + "referencedDeclaration": 4837, + "src": "1799:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2003, + "id": 4404, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2001, + "id": 4402, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1803:3:9", + "referencedDeclaration": 5397, + "src": "1808:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2002, + "id": 4403, "isConstant": false, "isLValue": false, "isPure": false, @@ -5592,7 +5592,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1803:10:9", + "src": "1808:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5603,13 +5603,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1794:20:9", + "src": "1799:20:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1784:30:9", + "src": "1789:30:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5623,21 +5623,21 @@ "typeString": "bool" } ], - "id": 1998, + "id": 4399, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1776:7:9", + "referencedDeclaration": 5400, + "src": "1781:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2005, + "id": 4406, "isConstant": false, "isLValue": false, "isPure": false, @@ -5645,28 +5645,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1776:39:9", + "src": "1781:39:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2006, + "id": 4407, "nodeType": "ExpressionStatement", - "src": "1776:39:9" + "src": "1781:39:35" }, { "assignments": [ - 2008 + 4409 ], "declarations": [ { "constant": false, - "id": 2008, + "id": 4409, "name": "netValuePlusFee", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1822:23:9", + "scope": 4449, + "src": "1827:23:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5674,10 +5674,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2007, + "id": 4408, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1822:7:9", + "src": "1827:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5687,18 +5687,18 @@ "visibility": "internal" } ], - "id": 2013, + "id": 4414, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2011, + "id": 4412, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "1859:3:9", + "referencedDeclaration": 4253, + "src": "1864:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5714,32 +5714,32 @@ ], "expression": { "argumentTypes": null, - "id": 2009, + "id": 4410, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "1848:6:9", + "referencedDeclaration": 4386, + "src": "1853:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2010, + "id": 4411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1848:10:9", + "referencedDeclaration": 4737, + "src": "1853:10:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2012, + "id": 4413, "isConstant": false, "isLValue": false, "isPure": false, @@ -5747,19 +5747,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1848:15:9", + "src": "1853:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1822:41:9" + "src": "1827:41:35" }, { "expression": { "argumentTypes": null, - "id": 2025, + "id": 4426, "isConstant": false, "isLValue": false, "isPure": false, @@ -5768,34 +5768,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2014, + "id": 4415, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1933:8:9", + "referencedDeclaration": 4837, + "src": "1938:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2017, + "id": 4418, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2015, + "id": 4416, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1942:3:9", + "referencedDeclaration": 5397, + "src": "1947:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2016, + "id": 4417, "isConstant": false, "isLValue": false, "isPure": false, @@ -5803,7 +5803,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1942:10:9", + "src": "1947:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5814,7 +5814,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1933:20:9", + "src": "1938:20:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5827,12 +5827,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2023, + "id": 4424, "name": "netValuePlusFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2008, - "src": "1981:15:9", + "referencedDeclaration": 4409, + "src": "1986:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5850,34 +5850,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2018, + "id": 4419, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1956:8:9", + "referencedDeclaration": 4837, + "src": "1961:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2021, + "id": 4422, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2019, + "id": 4420, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1965:3:9", + "referencedDeclaration": 5397, + "src": "1970:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2020, + "id": 4421, "isConstant": false, "isLValue": false, "isPure": false, @@ -5885,7 +5885,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1965:10:9", + "src": "1970:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5896,27 +5896,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1956:20:9", + "src": "1961:20:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2022, + "id": 4423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1956:24:9", + "referencedDeclaration": 4713, + "src": "1961:24:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2024, + "id": 4425, "isConstant": false, "isLValue": false, "isPure": false, @@ -5924,26 +5924,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1956:41:9", + "src": "1961:41:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1933:64:9", + "src": "1938:64:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2026, + "id": 4427, "nodeType": "ExpressionStatement", - "src": "1933:64:9" + "src": "1938:64:35" }, { "expression": { "argumentTypes": null, - "id": 2036, + "id": 4437, "isConstant": false, "isLValue": false, "isPure": false, @@ -5952,26 +5952,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2027, + "id": 4428, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2003:8:9", + "referencedDeclaration": 4837, + "src": "2008:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2029, + "id": 4430, "indexExpression": { "argumentTypes": null, - "id": 2028, + "id": 4429, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "2012:3:9", + "referencedDeclaration": 4384, + "src": "2017:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5982,7 +5982,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2003:13:9", + "src": "2008:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5995,12 +5995,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2034, + "id": 4435, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "2037:6:9", + "referencedDeclaration": 4386, + "src": "2042:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6018,26 +6018,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2030, + "id": 4431, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2019:8:9", + "referencedDeclaration": 4837, + "src": "2024:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2032, + "id": 4433, "indexExpression": { "argumentTypes": null, - "id": 2031, + "id": 4432, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "2028:3:9", + "referencedDeclaration": 4384, + "src": "2033:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6048,27 +6048,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2019:13:9", + "src": "2024:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2033, + "id": 4434, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "2019:17:9", + "referencedDeclaration": 4737, + "src": "2024:17:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2035, + "id": 4436, "isConstant": false, "isLValue": false, "isPure": false, @@ -6076,42 +6076,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2019:25:9", + "src": "2024:25:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2003:41:9", + "src": "2008:41:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2037, + "id": 4438, "nodeType": "ExpressionStatement", - "src": "2003:41:9" + "src": "2008:41:35" }, { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2039, + "id": 4440, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "2059:3:9", + "referencedDeclaration": 5397, + "src": "2069:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2040, + "id": 4441, "isConstant": false, "isLValue": false, "isPure": false, @@ -6119,7 +6119,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2059:10:9", + "src": "2069:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6127,12 +6127,12 @@ }, { "argumentTypes": null, - "id": 2041, + "id": 4442, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "2071:3:9", + "referencedDeclaration": 4384, + "src": "2081:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6140,12 +6140,12 @@ }, { "argumentTypes": null, - "id": 2042, + "id": 4443, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "2076:6:9", + "referencedDeclaration": 4386, + "src": "2086:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6167,18 +6167,18 @@ "typeString": "uint256" } ], - "id": 2038, + "id": 4439, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "2050:8:9", + "referencedDeclaration": 5028, + "src": "2060:8:35", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2043, + "id": 4444, "isConstant": false, "isLValue": false, "isPure": false, @@ -6186,28 +6186,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2050:33:9", + "src": "2060:33:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2044, - "nodeType": "ExpressionStatement", - "src": "2050:33:9" + "id": 4445, + "nodeType": "EmitStatement", + "src": "2055:38:35" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2045, + "id": 4446, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2096:4:9", + "src": "2106:4:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6215,15 +6215,15 @@ }, "value": "true" }, - "functionReturnParameters": 1989, - "id": 2046, + "functionReturnParameters": 4390, + "id": 4447, "nodeType": "Return", - "src": "2089:11:9" + "src": "2099:11:35" } ] }, "documentation": "@dev transfer token for a specified address with a fee component applied to the send\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", - "id": 2048, + "id": 4449, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6231,16 +6231,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1986, + "id": 4387, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1983, + "id": 4384, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1687:11:9", + "scope": 4449, + "src": "1692:11:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6248,10 +6248,10 @@ "typeString": "address" }, "typeName": { - "id": 1982, + "id": 4383, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:9", + "src": "1692:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6262,11 +6262,11 @@ }, { "constant": false, - "id": 1985, + "id": 4386, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1700:14:9", + "scope": 4449, + "src": "1705:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6274,10 +6274,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1984, + "id": 4385, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1700:7:9", + "src": "1705:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6287,20 +6287,20 @@ "visibility": "internal" } ], - "src": "1686:29:9" + "src": "1691:29:35" }, "payable": false, "returnParameters": { - "id": 1989, + "id": 4390, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1988, + "id": 4389, "name": "", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1732:4:9", + "scope": 4449, + "src": "1737:4:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6308,10 +6308,10 @@ "typeString": "bool" }, "typeName": { - "id": 1987, + "id": 4388, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1732:4:9", + "src": "1737:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6321,36 +6321,36 @@ "visibility": "internal" } ], - "src": "1731:6:9" + "src": "1736:6:35" }, - "scope": 2061, - "src": "1669:436:9", + "scope": 4462, + "src": "1674:441:35", "stateMutability": "nonpayable", - "superFunction": 2324, + "superFunction": 4907, "visibility": "public" }, { "body": { - "id": 2059, + "id": 4460, "nodeType": "Block", - "src": "2161:21:9", + "src": "2171:21:35", "statements": [ { "expression": { "argumentTypes": null, - "id": 2057, + "id": 4458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2055, + "id": 4456, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "2167:3:9", + "referencedDeclaration": 4253, + "src": "2177:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6360,31 +6360,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2056, + "id": 4457, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "2173:4:9", + "referencedDeclaration": 4451, + "src": "2183:4:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2167:10:9", + "src": "2177:10:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2058, + "id": 4459, "nodeType": "ExpressionStatement", - "src": "2167:10:9" + "src": "2177:10:35" } ] }, "documentation": null, - "id": 2060, + "id": 4461, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6392,16 +6392,16 @@ "name": "setFee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2051, + "id": 4452, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2050, + "id": 4451, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 2060, - "src": "2125:12:9", + "scope": 4461, + "src": "2135:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6409,10 +6409,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2049, + "id": 4450, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2125:7:9", + "src": "2135:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6422,20 +6422,20 @@ "visibility": "internal" } ], - "src": "2124:14:9" + "src": "2134:14:35" }, "payable": false, "returnParameters": { - "id": 2054, + "id": 4455, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2053, + "id": 4454, "name": "", "nodeType": "VariableDeclaration", - "scope": 2060, - "src": "2155:4:9", + "scope": 4461, + "src": "2165:4:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6443,10 +6443,10 @@ "typeString": "bool" }, "typeName": { - "id": 2052, + "id": 4453, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2155:4:9", + "src": "2165:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6456,26 +6456,26 @@ "visibility": "internal" } ], - "src": "2154:6:9" + "src": "2164:6:35" }, - "scope": 2061, - "src": "2109:73:9", + "scope": 4462, + "src": "2119:73:35", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2062, - "src": "183:2001:9" + "scope": 4463, + "src": "183:2011:35" } ], - "src": "0:2185:9" + "src": "0:2195:35" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.585Z" + "updatedAt": "2018-07-07T07:45:08.914Z" } \ No newline at end of file diff --git a/artifacts/json/TransferProxy.json b/artifacts/json/TransferProxy.json new file mode 100644 index 000000000..fe5ef5eb6 --- /dev/null +++ b/artifacts/json/TransferProxy.json @@ -0,0 +1,2116 @@ +{ + "contractName": "TransferProxy", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + } + ], + "name": "addAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "authorities", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + } + ], + "name": "removeAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "removeAuthorizedAddressAtIndex", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "authorized", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAuthorizedAddresses", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "authAddress", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AddressAuthorized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "addressRemoved", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AuthorizedAddressRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_vaultAddress", + "type": "address" + } + ], + "name": "setVaultAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "transferToVault", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061199c806100536000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303ee2295146100bf57806342f1181e1461012c578063430bf08a1461016f578063494503d4146101c65780637071293914610233578063715018a61461027657806385535cc51461028d5780638da5cb5b146102d05780639ad2674414610327578063b918161114610374578063d39de6e9146103cf578063f2fde38b1461043b575b600080fd5b3480156100cb57600080fd5b5061012a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061047e565b005b34801561013857600080fd5b5061016d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610685565b005b34801561017b57600080fd5b5061018461096e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101d257600080fd5b506101f160048036038101908080359060200190929190505050610994565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023f57600080fd5b50610274600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109d2565b005b34801561028257600080fd5b5061028b610d92565b005b34801561029957600080fd5b506102ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e94565b005b3480156102dc57600080fd5b506102e5610f33565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561033357600080fd5b50610372600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f58565b005b34801561038057600080fd5b506103b5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ae565b604051808215151515815260200191505060405180910390f35b3480156103db57600080fd5b506103e46113ce565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561042757808201518184015260208101905061040c565b505050509050019250505060405180910390f35b34801561044757600080fd5b5061047c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061145c565b005b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e000000000000000000000000000000000000000000008152509015156105d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561059857808201518184015260208101905061057d565b50505050905090810190601f1680156105c55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061060084600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114c3565b91506106308486600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866115a3565b61065c84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114c3565b905061067183836117cc90919063ffffffff16565b8114151561067e57600080fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106e057600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e0000000000000000000000000000000000000000000000000000815250901515610833576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107f85780820151818401526020810190506107dd565b50505050905090810190601f1680156108255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002818154811015156109a357fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a2f57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e000000000000000000000000000000000000000000000000000000000000815250901515610b81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b46578082015181840152602081019050610b2b565b50505050905090810190601f168015610b735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b600280549050811015610d8e578173ffffffffffffffffffffffffffffffffffffffff16600282815481101515610c0957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d81576002600160028054905003815481101515610c6757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282815481101515610ca157fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610d01919061191f565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2610d8e565b8080600101915050610bd6565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ded57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610eef57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb357600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e000000000000000000000000000000000000000000000000008152509015156110c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561108557808201518184015260208101905061106a565b50505050905090810190601f1680156110b25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff166002828154811015156110e757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e0000000000000000000000000000000000000081525090151561122e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111f35780820151818401526020810190506111d8565b50505050905090810190601f1680156112205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600260016002805490500381548110151561129557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002828154811015156112cf57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160028181805490500391508161132f919061191f565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561145257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611408575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114b757600080fd5b6114c0816117e8565b50565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561156057600080fd5b505af1158015611574573d6000803e3d6000fd5b505050506040513d602081101561158a57600080fd5b8101908080519060200190929190505050905092915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561167a57600080fd5b505af115801561168e573d6000803e3d6000fd5b5050505061169a6118e2565b608060405190810160405280604a81526020017f5472616e7366657272656420746f6b656e20646f6573206e6f7420726574757281526020017f6e206e756c6c206f722074727565206f6e207375636365737366756c2074726181526020017f6e7366657246726f6d2e000000000000000000000000000000000000000000008152509015156117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561178a57808201518184015260208101905061176f565b50505050905090810190601f1680156117b75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b600081830190508281101515156117df57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561182457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090503d600081146118ff576020811461190857611914565b60019150611914565b60206000803e60005191505b506001811491505090565b81548183558181111561194657818360005260206000209182019101611945919061194b565b5b505050565b61196d91905b80821115611969576000816000905550600101611951565b5090565b905600a165627a7a723058202769ebb3c20c59f05e40ac3f2f3f66699450db16edbbb14831b60b460e57ae960029", + "deployedBytecode": "0x6080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303ee2295146100bf57806342f1181e1461012c578063430bf08a1461016f578063494503d4146101c65780637071293914610233578063715018a61461027657806385535cc51461028d5780638da5cb5b146102d05780639ad2674414610327578063b918161114610374578063d39de6e9146103cf578063f2fde38b1461043b575b600080fd5b3480156100cb57600080fd5b5061012a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061047e565b005b34801561013857600080fd5b5061016d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610685565b005b34801561017b57600080fd5b5061018461096e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101d257600080fd5b506101f160048036038101908080359060200190929190505050610994565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023f57600080fd5b50610274600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109d2565b005b34801561028257600080fd5b5061028b610d92565b005b34801561029957600080fd5b506102ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e94565b005b3480156102dc57600080fd5b506102e5610f33565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561033357600080fd5b50610372600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f58565b005b34801561038057600080fd5b506103b5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ae565b604051808215151515815260200191505060405180910390f35b3480156103db57600080fd5b506103e46113ce565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561042757808201518184015260208101905061040c565b505050509050019250505060405180910390f35b34801561044757600080fd5b5061047c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061145c565b005b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e000000000000000000000000000000000000000000008152509015156105d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561059857808201518184015260208101905061057d565b50505050905090810190601f1680156105c55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061060084600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114c3565b91506106308486600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866115a3565b61065c84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114c3565b905061067183836117cc90919063ffffffff16565b8114151561067e57600080fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106e057600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e0000000000000000000000000000000000000000000000000000815250901515610833576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107f85780820151818401526020810190506107dd565b50505050905090810190601f1680156108255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002818154811015156109a357fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a2f57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e000000000000000000000000000000000000000000000000000000000000815250901515610b81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b46578082015181840152602081019050610b2b565b50505050905090810190601f168015610b735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b600280549050811015610d8e578173ffffffffffffffffffffffffffffffffffffffff16600282815481101515610c0957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d81576002600160028054905003815481101515610c6757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282815481101515610ca157fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610d01919061191f565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2610d8e565b8080600101915050610bd6565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ded57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610eef57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb357600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e000000000000000000000000000000000000000000000000008152509015156110c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561108557808201518184015260208101905061106a565b50505050905090810190601f1680156110b25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff166002828154811015156110e757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e0000000000000000000000000000000000000081525090151561122e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111f35780820151818401526020810190506111d8565b50505050905090810190601f1680156112205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600260016002805490500381548110151561129557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002828154811015156112cf57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160028181805490500391508161132f919061191f565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561145257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611408575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114b757600080fd5b6114c0816117e8565b50565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561156057600080fd5b505af1158015611574573d6000803e3d6000fd5b505050506040513d602081101561158a57600080fd5b8101908080519060200190929190505050905092915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561167a57600080fd5b505af115801561168e573d6000803e3d6000fd5b5050505061169a6118e2565b608060405190810160405280604a81526020017f5472616e7366657272656420746f6b656e20646f6573206e6f7420726574757281526020017f6e206e756c6c206f722074727565206f6e207375636365737366756c2074726181526020017f6e7366657246726f6d2e000000000000000000000000000000000000000000008152509015156117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561178a57808201518184015260208101905061176f565b50505050905090810190601f1680156117b75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b600081830190508281101515156117df57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561182457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090503d600081146118ff576020811461190857611914565b60019150611914565b60206000803e60005191505b506001811491505090565b81548183558181111561194657818360005260206000209182019101611945919061194b565b5b505050565b61196d91905b80821115611969576000816000905550600101611951565b5090565b905600a165627a7a723058202769ebb3c20c59f05e40ac3f2f3f66699450db16edbbb14831b60b460e57ae960029", + "sourceMap": "1099:1979:4:-;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;1099:1979:4;;;;;;", + "deployedSourceMap": "1099:1979:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2248:828;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2248:828:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2599:558:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2599:558:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;1326:27:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1326:27:4;;;;;;;;;;;;;;;;;;;;;;;;;;;1721:28:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1721:28:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3324:980;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3324:980:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:39;;;;;;1614:210:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1614:210:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;4571:939:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4571:939:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1634:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1634:43:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5620:186:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5620:186:27;;;;;;;;;;;;;;;;;1100:103:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;2248:828:4;2470:25;2888:20;1932:10:27;:22;1943:10;1932:22;;;;;;;;;;;;;;;;;;;;;;;;;1968:21;;;;;;;;;;;;;;;;;;;;;;;1911:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1911:88:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2498:85:4;2534:13;2561:12;;;;;;;;;;;2498:22;:85::i;:::-;2470:113;;2687:130;2726:13;2753:5;2772:12;;;;;;;;;;;2798:9;2687:25;:130::i;:::-;2911:85;2947:13;2974:12;;;;;;;;;;;2911:22;:85::i;:::-;2888:108;;3033:35;3058:9;3033:20;:24;;:35;;;;:::i;:::-;3014:15;:54;3006:63;;;;;;;;2248:828;;;;;:::o;2599:558:27:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2779:10:27;:23;2790:11;2779:23;;;;;;;;;;;;;;;;;;;;;;;;;2778:24;2816:25;;;;;;;;;;;;;;;;;;;;;;;2757:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2757:94:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2929:4;2903:10;:23;2914:11;2903:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;2988:11;3005;2988:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2988:29:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3105:11;3074:76;;;3130:10;3074:76;;;;;;;;;;;;;;;;;;;;;;2599:558;:::o;1326:27:4:-;;;;;;;;;;;;;:::o;1721:28:27:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3324:980::-;3664:6;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;3489:10:27;:23;3500:11;3489:23;;;;;;;;;;;;;;;;;;;;;;;;;3526:21;;;;;;;;;;;;;;;;;;;;;;;3468:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3468:89:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3625:10;:23;3636:11;3625:23;;;;;;;;;;;;;;;;3618:30;;;;;;;;;;;3673:1;3664:10;;3659:639;3680:11;:18;;;;3676:1;:22;3659:639;;;3812:11;3794:29;;:11;3806:1;3794:14;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;3790:498;;;3938:11;3971:1;3950:11;:18;;;;:22;3938:35;;;;;;;;;;;;;;;;;;;;;;;;;;;3921:11;3933:1;3921:14;;;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;4062:1;4040:11;:23;;;;;;;;;;;;;;:::i;:::-;;4189:11;4143:107;;;4222:10;4143:107;;;;;;;;;;;;;;;;;;;;;;4268:5;;3790:498;3700:3;;;;;;;3659:639;;;3324:980;;:::o;827:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;1614:210:4:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1804:13:4;1789:12;;:28;;;;;;;;;;;;;;;;;;1614:210;:::o;238:20:39:-;;;;;;;;;;;;;:::o;4571:939:27:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;4809:11:27;:18;;;;4800:6;:27;4841:19;;;;;;;;;;;;;;;;;;;;;;;4779:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4779:91:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4999:11;4976:34;;:11;4988:6;4976:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;5024:22;;;;;;;;;;;;;;;;;;;;;;;4955:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4955:101:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5124:10;:23;5135:11;5124:23;;;;;;;;;;;;;;;;5117:30;;;;;;;;;;;5245:11;5278:1;5257:11;:18;;;;:22;5245:35;;;;;;;;;;;;;;;;;;;;;;;;;;;5223:11;5235:6;5223:19;;;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;5355:1;5333:11;:23;;;;;;;;;;;;;;:::i;:::-;;5458:11;5420:83;;;5483:10;5420:83;;;;;;;;;;;;;;;;;;;;;;4571:939;;:::o;1634:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;5620:186::-;5701:9;5788:11;5781:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186;:::o;1100:103:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1343:217:23:-;1477:7;1514:13;1507:31;;;1539:13;1507:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1507:46:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1507:46:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1507:46:23;;;;;;;;;;;;;;;;1500:53;;1343:217;;;;:::o;1852:322::-;2020:13;2013:34;;;2048:5;2055:3;2060:9;2013:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2013:57:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2013:57:23;;;;2102:14;:12;:14::i;:::-;2130:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;2081:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2081:86:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1852:322;;;;:::o;1214:123:38:-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;1338:171:39:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o;2388:852:23:-;2463:4;2513:19;2535:1;2513:23;;2647:14;2729:3;2724:57;;;;2833:4;2828:220;;;;2640:497;;2724:57;2766:1;2751:16;;2724:57;;2828:220;2933:4;2928:3;2923;2908:30;3030:3;3024:10;3009:25;;2640:497;;3232:1;3217:11;:16;3210:23;;2388:852;;:::o;1099:1979:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\nimport { Authorizable } from \"../lib/Authorizable.sol\";\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { ERC20Wrapper } from \"./lib/ERC20Wrapper.sol\";\n\n\n/**\n * @title TransferProxy\n * @author Set Protocol\n *\n * The proxy contract is responsible for transferring funds from the user to the vault during Set issuance.\n * The contract is separated to allow for upgrades, particularly if new token standards emerge or upgrades are required.\n */\n\ncontract TransferProxy is\n Authorizable\n{\n // Use SafeMath library for all uint256 arithmetic\n using SafeMath for uint256;\n\n /* ============ State Variables ============ */\n\n // Address of the Vault contract\n address public vaultAddress;\n\n /* ============ No Constructor ============ */\n\n /* ============ Setter Functions ============ */\n\n /**\n * Set vaultAddress. Can only be set by owner of TransferProxy.\n *\n * @param _vaultAddress The address of the Vault\n */\n\n function setVaultAddress(\n address _vaultAddress\n )\n external\n onlyOwner\n {\n // Commit passed address to vaultAddress state variable\n vaultAddress = _vaultAddress;\n }\n\n /* ============ Public Functions ============ */\n\n /**\n * Transfers tokens from an address (that has set allowance on the proxy) to the vault.\n * Can only be called by authorized core contracts.\n *\n * @param _from The address to transfer tokens from\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to transfer\n */\n function transferToVault(\n address _from,\n address _tokenAddress,\n uint _quantity\n )\n external\n onlyAuthorized\n {\n // Retrieve current balance of token for the vault\n uint existingVaultBalance = ERC20Wrapper.balanceOf(\n _tokenAddress,\n vaultAddress\n );\n\n // Call specified ERC20 contract to transfer tokens from user to Vault (via proxy).\n\n ERC20Wrapper.transferFrom(\n _tokenAddress,\n _from,\n vaultAddress,\n _quantity\n );\n\n // Verify transfer quantity is reflected in balance\n uint newVaultBalance = ERC20Wrapper.balanceOf(\n _tokenAddress,\n vaultAddress\n );\n require(newVaultBalance == existingVaultBalance.add(_quantity));\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/TransferProxy.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/TransferProxy.sol", + "exportedSymbols": { + "TransferProxy": [ + 730 + ] + }, + "id": 731, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 658, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:4" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "file": "../lib/Authorizable.sol", + "id": 660, + "nodeType": "ImportDirective", + "scope": 731, + "sourceUnit": 3323, + "src": "623:55:4", + "symbolAliases": [ + { + "foreign": 659, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 662, + "nodeType": "ImportDirective", + "scope": 731, + "sourceUnit": 4739, + "src": "679:73:4", + "symbolAliases": [ + { + "foreign": 661, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ERC20Wrapper.sol", + "file": "./lib/ERC20Wrapper.sol", + "id": 664, + "nodeType": "ImportDirective", + "scope": 731, + "sourceUnit": 2846, + "src": "753:54:4", + "symbolAliases": [ + { + "foreign": 663, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 665, + "name": "Authorizable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3322, + "src": "1129:12:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Authorizable_$3322", + "typeString": "contract Authorizable" + } + }, + "id": 666, + "nodeType": "InheritanceSpecifier", + "src": "1129:12:4" + } + ], + "contractDependencies": [ + 3322, + 4824 + ], + "contractKind": "contract", + "documentation": "@title TransferProxy\n@author Set Protocol\n * The proxy contract is responsible for transferring funds from the user to the vault during Set issuance.\nThe contract is separated to allow for upgrades, particularly if new token standards emerge or upgrades are required.", + "fullyImplemented": true, + "id": 730, + "linearizedBaseContracts": [ + 730, + 3322, + 4824 + ], + "name": "TransferProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 669, + "libraryName": { + "contractScope": null, + "id": 667, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1209:8:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1203:27:4", + "typeName": { + "id": 668, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1222:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 671, + "name": "vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 730, + "src": "1326:27:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1326:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 682, + "nodeType": "Block", + "src": "1715:109:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 678, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "1789:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 679, + "name": "_vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 673, + "src": "1804:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1789:28:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 681, + "nodeType": "ExpressionStatement", + "src": "1789:28:4" + } + ] + }, + "documentation": "Set vaultAddress. Can only be set by owner of TransferProxy.\n * @param _vaultAddress The address of the Vault", + "id": 683, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 676, + "modifierName": { + "argumentTypes": null, + "id": 675, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1701:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1701:9:4" + } + ], + "name": "setVaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 673, + "name": "_vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "1648:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1648:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1638:37:4" + }, + "payable": false, + "returnParameters": { + "id": 677, + "nodeType": "ParameterList", + "parameters": [], + "src": "1715:0:4" + }, + "scope": 730, + "src": "1614:210:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 728, + "nodeType": "Block", + "src": "2401:675:4", + "statements": [ + { + "assignments": [ + 695 + ], + "declarations": [ + { + "constant": false, + "id": 695, + "name": "existingVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2470:25:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2470:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 701, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 698, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "2534:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 699, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "2561:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 696, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2498:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "2498:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2498:85:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2470:113:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 705, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "2726:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 685, + "src": "2753:5:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 707, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "2772:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 708, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "2798:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 702, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2687:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 2829, + "src": "2687:25:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256)" + } + }, + "id": 709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2687:130:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 710, + "nodeType": "ExpressionStatement", + "src": "2687:130:4" + }, + { + "assignments": [ + 712 + ], + "declarations": [ + { + "constant": false, + "id": 712, + "name": "newVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2888:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 711, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2888:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 718, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 715, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "2947:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 716, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "2974:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 713, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2911:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "2911:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2911:85:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2888:108:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 720, + "name": "newVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 712, + "src": "3014:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 723, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "3058:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 721, + "name": "existingVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 695, + "src": "3033:20:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "3033:24:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3033:35:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3014:54:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 719, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "3006:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3006:63:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 727, + "nodeType": "ExpressionStatement", + "src": "3006:63:4" + } + ] + }, + "documentation": "Transfers tokens from an address (that has set allowance on the proxy) to the vault.\nCan only be called by authorized core contracts.\n * @param _from The address to transfer tokens from\n@param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to transfer", + "id": 729, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 692, + "modifierName": { + "argumentTypes": null, + "id": 691, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "2382:14:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2382:14:4" + } + ], + "name": "transferToVault", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 685, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2282:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2282:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 687, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2305:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 686, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 689, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2336:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 688, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2336:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2272:84:4" + }, + "payable": false, + "returnParameters": { + "id": 693, + "nodeType": "ParameterList", + "parameters": [], + "src": "2401:0:4" + }, + "scope": 730, + "src": "2248:828:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 731, + "src": "1099:1979:4" + } + ], + "src": "597:2482:4" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/TransferProxy.sol", + "exportedSymbols": { + "TransferProxy": [ + 730 + ] + }, + "id": 731, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 658, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:4" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "file": "../lib/Authorizable.sol", + "id": 660, + "nodeType": "ImportDirective", + "scope": 731, + "sourceUnit": 3323, + "src": "623:55:4", + "symbolAliases": [ + { + "foreign": 659, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 662, + "nodeType": "ImportDirective", + "scope": 731, + "sourceUnit": 4739, + "src": "679:73:4", + "symbolAliases": [ + { + "foreign": 661, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ERC20Wrapper.sol", + "file": "./lib/ERC20Wrapper.sol", + "id": 664, + "nodeType": "ImportDirective", + "scope": 731, + "sourceUnit": 2846, + "src": "753:54:4", + "symbolAliases": [ + { + "foreign": 663, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 665, + "name": "Authorizable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3322, + "src": "1129:12:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Authorizable_$3322", + "typeString": "contract Authorizable" + } + }, + "id": 666, + "nodeType": "InheritanceSpecifier", + "src": "1129:12:4" + } + ], + "contractDependencies": [ + 3322, + 4824 + ], + "contractKind": "contract", + "documentation": "@title TransferProxy\n@author Set Protocol\n * The proxy contract is responsible for transferring funds from the user to the vault during Set issuance.\nThe contract is separated to allow for upgrades, particularly if new token standards emerge or upgrades are required.", + "fullyImplemented": true, + "id": 730, + "linearizedBaseContracts": [ + 730, + 3322, + 4824 + ], + "name": "TransferProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 669, + "libraryName": { + "contractScope": null, + "id": 667, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1209:8:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1203:27:4", + "typeName": { + "id": 668, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1222:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 671, + "name": "vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 730, + "src": "1326:27:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1326:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 682, + "nodeType": "Block", + "src": "1715:109:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 678, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "1789:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 679, + "name": "_vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 673, + "src": "1804:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1789:28:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 681, + "nodeType": "ExpressionStatement", + "src": "1789:28:4" + } + ] + }, + "documentation": "Set vaultAddress. Can only be set by owner of TransferProxy.\n * @param _vaultAddress The address of the Vault", + "id": 683, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 676, + "modifierName": { + "argumentTypes": null, + "id": 675, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1701:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1701:9:4" + } + ], + "name": "setVaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 673, + "name": "_vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "1648:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1648:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1638:37:4" + }, + "payable": false, + "returnParameters": { + "id": 677, + "nodeType": "ParameterList", + "parameters": [], + "src": "1715:0:4" + }, + "scope": 730, + "src": "1614:210:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 728, + "nodeType": "Block", + "src": "2401:675:4", + "statements": [ + { + "assignments": [ + 695 + ], + "declarations": [ + { + "constant": false, + "id": 695, + "name": "existingVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2470:25:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2470:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 701, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 698, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "2534:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 699, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "2561:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 696, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2498:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "2498:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2498:85:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2470:113:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 705, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "2726:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 685, + "src": "2753:5:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 707, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "2772:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 708, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "2798:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 702, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2687:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 2829, + "src": "2687:25:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256)" + } + }, + "id": 709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2687:130:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 710, + "nodeType": "ExpressionStatement", + "src": "2687:130:4" + }, + { + "assignments": [ + 712 + ], + "declarations": [ + { + "constant": false, + "id": 712, + "name": "newVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2888:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 711, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2888:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 718, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 715, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "2947:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 716, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "2974:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 713, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2911:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "2911:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2911:85:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2888:108:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 720, + "name": "newVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 712, + "src": "3014:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 723, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "3058:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 721, + "name": "existingVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 695, + "src": "3033:20:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "3033:24:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3033:35:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3014:54:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 719, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "3006:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3006:63:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 727, + "nodeType": "ExpressionStatement", + "src": "3006:63:4" + } + ] + }, + "documentation": "Transfers tokens from an address (that has set allowance on the proxy) to the vault.\nCan only be called by authorized core contracts.\n * @param _from The address to transfer tokens from\n@param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to transfer", + "id": 729, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 692, + "modifierName": { + "argumentTypes": null, + "id": 691, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "2382:14:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2382:14:4" + } + ], + "name": "transferToVault", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 685, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2282:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2282:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 687, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2305:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 686, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 689, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2336:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 688, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2336:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2272:84:4" + }, + "payable": false, + "returnParameters": { + "id": 693, + "nodeType": "ParameterList", + "parameters": [], + "src": "2401:0:4" + }, + "scope": 730, + "src": "2248:828:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 731, + "src": "1099:1979:4" + } + ], + "src": "597:2482:4" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.892Z" +} \ No newline at end of file diff --git a/artifacts/json/Vault.json b/artifacts/json/Vault.json new file mode 100644 index 000000000..bb66aebc1 --- /dev/null +++ b/artifacts/json/Vault.json @@ -0,0 +1,5288 @@ +{ + "contractName": "Vault", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + } + ], + "name": "addAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "authorities", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + } + ], + "name": "removeAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "removeAuthorizedAddressAtIndex", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "authorized", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "address" + } + ], + "name": "balances", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAuthorizedAddresses", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "authAddress", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AddressAuthorized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "addressRemoved", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AuthorizedAddressRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "withdrawTo", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "incrementTokenOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "decrementTokenOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + } + ], + "name": "getOwnerBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612144806100536000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631f98ade3146100d557806342f1181e1461014c578063494503d41461018f57806370712939146101fc578063715018a61461023f57806380ddda30146102565780638da5cb5b146102c35780639ad267441461031a578063b918161114610367578063bada5726146103c2578063c23f001f1461042f578063c3b35a7e146104a6578063d39de6e914610513578063f2fde38b1461057f575b600080fd5b3480156100e157600080fd5b50610136600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105c2565b6040518082815260200191505060405180910390f35b34801561015857600080fd5b5061018d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610649565b005b34801561019b57600080fd5b506101ba60048036038101908080359060200190929190505050610932565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020857600080fd5b5061023d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610970565b005b34801561024b57600080fd5b50610254610d30565b005b34801561026257600080fd5b506102c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e32565b005b3480156102cf57600080fd5b506102d8611230565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032657600080fd5b50610365600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611255565b005b34801561037357600080fd5b506103a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116ab565b604051808215151515815260200191505060405180910390f35b3480156103ce57600080fd5b5061042d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116cb565b005b34801561043b57600080fd5b50610490600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611943565b6040518082815260200191505060405180910390f35b3480156104b257600080fd5b50610511600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611968565b005b34801561051f57600080fd5b50610528611b92565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561056b578082015181840152602081019050610550565b505050509050019250505060405180910390f35b34801561058b57600080fd5b506105c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c20565b005b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106a457600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e00000000000000000000000000000000000000000000000000008152509015156107f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107bc5780820151818401526020810190506107a1565b50505050905090810190601f1680156107e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b60028181548110151561094157fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109cd57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e000000000000000000000000000000000000000000000000000000000000815250901515610b1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ae4578082015181840152602081019050610ac9565b50505050905090810190601f168015610b115780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b600280549050811015610d2c578173ffffffffffffffffffffffffffffffffffffffff16600282815481101515610ba757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d1f576002600160028054905003815481101515610c0557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282815481101515610c3f57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610c9f91906120c7565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2610d2c565b8080600101915050610b74565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d8b57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e00000000000000000000000000000000000000000000815250901515610f84576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f49578082015181840152602081019050610f2e565b50505050905090810190601f168015610f765780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5080600081111515610f9557600080fd5b81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015606060405190810160405280602681526020017f5573657220646f6573206e6f7420686176652073756666696369656e7420626181526020017f6c616e63652e000000000000000000000000000000000000000000000000000081525090151561111a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110df5780820151818401526020810190506110c4565b50505050905090810190601f16801561110c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506111aa82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8790919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b057600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e000000000000000000000000000000000000000000000000008152509015156113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611382578082015181840152602081019050611367565b50505050905090810190601f1680156113af5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff166002828154811015156113e457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e0000000000000000000000000000000000000081525090151561152b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156114f05780820151818401526020810190506114d5565b50505050905090810190601f16801561151d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600260016002805490500381548110151561159257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002828154811015156115cc57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160028181805490500391508161162c91906120c7565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e0000000000000000000000000000000000000000000081525090151561181d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156117e25780820151818401526020810190506117c7565b50505050905090810190601f16801561180f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508060008111151561182e57600080fd5b6118bd82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca090919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b6003602052816000526040600020602052806000526040600020600091509150505481565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e00000000000000000000000000000000000000000000815250901515611abd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a82578082015181840152602081019050611a67565b50505050905090810190601f168015611aaf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082600081111515611ace57600080fd5b84600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b0b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b4657600080fd5b611b508730611cbc565b9350611b5d878787611d9c565b611b678730611cbc565b9250611b7c8585611c8790919063ffffffff16565b83141515611b8957600080fd5b50505050505050565b60606002805480602002602001604051908101604052809291908181526020018280548015611c1657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611bcc575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7b57600080fd5b611c8481611f90565b50565b6000828211151515611c9557fe5b818303905092915050565b60008183019050828110151515611cb357fe5b80905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611d5957600080fd5b505af1158015611d6d573d6000803e3d6000fd5b505050506040513d6020811015611d8357600080fd5b8101908080519060200190929190505050905092915050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611e3f57600080fd5b505af1158015611e53573d6000803e3d6000fd5b50505050611e5f61208a565b608060405190810160405280604681526020017f5472616e7366657272656420746f6b656e20646f6573206e6f7420726574757281526020017f6e206e756c6c206f722074727565206f6e207375636365737366756c2074726181526020017f6e736665722e0000000000000000000000000000000000000000000000000000815250901515611f8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f4f578082015181840152602081019050611f34565b50505050905090810190601f168015611f7c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fcc57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090503d600081146120a757602081146120b0576120bc565b600191506120bc565b60206000803e60005191505b506001811491505090565b8154818355818111156120ee578183600052602060002091820191016120ed91906120f3565b5b505050565b61211591905b808211156121115760008160009055506001016120f9565b5090565b905600a165627a7a72305820c90b35e96726f9549adf2cfe9a6abafe36f4e0392f5049603589720bfec723680029", + "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631f98ade3146100d557806342f1181e1461014c578063494503d41461018f57806370712939146101fc578063715018a61461023f57806380ddda30146102565780638da5cb5b146102c35780639ad267441461031a578063b918161114610367578063bada5726146103c2578063c23f001f1461042f578063c3b35a7e146104a6578063d39de6e914610513578063f2fde38b1461057f575b600080fd5b3480156100e157600080fd5b50610136600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105c2565b6040518082815260200191505060405180910390f35b34801561015857600080fd5b5061018d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610649565b005b34801561019b57600080fd5b506101ba60048036038101908080359060200190929190505050610932565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020857600080fd5b5061023d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610970565b005b34801561024b57600080fd5b50610254610d30565b005b34801561026257600080fd5b506102c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e32565b005b3480156102cf57600080fd5b506102d8611230565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032657600080fd5b50610365600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611255565b005b34801561037357600080fd5b506103a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116ab565b604051808215151515815260200191505060405180910390f35b3480156103ce57600080fd5b5061042d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116cb565b005b34801561043b57600080fd5b50610490600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611943565b6040518082815260200191505060405180910390f35b3480156104b257600080fd5b50610511600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611968565b005b34801561051f57600080fd5b50610528611b92565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561056b578082015181840152602081019050610550565b505050509050019250505060405180910390f35b34801561058b57600080fd5b506105c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c20565b005b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106a457600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e00000000000000000000000000000000000000000000000000008152509015156107f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107bc5780820151818401526020810190506107a1565b50505050905090810190601f1680156107e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b60028181548110151561094157fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109cd57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e000000000000000000000000000000000000000000000000000000000000815250901515610b1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ae4578082015181840152602081019050610ac9565b50505050905090810190601f168015610b115780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b600280549050811015610d2c578173ffffffffffffffffffffffffffffffffffffffff16600282815481101515610ba757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d1f576002600160028054905003815481101515610c0557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282815481101515610c3f57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610c9f91906120c7565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2610d2c565b8080600101915050610b74565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d8b57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e00000000000000000000000000000000000000000000815250901515610f84576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f49578082015181840152602081019050610f2e565b50505050905090810190601f168015610f765780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5080600081111515610f9557600080fd5b81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015606060405190810160405280602681526020017f5573657220646f6573206e6f7420686176652073756666696369656e7420626181526020017f6c616e63652e000000000000000000000000000000000000000000000000000081525090151561111a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110df5780820151818401526020810190506110c4565b50505050905090810190601f16801561110c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506111aa82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8790919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b057600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e000000000000000000000000000000000000000000000000008152509015156113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611382578082015181840152602081019050611367565b50505050905090810190601f1680156113af5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff166002828154811015156113e457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e0000000000000000000000000000000000000081525090151561152b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156114f05780820151818401526020810190506114d5565b50505050905090810190601f16801561151d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600260016002805490500381548110151561159257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002828154811015156115cc57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160028181805490500391508161162c91906120c7565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e0000000000000000000000000000000000000000000081525090151561181d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156117e25780820151818401526020810190506117c7565b50505050905090810190601f16801561180f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508060008111151561182e57600080fd5b6118bd82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca090919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b6003602052816000526040600020602052806000526040600020600091509150505481565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e00000000000000000000000000000000000000000000815250901515611abd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a82578082015181840152602081019050611a67565b50505050905090810190601f168015611aaf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082600081111515611ace57600080fd5b84600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b0b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b4657600080fd5b611b508730611cbc565b9350611b5d878787611d9c565b611b678730611cbc565b9250611b7c8585611c8790919063ffffffff16565b83141515611b8957600080fd5b50505050505050565b60606002805480602002602001604051908101604052809291908181526020018280548015611c1657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611bcc575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7b57600080fd5b611c8481611f90565b50565b6000828211151515611c9557fe5b818303905092915050565b60008183019050828110151515611cb357fe5b80905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611d5957600080fd5b505af1158015611d6d573d6000803e3d6000fd5b505050506040513d6020811015611d8357600080fd5b8101908080519060200190929190505050905092915050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611e3f57600080fd5b505af1158015611e53573d6000803e3d6000fd5b50505050611e5f61208a565b608060405190810160405280604681526020017f5472616e7366657272656420746f6b656e20646f6573206e6f7420726574757281526020017f6e206e756c6c206f722074727565206f6e207375636365737366756c2074726181526020017f6e736665722e0000000000000000000000000000000000000000000000000000815250901515611f8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f4f578082015181840152602081019050611f34565b50505050905090810190601f168015611f7c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fcc57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090503d600081146120a757602081146120b0576120bc565b600191506120bc565b60206000803e60005191505b506001811491505090565b8154818355818111156120ee578183600052602060002091820191016120ed91906120f3565b5b505050565b61211591905b808211156121115760008160009055506001016120f9565b5090565b905600a165627a7a72305820c90b35e96726f9549adf2cfe9a6abafe36f4e0392f5049603589720bfec723680029", + "sourceMap": "995:4503:5:-;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;995:4503:5;;;;;;", + "deployedSourceMap": "995:4503:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5256:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5256:240:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2599:558:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2599:558:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;1721:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1721:28:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3324:980;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3324:980:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:39;;;;;;4409:586:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4409:586:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;4571:939:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4571:939:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1634:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1634:43:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3689:369:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3689:369:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1400:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1400:65:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2514:826;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2514:826:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5620:186:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5620:186:27;;;;;;;;;;;;;;;;;1100:103:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;5256:240:5;5389:7;5458:8;:23;5467:13;5458:23;;;;;;;;;;;;;;;:31;5482:6;5458:31;;;;;;;;;;;;;;;;5451:38;;5256:240;;;;:::o;2599:558:27:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2779:10:27;:23;2790:11;2779:23;;;;;;;;;;;;;;;;;;;;;;;;;2778:24;2816:25;;;;;;;;;;;;;;;;;;;;;;;2757:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2757:94:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2929:4;2903:10;:23;2914:11;2903:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;2988:11;3005;2988:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2988:29:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3105:11;3074:76;;;3130:10;3074:76;;;;;;;;;;;;;;;;;;;;;;2599:558;:::o;1721:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3324:980::-;3664:6;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;3489:10:27;:23;3500:11;3489:23;;;;;;;;;;;;;;;;;;;;;;;;;3526:21;;;;;;;;;;;;;;;;;;;;;;;3468:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3468:89:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3625:10;:23;3636:11;3625:23;;;;;;;;;;;;;;;;3618:30;;;;;;;;;;;3673:1;3664:10;;3659:639;3680:11;:18;;;;3676:1;:22;3659:639;;;3812:11;3794:29;;:11;3806:1;3794:14;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;3790:498;;;3938:11;3971:1;3950:11;:18;;;;:22;3938:35;;;;;;;;;;;;;;;;;;;;;;;;;;;3921:11;3933:1;3921:14;;;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;4062:1;4040:11;:23;;;;;;;;;;;;;;:::i;:::-;;4189:11;4143:107;;;4222:10;4143:107;;;;;;;;;;;;;;;;;;;;;;4268:5;;3790:498;3700:3;;;;;;;3659:639;;;3324:980;;:::o;827:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;4409:586:5:-;1932:10:27;:22;1943:10;1932:22;;;;;;;;;;;;;;;;;;;;;;;;;1968:21;;;;;;;;;;;;;;;;;;;;;;;1911:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1911:88:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4581:9:5;2053:1;2041:9;:13;2033:22;;;;;;;;4754:9;4719:8;:23;4728:13;4719:23;;;;;;;;;;;;;;;:31;4743:6;4719:31;;;;;;;;;;;;;;;;:44;;4777:20;;;;;;;;;;;;;;;;;;;;;;;4698:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4698:109:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4942:46;4978:9;4942:8;:23;4951:13;4942:23;;;;;;;;;;;;;;;:31;4966:6;4942:31;;;;;;;;;;;;;;;;:35;;:46;;;;:::i;:::-;4908:8;:23;4917:13;4908:23;;;;;;;;;;;;;;;:31;4932:6;4908:31;;;;;;;;;;;;;;;:80;;;;2009:1:27;4409:586:5;;;:::o;238:20:39:-;;;;;;;;;;;;;:::o;4571:939:27:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;4809:11:27;:18;;;;4800:6;:27;4841:19;;;;;;;;;;;;;;;;;;;;;;;4779:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4779:91:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4999:11;4976:34;;:11;4988:6;4976:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;5024:22;;;;;;;;;;;;;;;;;;;;;;;4955:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4955:101:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5124:10;:23;5135:11;5124:23;;;;;;;;;;;;;;;;5117:30;;;;;;;;;;;5245:11;5278:1;5257:11;:18;;;;:22;5245:35;;;;;;;;;;;;;;;;;;;;;;;;;;;5223:11;5235:6;5223:19;;;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;5355:1;5333:11;:23;;;;;;;;;;;;;;:::i;:::-;;5458:11;5420:83;;;5483:10;5420:83;;;;;;;;;;;;;;;;;;;;;;4571:939;;:::o;1634:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;3689:369:5:-;1932:10:27;:22;1943:10;1932:22;;;;;;;;;;;;;;;;;;;;;;;;;1968:21;;;;;;;;;;;;;;;;;;;;;;;1911:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1911:88:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3861:9:5;2053:1;2041:9;:13;2033:22;;;;;;;;4005:46;4041:9;4005:8;:23;4014:13;4005:23;;;;;;;;;;;;;;;:31;4029:6;4005:31;;;;;;;;;;;;;;;;:35;;:46;;;;:::i;:::-;3971:8;:23;3980:13;3971:23;;;;;;;;;;;;;;;:31;3995:6;3971:31;;;;;;;;;;;;;;;:80;;;;2009:1:27;3689:369:5;;;:::o;1400:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2514:826::-;2790:25;3160:20;1932:10:27;:22;1943:10;1932:22;;;;;;;;;;;;;;;;;;;;;;;;;1968:21;;;;;;;;;;;;;;;;;;;;;;;1911:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1911:88:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2674:9:5;2053:1;2041:9;:13;2033:22;;;;;;;;2712:3;1700:1;1685:17;;:3;:17;;;;1677:26;;;;;;;;1784:4;1769:20;;:3;:20;;;;1761:29;;;;;;;;2818:77;2854:13;2881:4;2818:22;:77::i;:::-;2790:105;;2991:98;3026:13;3053:3;3070:9;2991:21;:98::i;:::-;3183:77;3219:13;3246:4;3183:22;:77::i;:::-;3160:100;;3297:35;3322:9;3297:20;:24;;:35;;;;:::i;:::-;3278:15;:54;3270:63;;;;;;;;2065:1;2009::27;2514:826:5;;;;;:::o;5620:186:27:-;5701:9;5788:11;5781:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186;:::o;1100:103:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;1343:217:23:-;1477:7;1514:13;1507:31;;;1539:13;1507:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1507:46:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1507:46:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1507:46:23;;;;;;;;;;;;;;;;1500:53;;1343:217;;;;:::o;1566:280::-;1707:13;1700:30;;;1731:3;1736:9;1700:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1700:46:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1700:46:23;;;;1778:14;:12;:14::i;:::-;1806:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;1757:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1757:82:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1566:280;;;:::o;1338:171:39:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o;2388:852:23:-;2463:4;2513:19;2535:1;2513:23;;2647:14;2729:3;2724:57;;;;2833:4;2828:220;;;;2640:497;;2724:57;2766:1;2751:16;;2724:57;;2828:220;2933:4;2928:3;2923;2908:30;3030:3;3024:10;3009:25;;2640:497;;3232:1;3217:11;:16;3210:23;;2388:852;;:::o;995:4503:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\nimport { Authorizable } from \"../lib/Authorizable.sol\";\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { ERC20Wrapper } from \"./lib/ERC20Wrapper.sol\";\n\n\n/**\n * @title Vault\n * @author Set Protocol\n *\n * The vault contract is responsible for holding all funds and keeping track of the\n * fund state and which Sets own which funds.\n *\n */\n\ncontract Vault is\n Authorizable\n{\n // Use SafeMath library for all uint256 arithmetic\n using SafeMath for uint256;\n\n /* ============ Constants ============ */\n\n // Error messages\n string constant INSUFFICIENT_BALANCE = \"User does not have sufficient balance.\";\n\n /* ============ State Variables ============ */\n\n // Mapping of token address to map of owner address to balance.\n mapping (address => mapping (address => uint256)) public balances;\n\n\n /* ============ Modifiers ============ */\n\n // Checks to make sure a valid account to withdrawTo is given.\n modifier isValidDestination(address _to) {\n // Confirm address is not null\n require(_to != address(0));\n // Confirm address is not Vault address\n require(_to != address(this));\n _;\n }\n\n /*\n * Checks to make sure a positive quantity of tokens is being withdrawn\n * or decremented/incremented\n */\n modifier isNonZero(uint _quantity) {\n // Confirm quantity is greater than zero\n require(_quantity > 0);\n _;\n }\n\n /* ============ No Constructor ============ */\n\n /* ============ Public Functions ============ */\n\n /*\n * Withdraws user's unassociated tokens to user account. Can only be\n * called by authorized core contracts.\n *\n * @param _tokenAddress The address of the ERC20 token\n * @param _to The address to transfer token to\n * @param _quantity The number of tokens to transfer\n */\n function withdrawTo(\n address _tokenAddress,\n address _to,\n uint _quantity\n )\n external\n onlyAuthorized\n isNonZero(_quantity)\n isValidDestination(_to)\n {\n // Retrieve current balance of token for the vault\n uint existingVaultBalance = ERC20Wrapper.balanceOf(\n _tokenAddress,\n this\n );\n\n // Call specified ERC20 token contract to transfer tokens from Vault to user\n ERC20Wrapper.transfer(\n _tokenAddress,\n _to,\n _quantity\n );\n\n // Verify transfer quantity is reflected in balance\n uint newVaultBalance = ERC20Wrapper.balanceOf(\n _tokenAddress,\n this\n );\n require(newVaultBalance == existingVaultBalance.sub(_quantity));\n }\n\n /*\n * Increment quantity owned of a token for a given address. Can\n * only be called by authorized core contracts.\n *\n * @param _owner The address of the token owner\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to attribute to owner\n */\n function incrementTokenOwner(\n address _owner,\n address _tokenAddress,\n uint _quantity\n )\n external\n onlyAuthorized\n isNonZero(_quantity)\n {\n // Increment balances state variable adding _quantity to user's token amount\n balances[_tokenAddress][_owner] = balances[_tokenAddress][_owner].add(_quantity);\n }\n\n /*\n * Decrement quantity owned of a token for a given address. Can only\n * be called by authorized core contracts.\n *\n * @param _owner The address of the token owner\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to deattribute to owner\n */\n function decrementTokenOwner(\n address _owner,\n address _tokenAddress,\n uint _quantity\n )\n external\n onlyAuthorized\n isNonZero(_quantity)\n {\n // Require that user has enough unassociated tokens to withdraw tokens or issue Set\n require(\n balances[_tokenAddress][_owner] >= _quantity,\n INSUFFICIENT_BALANCE\n );\n\n // Decrement balances state variable subtracting _quantity to user's token amount\n balances[_tokenAddress][_owner] = balances[_tokenAddress][_owner].sub(_quantity);\n }\n\n /* ============ Getter Functions ============ */\n\n /*\n * Get balance of particular contract for owner.\n *\n * @param _owner The address of the token owner\n * @param _tokenAddress The address of the ERC20 token\n */\n function getOwnerBalance(\n address _owner,\n address _tokenAddress\n )\n external\n view\n returns (uint256)\n {\n // Return owners token balance\n return balances[_tokenAddress][_owner];\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/Vault.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/Vault.sol", + "exportedSymbols": { + "Vault": [ + 925 + ] + }, + "id": 926, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 732, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:5" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "file": "../lib/Authorizable.sol", + "id": 734, + "nodeType": "ImportDirective", + "scope": 926, + "sourceUnit": 3323, + "src": "623:55:5", + "symbolAliases": [ + { + "foreign": 733, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 736, + "nodeType": "ImportDirective", + "scope": 926, + "sourceUnit": 4739, + "src": "679:73:5", + "symbolAliases": [ + { + "foreign": 735, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ERC20Wrapper.sol", + "file": "./lib/ERC20Wrapper.sol", + "id": 738, + "nodeType": "ImportDirective", + "scope": 926, + "sourceUnit": 2846, + "src": "753:54:5", + "symbolAliases": [ + { + "foreign": 737, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 739, + "name": "Authorizable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3322, + "src": "1017:12:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Authorizable_$3322", + "typeString": "contract Authorizable" + } + }, + "id": 740, + "nodeType": "InheritanceSpecifier", + "src": "1017:12:5" + } + ], + "contractDependencies": [ + 3322, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Vault\n@author Set Protocol\n * The vault contract is responsible for holding all funds and keeping track of the\nfund state and which Sets own which funds.\n ", + "fullyImplemented": true, + "id": 925, + "linearizedBaseContracts": [ + 925, + 3322, + 4824 + ], + "name": "Vault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 743, + "libraryName": { + "contractScope": null, + "id": 741, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1097:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1091:27:5", + "typeName": { + "id": 742, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1110:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 746, + "name": "INSUFFICIENT_BALANCE", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "1193:79:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1193:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5573657220646f6573206e6f7420686176652073756666696369656e742062616c616e63652e", + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1232:40:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9e045c08446df5c7607123c87ba2467001aac5f9593306a331b663952a9056f8", + "typeString": "literal_string \"User does not have sufficient balance.\"" + }, + "value": "User does not have sufficient balance." + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 752, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "1400:65:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 751, + "keyType": { + "id": 747, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1409:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1400:49:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 750, + "keyType": { + "id": 748, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1429:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1420:28:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1440:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 773, + "nodeType": "Block", + "src": "1628:180:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 757, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 754, + "src": "1685:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1700:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1692:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1692:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1685:17:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 756, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1677:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1677:26:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 763, + "nodeType": "ExpressionStatement", + "src": "1677:26:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 765, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 754, + "src": "1769:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 767, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5472, + "src": "1784:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + ], + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1776:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1776:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1769:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 764, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1761:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1761:29:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 771, + "nodeType": "ExpressionStatement", + "src": "1761:29:5" + }, + { + "id": 772, + "nodeType": "PlaceholderStatement", + "src": "1800:1:5" + } + ] + }, + "documentation": null, + "id": 774, + "name": "isValidDestination", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 754, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 774, + "src": "1615:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 753, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1615:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1614:13:5" + }, + "src": "1587:221:5", + "visibility": "internal" + }, + { + "body": { + "id": 785, + "nodeType": "Block", + "src": "1974:99:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 779, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 776, + "src": "2041:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2053:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2041:13:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 778, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2033:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2033:22:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 783, + "nodeType": "ExpressionStatement", + "src": "2033:22:5" + }, + { + "id": 784, + "nodeType": "PlaceholderStatement", + "src": "2065:1:5" + } + ] + }, + "documentation": null, + "id": 786, + "name": "isNonZero", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 776, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "1958:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 775, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1958:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1957:16:5" + }, + "src": "1939:134:5", + "visibility": "internal" + }, + { + "body": { + "id": 836, + "nodeType": "Block", + "src": "2721:619:5", + "statements": [ + { + "assignments": [ + 804 + ], + "declarations": [ + { + "constant": false, + "id": 804, + "name": "existingVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2790:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 803, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2790:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 810, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 807, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "2854:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 808, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5472, + "src": "2881:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + ], + "expression": { + "argumentTypes": null, + "id": 805, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2818:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "2818:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2818:77:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2790:105:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 814, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "3026:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 815, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "3053:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 816, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3070:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 811, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2991:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 2802, + "src": "2991:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2991:98:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 818, + "nodeType": "ExpressionStatement", + "src": "2991:98:5" + }, + { + "assignments": [ + 820 + ], + "declarations": [ + { + "constant": false, + "id": 820, + "name": "newVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "3160:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 819, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3160:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 826, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 823, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "3219:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 824, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5472, + "src": "3246:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + ], + "expression": { + "argumentTypes": null, + "id": 821, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "3183:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "3183:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3183:77:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3160:100:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 828, + "name": "newVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 820, + "src": "3278:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 831, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3322:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 829, + "name": "existingVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 804, + "src": "3297:20:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "3297:24:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3297:35:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3278:54:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 827, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "3270:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3270:63:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 835, + "nodeType": "ExpressionStatement", + "src": "3270:63:5" + } + ] + }, + "documentation": null, + "id": 837, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 795, + "modifierName": { + "argumentTypes": null, + "id": 794, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "2641:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2641:14:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 797, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "2674:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 798, + "modifierName": { + "argumentTypes": null, + "id": 796, + "name": "isNonZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "2664:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2664:20:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 800, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "2712:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 801, + "modifierName": { + "argumentTypes": null, + "id": 799, + "name": "isValidDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 774, + "src": "2693:18:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2693:23:5" + } + ], + "name": "withdrawTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 788, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2543:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 787, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2543:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 790, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2574:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 789, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2574:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 792, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2595:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 791, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2595:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2533:82:5" + }, + "payable": false, + "returnParameters": { + "id": 802, + "nodeType": "ParameterList", + "parameters": [], + "src": "2721:0:5" + }, + "scope": 925, + "src": "2514:826:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 866, + "nodeType": "Block", + "src": "3876:182:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 851, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "3971:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 854, + "indexExpression": { + "argumentTypes": null, + "id": 852, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "3980:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3971:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 855, + "indexExpression": { + "argumentTypes": null, + "id": 853, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "3995:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3971:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 862, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "4041:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 856, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4005:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 858, + "indexExpression": { + "argumentTypes": null, + "id": 857, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "4014:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4005:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 860, + "indexExpression": { + "argumentTypes": null, + "id": 859, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "4029:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4005:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4005:35:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4005:46:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3971:80:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 865, + "nodeType": "ExpressionStatement", + "src": "3971:80:5" + } + ] + }, + "documentation": null, + "id": 867, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 846, + "modifierName": { + "argumentTypes": null, + "id": 845, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "3828:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3828:14:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 848, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "3861:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 849, + "modifierName": { + "argumentTypes": null, + "id": 847, + "name": "isNonZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "3851:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3851:20:5" + } + ], + "name": "incrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 844, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 839, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 867, + "src": "3727:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3727:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 841, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 867, + "src": "3751:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3751:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 843, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 867, + "src": "3782:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 842, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3782:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3717:85:5" + }, + "payable": false, + "returnParameters": { + "id": 850, + "nodeType": "ParameterList", + "parameters": [], + "src": "3876:0:5" + }, + "scope": 925, + "src": "3689:369:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 907, + "nodeType": "Block", + "src": "4596:399:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 882, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4719:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 884, + "indexExpression": { + "argumentTypes": null, + "id": 883, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "4728:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4719:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 886, + "indexExpression": { + "argumentTypes": null, + "id": 885, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "4743:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4719:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 887, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "4754:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4719:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 889, + "name": "INSUFFICIENT_BALANCE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "4777:20:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 881, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "4698:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4698:109:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 891, + "nodeType": "ExpressionStatement", + "src": "4698:109:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 892, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4908:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 895, + "indexExpression": { + "argumentTypes": null, + "id": 893, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "4917:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4908:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 896, + "indexExpression": { + "argumentTypes": null, + "id": 894, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "4932:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4908:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 903, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "4978:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 897, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4942:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 899, + "indexExpression": { + "argumentTypes": null, + "id": 898, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "4951:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4942:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 901, + "indexExpression": { + "argumentTypes": null, + "id": 900, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "4966:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4942:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "4942:35:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4942:46:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4908:80:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 906, + "nodeType": "ExpressionStatement", + "src": "4908:80:5" + } + ] + }, + "documentation": null, + "id": 908, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 876, + "modifierName": { + "argumentTypes": null, + "id": 875, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "4548:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4548:14:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 878, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "4581:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "modifierName": { + "argumentTypes": null, + "id": 877, + "name": "isNonZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "4571:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4571:20:5" + } + ], + "name": "decrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 869, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 908, + "src": "4447:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 868, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4447:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 871, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 908, + "src": "4471:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 870, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4471:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 873, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 908, + "src": "4502:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 872, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4502:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4437:85:5" + }, + "payable": false, + "returnParameters": { + "id": 880, + "nodeType": "ParameterList", + "parameters": [], + "src": "4596:0:5" + }, + "scope": 925, + "src": "4409:586:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 923, + "nodeType": "Block", + "src": "5402:94:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 917, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "5458:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 919, + "indexExpression": { + "argumentTypes": null, + "id": 918, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "5467:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 921, + "indexExpression": { + "argumentTypes": null, + "id": 920, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 910, + "src": "5482:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 916, + "id": 922, + "nodeType": "Return", + "src": "5451:38:5" + } + ] + }, + "documentation": null, + "id": 924, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getOwnerBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 913, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 910, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "5290:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 909, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5290:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 912, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "5314:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 911, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5314:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5280:61:5" + }, + "payable": false, + "returnParameters": { + "id": 916, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 915, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "5389:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 914, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5389:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5388:9:5" + }, + "scope": 925, + "src": "5256:240:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 926, + "src": "995:4503:5" + } + ], + "src": "597:4902:5" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/Vault.sol", + "exportedSymbols": { + "Vault": [ + 925 + ] + }, + "id": 926, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 732, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:5" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "file": "../lib/Authorizable.sol", + "id": 734, + "nodeType": "ImportDirective", + "scope": 926, + "sourceUnit": 3323, + "src": "623:55:5", + "symbolAliases": [ + { + "foreign": 733, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 736, + "nodeType": "ImportDirective", + "scope": 926, + "sourceUnit": 4739, + "src": "679:73:5", + "symbolAliases": [ + { + "foreign": 735, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ERC20Wrapper.sol", + "file": "./lib/ERC20Wrapper.sol", + "id": 738, + "nodeType": "ImportDirective", + "scope": 926, + "sourceUnit": 2846, + "src": "753:54:5", + "symbolAliases": [ + { + "foreign": 737, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 739, + "name": "Authorizable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3322, + "src": "1017:12:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Authorizable_$3322", + "typeString": "contract Authorizable" + } + }, + "id": 740, + "nodeType": "InheritanceSpecifier", + "src": "1017:12:5" + } + ], + "contractDependencies": [ + 3322, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Vault\n@author Set Protocol\n * The vault contract is responsible for holding all funds and keeping track of the\nfund state and which Sets own which funds.\n ", + "fullyImplemented": true, + "id": 925, + "linearizedBaseContracts": [ + 925, + 3322, + 4824 + ], + "name": "Vault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 743, + "libraryName": { + "contractScope": null, + "id": 741, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1097:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1091:27:5", + "typeName": { + "id": 742, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1110:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 746, + "name": "INSUFFICIENT_BALANCE", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "1193:79:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1193:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5573657220646f6573206e6f7420686176652073756666696369656e742062616c616e63652e", + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1232:40:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9e045c08446df5c7607123c87ba2467001aac5f9593306a331b663952a9056f8", + "typeString": "literal_string \"User does not have sufficient balance.\"" + }, + "value": "User does not have sufficient balance." + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 752, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "1400:65:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 751, + "keyType": { + "id": 747, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1409:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1400:49:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 750, + "keyType": { + "id": 748, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1429:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1420:28:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1440:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 773, + "nodeType": "Block", + "src": "1628:180:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 757, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 754, + "src": "1685:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1700:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1692:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1692:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1685:17:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 756, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1677:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1677:26:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 763, + "nodeType": "ExpressionStatement", + "src": "1677:26:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 765, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 754, + "src": "1769:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 767, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5472, + "src": "1784:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + ], + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1776:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1776:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1769:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 764, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1761:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1761:29:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 771, + "nodeType": "ExpressionStatement", + "src": "1761:29:5" + }, + { + "id": 772, + "nodeType": "PlaceholderStatement", + "src": "1800:1:5" + } + ] + }, + "documentation": null, + "id": 774, + "name": "isValidDestination", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 754, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 774, + "src": "1615:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 753, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1615:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1614:13:5" + }, + "src": "1587:221:5", + "visibility": "internal" + }, + { + "body": { + "id": 785, + "nodeType": "Block", + "src": "1974:99:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 779, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 776, + "src": "2041:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2053:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2041:13:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 778, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2033:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2033:22:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 783, + "nodeType": "ExpressionStatement", + "src": "2033:22:5" + }, + { + "id": 784, + "nodeType": "PlaceholderStatement", + "src": "2065:1:5" + } + ] + }, + "documentation": null, + "id": 786, + "name": "isNonZero", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 776, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "1958:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 775, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1958:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1957:16:5" + }, + "src": "1939:134:5", + "visibility": "internal" + }, + { + "body": { + "id": 836, + "nodeType": "Block", + "src": "2721:619:5", + "statements": [ + { + "assignments": [ + 804 + ], + "declarations": [ + { + "constant": false, + "id": 804, + "name": "existingVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2790:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 803, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2790:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 810, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 807, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "2854:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 808, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5472, + "src": "2881:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + ], + "expression": { + "argumentTypes": null, + "id": 805, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2818:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "2818:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2818:77:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2790:105:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 814, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "3026:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 815, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "3053:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 816, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3070:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 811, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2991:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 2802, + "src": "2991:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2991:98:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 818, + "nodeType": "ExpressionStatement", + "src": "2991:98:5" + }, + { + "assignments": [ + 820 + ], + "declarations": [ + { + "constant": false, + "id": 820, + "name": "newVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "3160:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 819, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3160:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 826, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 823, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "3219:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 824, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5472, + "src": "3246:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + ], + "expression": { + "argumentTypes": null, + "id": 821, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "3183:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "3183:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3183:77:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3160:100:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 828, + "name": "newVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 820, + "src": "3278:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 831, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3322:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 829, + "name": "existingVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 804, + "src": "3297:20:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "3297:24:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3297:35:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3278:54:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 827, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "3270:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3270:63:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 835, + "nodeType": "ExpressionStatement", + "src": "3270:63:5" + } + ] + }, + "documentation": null, + "id": 837, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 795, + "modifierName": { + "argumentTypes": null, + "id": 794, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "2641:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2641:14:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 797, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "2674:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 798, + "modifierName": { + "argumentTypes": null, + "id": 796, + "name": "isNonZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "2664:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2664:20:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 800, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "2712:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 801, + "modifierName": { + "argumentTypes": null, + "id": 799, + "name": "isValidDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 774, + "src": "2693:18:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2693:23:5" + } + ], + "name": "withdrawTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 788, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2543:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 787, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2543:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 790, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2574:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 789, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2574:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 792, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2595:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 791, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2595:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2533:82:5" + }, + "payable": false, + "returnParameters": { + "id": 802, + "nodeType": "ParameterList", + "parameters": [], + "src": "2721:0:5" + }, + "scope": 925, + "src": "2514:826:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 866, + "nodeType": "Block", + "src": "3876:182:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 851, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "3971:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 854, + "indexExpression": { + "argumentTypes": null, + "id": 852, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "3980:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3971:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 855, + "indexExpression": { + "argumentTypes": null, + "id": 853, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "3995:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3971:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 862, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "4041:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 856, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4005:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 858, + "indexExpression": { + "argumentTypes": null, + "id": 857, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "4014:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4005:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 860, + "indexExpression": { + "argumentTypes": null, + "id": 859, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "4029:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4005:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4005:35:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4005:46:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3971:80:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 865, + "nodeType": "ExpressionStatement", + "src": "3971:80:5" + } + ] + }, + "documentation": null, + "id": 867, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 846, + "modifierName": { + "argumentTypes": null, + "id": 845, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "3828:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3828:14:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 848, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "3861:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 849, + "modifierName": { + "argumentTypes": null, + "id": 847, + "name": "isNonZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "3851:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3851:20:5" + } + ], + "name": "incrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 844, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 839, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 867, + "src": "3727:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3727:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 841, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 867, + "src": "3751:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3751:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 843, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 867, + "src": "3782:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 842, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3782:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3717:85:5" + }, + "payable": false, + "returnParameters": { + "id": 850, + "nodeType": "ParameterList", + "parameters": [], + "src": "3876:0:5" + }, + "scope": 925, + "src": "3689:369:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 907, + "nodeType": "Block", + "src": "4596:399:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 882, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4719:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 884, + "indexExpression": { + "argumentTypes": null, + "id": 883, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "4728:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4719:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 886, + "indexExpression": { + "argumentTypes": null, + "id": 885, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "4743:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4719:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 887, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "4754:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4719:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 889, + "name": "INSUFFICIENT_BALANCE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "4777:20:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 881, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "4698:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4698:109:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 891, + "nodeType": "ExpressionStatement", + "src": "4698:109:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 892, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4908:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 895, + "indexExpression": { + "argumentTypes": null, + "id": 893, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "4917:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4908:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 896, + "indexExpression": { + "argumentTypes": null, + "id": 894, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "4932:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4908:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 903, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "4978:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 897, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4942:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 899, + "indexExpression": { + "argumentTypes": null, + "id": 898, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "4951:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4942:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 901, + "indexExpression": { + "argumentTypes": null, + "id": 900, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "4966:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4942:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "4942:35:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4942:46:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4908:80:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 906, + "nodeType": "ExpressionStatement", + "src": "4908:80:5" + } + ] + }, + "documentation": null, + "id": 908, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 876, + "modifierName": { + "argumentTypes": null, + "id": 875, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "4548:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4548:14:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 878, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "4581:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "modifierName": { + "argumentTypes": null, + "id": 877, + "name": "isNonZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "4571:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4571:20:5" + } + ], + "name": "decrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 869, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 908, + "src": "4447:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 868, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4447:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 871, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 908, + "src": "4471:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 870, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4471:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 873, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 908, + "src": "4502:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 872, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4502:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4437:85:5" + }, + "payable": false, + "returnParameters": { + "id": 880, + "nodeType": "ParameterList", + "parameters": [], + "src": "4596:0:5" + }, + "scope": 925, + "src": "4409:586:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 923, + "nodeType": "Block", + "src": "5402:94:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 917, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "5458:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 919, + "indexExpression": { + "argumentTypes": null, + "id": 918, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "5467:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 921, + "indexExpression": { + "argumentTypes": null, + "id": 920, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 910, + "src": "5482:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 916, + "id": 922, + "nodeType": "Return", + "src": "5451:38:5" + } + ] + }, + "documentation": null, + "id": 924, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getOwnerBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 913, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 910, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "5290:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 909, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5290:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 912, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "5314:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 911, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5314:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5280:61:5" + }, + "payable": false, + "returnParameters": { + "id": 916, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 915, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "5389:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 914, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5389:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5388:9:5" + }, + "scope": 925, + "src": "5256:240:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 926, + "src": "995:4503:5" + } + ], + "src": "597:4902:5" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.892Z" +} \ No newline at end of file diff --git a/artifacts/json/ZeroExExchangeWrapper.json b/artifacts/json/ZeroExExchangeWrapper.json new file mode 100644 index 000000000..b7a6ad9d5 --- /dev/null +++ b/artifacts/json/ZeroExExchangeWrapper.json @@ -0,0 +1,664 @@ +{ + "contractName": "ZeroExExchangeWrapper", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "ZERO_EX_EXCHANGE", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ZERO_EX_PROXY", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": false, + "inputs": [ + { + "name": "tradeOriginator", + "type": "address" + }, + { + "name": "orderData", + "type": "bytes" + } + ], + "name": "exchange", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610287806100206000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680635da270fc1461005c578063881e142e14610087578063b6c8e453146100b0575b600080fd5b34801561006857600080fd5b506100716100db565b60405161007e91906101f2565b60405180910390f35b34801561009357600080fd5b506100ae60048036036100a9919081019061018b565b610100565b005b3480156100bc57600080fd5b506100c5610105565b6040516100d291906101f2565b60405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610137823561022d565b905092915050565b60008083601f840112151561015357600080fd5b8235905067ffffffffffffffff81111561016c57600080fd5b60208301915083600182028301111561018457600080fd5b9250929050565b6000806000604084860312156101a057600080fd5b60006101ae8682870161012b565b935050602084013567ffffffffffffffff8111156101cb57600080fd5b6101d78682870161013f565b92509250509250925092565b6101ec8161020d565b82525050565b600060208201905061020760008301846101e3565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff821690509190505600a265627a7a7230582044caa55fc1c15e7799632f2263d942805e5a3aa3cd31cc0ba034cd9976c6bc966c6578706572696d656e74616cf50037", + "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680635da270fc1461005c578063881e142e14610087578063b6c8e453146100b0575b600080fd5b34801561006857600080fd5b506100716100db565b60405161007e91906101f2565b60405180910390f35b34801561009357600080fd5b506100ae60048036036100a9919081019061018b565b610100565b005b3480156100bc57600080fd5b506100c5610105565b6040516100d291906101f2565b60405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610137823561022d565b905092915050565b60008083601f840112151561015357600080fd5b8235905067ffffffffffffffff81111561016c57600080fd5b60208301915083600182028301111561018457600080fd5b9250929050565b6000806000604084860312156101a057600080fd5b60006101ae8682870161012b565b935050602084013567ffffffffffffffff8111156101cb57600080fd5b6101d78682870161013f565b92509250509250925092565b6101ec8161020d565b82525050565b600060208201905061020760008301846101e3565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff821690509190505600a265627a7a7230582044caa55fc1c15e7799632f2263d942805e5a3aa3cd31cc0ba034cd9976c6bc966c6578706572696d656e74616cf50037", + "sourceMap": "1012:1106:12:-;;;1257:202;8:9:-1;5:2;;;30:1;27;20:12;5:2;1257:202:12;1012:1106;;;;;;", + "deployedSourceMap": "1012:1106:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1135:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1135:31:12;;;;;;;;;;;;;;;;;;;;1520:506;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1520:506:12;;;;;;;;;;;;;;;;;;;1172:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1172:28:12;;;;;;;;;;;;;;;;;;;;1135:31;;;;;;;;;;;;;:::o;1520:506::-;;;;:::o;1172:28::-;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;;57:66;;;;;144:335;;;258:3;251:4;243:6;239:17;235:27;228:35;225:2;;;276:1;273;266:12;225:2;309:6;296:20;286:30;;336:18;328:6;325:30;322:2;;;368:1;365;358:12;322:2;402:4;394:6;390:17;378:29;;452:3;445;437:6;433:16;423:8;419:31;416:40;413:2;;;469:1;466;459:12;413:2;218:261;;;;;;487:490;;;;627:2;615:9;606:7;602:23;598:32;595:2;;;643:1;640;633:12;595:2;678:1;695:53;740:7;731:6;720:9;716:22;695:53;;;685:63;;657:97;813:2;802:9;798:18;785:32;837:18;829:6;826:30;823:2;;;869:1;866;859:12;823:2;897:64;953:7;944:6;933:9;929:22;897:64;;;879:82;;;;764:203;589:388;;;;;;984:110;1057:31;1082:5;1057:31;;;1052:3;1045:44;1039:55;;;1101:193;;1209:2;1198:9;1194:18;1186:26;;1223:61;1281:1;1270:9;1266:17;1257:6;1223:61;;;1180:114;;;;;1301:128;;1381:42;1374:5;1370:54;1359:65;;1353:76;;;;1436:128;;1516:42;1509:5;1505:54;1494:65;;1488:76;;;", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\npragma experimental \"ABIEncoderV2\";\n\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { LibBytes } from \"../../external/LibBytes.sol\";\nimport { ZeroExOrderDataHandler as ZeroEx } from \"./lib/ZeroExOrderDataHandler.sol\";\n\n\n/**\n * @title ZeroExExchangeWrapper\n * @author Set Protocol\n *\n * The ZeroExExchangeWrapper contract wrapper to interface with 0x V2\n */\ncontract ZeroExExchangeWrapper\n{\n using SafeMath for uint256;\n\n /* ============ State Variables ============ */\n\n address public ZERO_EX_EXCHANGE;\n address public ZERO_EX_PROXY;\n\n\n /* ============ Constructor ============ */\n\n constructor(\n // address _zeroExExchange,\n // address _zeroExProxy,\n )\n public\n {\n // ZERO_EX_EXCHANGE = _zeroExExchange;\n // ZERO_EX_PROXY = _zeroExProxy;\n }\n\n\n /* ============ Public Functions ============ */\n\n function exchange(\n address tradeOriginator,\n bytes orderData\n )\n external\n // returns (uint256)\n {\n \n // Parse fill Amount\n // uint256 fillAmount = parseFillAmount(_orderData);\n\n // Slice the signature out.\n\n // Slice the Order\n\n // Construct the order\n // Order memory order = parseZeroExOrder(orderData);\n\n // Move the required takerToken into the wrapper\n\n // Ensure allowance\n\n\n // return 1;\n }\n\n /* ============ Getters ============ */\n\n /* ============ Private ============ */\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/ZeroExExchangeWrapper.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/ZeroExExchangeWrapper.sol", + "exportedSymbols": { + "ZeroExExchangeWrapper": [ + 2093 + ] + }, + "id": 2094, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2066, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:12" + }, + { + "id": 2067, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:12" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 2069, + "nodeType": "ImportDirective", + "scope": 2094, + "sourceUnit": 4739, + "src": "658:73:12", + "symbolAliases": [ + { + "foreign": 2068, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "file": "../../external/LibBytes.sol", + "id": 2071, + "nodeType": "ImportDirective", + "scope": 2094, + "sourceUnit": 3108, + "src": "732:55:12", + "symbolAliases": [ + { + "foreign": 2070, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/lib/ZeroExOrderDataHandler.sol", + "file": "./lib/ZeroExOrderDataHandler.sol", + "id": 2073, + "nodeType": "ImportDirective", + "scope": 2094, + "sourceUnit": 2331, + "src": "788:84:12", + "symbolAliases": [ + { + "foreign": 2072, + "local": "ZeroEx" + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ZeroExExchangeWrapper\n@author Set Protocol\n * The ZeroExExchangeWrapper contract wrapper to interface with 0x V2", + "fullyImplemented": true, + "id": 2093, + "linearizedBaseContracts": [ + 2093 + ], + "name": "ZeroExExchangeWrapper", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2076, + "libraryName": { + "contractScope": null, + "id": 2074, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1055:8:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1049:27:12", + "typeName": { + "id": 2075, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1068:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 2078, + "name": "ZERO_EX_EXCHANGE", + "nodeType": "VariableDeclaration", + "scope": 2093, + "src": "1135:31:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1135:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2080, + "name": "ZERO_EX_PROXY", + "nodeType": "VariableDeclaration", + "scope": 2093, + "src": "1172:28:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1172:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2083, + "nodeType": "Block", + "src": "1364:95:12", + "statements": [] + }, + "documentation": null, + "id": 2084, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2081, + "nodeType": "ParameterList", + "parameters": [], + "src": "1268:76:12" + }, + "payable": false, + "returnParameters": { + "id": 2082, + "nodeType": "ParameterList", + "parameters": [], + "src": "1364:0:12" + }, + "scope": 2093, + "src": "1257:202:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2091, + "nodeType": "Block", + "src": "1652:374:12", + "statements": [] + }, + "documentation": null, + "id": 2092, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "exchange", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2086, + "name": "tradeOriginator", + "nodeType": "VariableDeclaration", + "scope": 2092, + "src": "1547:23:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1547:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2088, + "name": "orderData", + "nodeType": "VariableDeclaration", + "scope": 2092, + "src": "1580:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2087, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1580:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1537:64:12" + }, + "payable": false, + "returnParameters": { + "id": 2090, + "nodeType": "ParameterList", + "parameters": [], + "src": "1652:0:12" + }, + "scope": 2093, + "src": "1520:506:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2094, + "src": "1012:1106:12" + } + ], + "src": "597:1522:12" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/ZeroExExchangeWrapper.sol", + "exportedSymbols": { + "ZeroExExchangeWrapper": [ + 2093 + ] + }, + "id": 2094, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2066, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:12" + }, + { + "id": 2067, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:12" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 2069, + "nodeType": "ImportDirective", + "scope": 2094, + "sourceUnit": 4739, + "src": "658:73:12", + "symbolAliases": [ + { + "foreign": 2068, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "file": "../../external/LibBytes.sol", + "id": 2071, + "nodeType": "ImportDirective", + "scope": 2094, + "sourceUnit": 3108, + "src": "732:55:12", + "symbolAliases": [ + { + "foreign": 2070, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/lib/ZeroExOrderDataHandler.sol", + "file": "./lib/ZeroExOrderDataHandler.sol", + "id": 2073, + "nodeType": "ImportDirective", + "scope": 2094, + "sourceUnit": 2331, + "src": "788:84:12", + "symbolAliases": [ + { + "foreign": 2072, + "local": "ZeroEx" + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ZeroExExchangeWrapper\n@author Set Protocol\n * The ZeroExExchangeWrapper contract wrapper to interface with 0x V2", + "fullyImplemented": true, + "id": 2093, + "linearizedBaseContracts": [ + 2093 + ], + "name": "ZeroExExchangeWrapper", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2076, + "libraryName": { + "contractScope": null, + "id": 2074, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1055:8:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1049:27:12", + "typeName": { + "id": 2075, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1068:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 2078, + "name": "ZERO_EX_EXCHANGE", + "nodeType": "VariableDeclaration", + "scope": 2093, + "src": "1135:31:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1135:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2080, + "name": "ZERO_EX_PROXY", + "nodeType": "VariableDeclaration", + "scope": 2093, + "src": "1172:28:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1172:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2083, + "nodeType": "Block", + "src": "1364:95:12", + "statements": [] + }, + "documentation": null, + "id": 2084, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2081, + "nodeType": "ParameterList", + "parameters": [], + "src": "1268:76:12" + }, + "payable": false, + "returnParameters": { + "id": 2082, + "nodeType": "ParameterList", + "parameters": [], + "src": "1364:0:12" + }, + "scope": 2093, + "src": "1257:202:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2091, + "nodeType": "Block", + "src": "1652:374:12", + "statements": [] + }, + "documentation": null, + "id": 2092, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "exchange", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2086, + "name": "tradeOriginator", + "nodeType": "VariableDeclaration", + "scope": 2092, + "src": "1547:23:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1547:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2088, + "name": "orderData", + "nodeType": "VariableDeclaration", + "scope": 2092, + "src": "1580:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2087, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1580:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1537:64:12" + }, + "payable": false, + "returnParameters": { + "id": 2090, + "nodeType": "ParameterList", + "parameters": [], + "src": "1652:0:12" + }, + "scope": 2093, + "src": "1520:506:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2094, + "src": "1012:1106:12" + } + ], + "src": "597:1522:12" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.902Z" +} \ No newline at end of file diff --git a/artifacts/json/ZeroExOrderDataHandler.json b/artifacts/json/ZeroExOrderDataHandler.json new file mode 100644 index 000000000..6b46e62b9 --- /dev/null +++ b/artifacts/json/ZeroExOrderDataHandler.json @@ -0,0 +1,6759 @@ +{ + "contractName": "ZeroExOrderDataHandler", + "abi": [], + "bytecode": "0x605a602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a265627a7a72305820813a43b32ba1377f9205b041ad4f4b0e8254867e61bca27a0d1a700a6682e6bf6c6578706572696d656e74616cf50037", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a265627a7a72305820813a43b32ba1377f9205b041ad4f4b0e8254867e61bca27a0d1a700a6682e6bf6c6578706572696d656e74616cf50037", + "sourceMap": "952:7273:13:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "952:7273:13:-;;;;;;;;", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\npragma experimental \"ABIEncoderV2\";\n\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { LibBytes } from \"../../../external/LibBytes.sol\";\n\n\n/**\n * @title ZeroExOrderDataHandler\n * @author Set Protocol\n *\n * This library contains functions and structs to assist with parsing exchange orders data\n */\nlibrary ZeroExOrderDataHandler {\n using SafeMath for uint256;\n using LibBytes for bytes;\n\n // ============ Structs ============\n\n struct Order {\n address makerAddress; // Address that created the order.\n address takerAddress; // Address that is allowed to fill the order.\n address feeRecipientAddress; // Address that will recieve fees when order is filled.\n address senderAddress; // Address that is allowed to call Exchange contract.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker.\n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker.\n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires.\n uint256 salt; // Number to facilitate uniqueness of the order's hash.\n bytes makerAssetData; // Encoded data when transferring makerAsset.\n bytes takerAssetData; // Encoded data when transferring takerAsset.\n }\n\n struct ZeroExHeader {\n uint256 signatureLength;\n uint256 orderLength;\n uint256 makerAssetDataLength;\n uint256 takerAssetDataLength;\n }\n\n // ============ Internal Functions ============\n\n // We construct the following to allow calling fillOrder on ZeroEx V2 Exchange\n // The layout of this orderData is in the table below.\n // \n // | Section | Data | Offset | Length | Contents |\n // |---------|-----------------------|---------------------|-----------------|-------------------------------|\n // | Header | signatureLength | 0 | 32 | Num Bytes of 0x Signature |\n // | | orderLength | 32 | 32 | Num Bytes of 0x Order |\n // | | makerAssetDataLength | 64 | 32 | Num Bytes of maker asset data |\n // | | takerAssetDataLength | 96 | 32 | Num Bytes of taker asset data |\n // | Body | fillAmount | 128 | 32 | taker asset fill amouint |\n // | | signature | 160 | signatureLength | signature in bytes |\n // | | order | 160+signatureLength | orderLength | ZeroEx Order |\n\n /*\n * Parses the header of the orderData\n * Can only be called by authorized contracts.\n *\n * @param _orderData \n * @return ZeroExHeader\n */\n function parseOrderHeader(bytes _orderData)\n internal\n pure\n returns (ZeroExHeader)\n {\n ZeroExHeader memory header;\n\n uint256 orderDataAddr = _orderData.contentAddress();\n\n assembly {\n mstore(header, mload(orderDataAddr)) // signatureLength\n mstore(add(header, 32), mload(add(orderDataAddr, 32))) // orderLength\n mstore(add(header, 64), mload(add(orderDataAddr, 64))) // makerAssetDataLength\n mstore(add(header, 96), mload(add(orderDataAddr, 96))) // takerAssetDataLength\n }\n\n return header;\n }\n\n function parseFillAmount(bytes _orderData)\n internal\n pure\n returns (uint256)\n {\n uint256 orderDataAddr = _orderData.contentAddress();\n uint256 fillAmount;\n\n assembly {\n fillAmount := mload(add(orderDataAddr, 128))\n }\n\n return fillAmount;\n }\n\n function sliceSignature(bytes _orderData, uint _signatureLength)\n internal\n pure\n returns (bytes)\n {\n bytes memory signature = _orderData.slice(160, _signatureLength.add(160));\n return signature;\n }\n\n function sliceZeroExOrder(bytes _orderData, uint _signatureLength, uint _orderLength)\n internal\n pure\n returns (bytes)\n {\n uint256 orderDataAddr = _orderData.contentAddress();\n uint256 orderStartAddress = orderDataAddr.add(_signatureLength);\n bytes memory order = _orderData.slice(\n orderStartAddress,\n orderStartAddress.add(_orderLength)\n );\n return order;\n }\n\n function parseZeroExOrder(\n bytes _zeroExOrder,\n uint _makerAssetDataLength,\n uint _takerAssetDataLength\n )\n internal\n pure\n returns (Order memory)\n {\n Order memory order;\n uint256 orderDataAddr = _zeroExOrder.contentAddress();\n\n // | Data | Location | Length |\n // |----------------------------|----------|--------|\n // | maker | 0 | |\n // | taker | 32 | |\n // | feeRecipient | 64 | |\n // | senderAddress | 96 | |\n // | makerAssetAmount | 128 | |\n // | takerAssetAmount | 160 | |\n // | makerFee | 192 | |\n // | takerFee | 224 | |\n // | expirationUnixTimeStampSec | 256 | |\n // | salt | 288 | |\n // | makerAssetData | 320 | ** |\n // | takerAssetData | 320 + ** | *** |\n // ** - Maker Asset Data Length\n // *** - Taker Asset Data Length\n assembly {\n mstore(order, mload(orderDataAddr)) // maker\n mstore(add(order, 32), mload(add(orderDataAddr, 32))) // taker\n mstore(add(order, 64), mload(add(orderDataAddr, 64))) // feeRecipient\n mstore(add(order, 96), mload(add(orderDataAddr, 96))) // senderAddress\n mstore(add(order, 128), mload(add(orderDataAddr, 128))) // makerAssetAmount\n mstore(add(order, 160), mload(add(orderDataAddr, 160))) // takerAssetAmount\n mstore(add(order, 192), mload(add(orderDataAddr, 192))) // makerFee\n mstore(add(order, 224), mload(add(orderDataAddr, 224))) // takerFee\n mstore(add(order, 256), mload(add(orderDataAddr, 256))) // expirationUnixTimestampSec\n mstore(add(order, 288), mload(add(orderDataAddr, 288))) // salt\n }\n\n order.makerAssetData = _zeroExOrder.slice(320, _makerAssetDataLength.add(320));\n order.takerAssetData = _zeroExOrder.slice(\n _makerAssetDataLength.add(320),\n _makerAssetDataLength.add(320).add(_takerAssetDataLength)\n );\n\n return order; \n }\n\n function parseZeroExOrderData(bytes _orderData)\n internal\n pure\n returns(Order memory)\n {\n ZeroExHeader memory header = parseOrderHeader(_orderData);\n\n Order memory order = parseZeroExOrder(\n sliceZeroExOrder(_orderData, header.signatureLength, header.orderLength),\n header.makerAssetDataLength,\n header.takerAssetDataLength\n );\n\n return order;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/lib/ZeroExOrderDataHandler.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/lib/ZeroExOrderDataHandler.sol", + "exportedSymbols": { + "ZeroExOrderDataHandler": [ + 2330 + ] + }, + "id": 2331, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2095, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:13" + }, + { + "id": 2096, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:13" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 2098, + "nodeType": "ImportDirective", + "scope": 2331, + "sourceUnit": 4739, + "src": "658:73:13", + "symbolAliases": [ + { + "foreign": 2097, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "file": "../../../external/LibBytes.sol", + "id": 2100, + "nodeType": "ImportDirective", + "scope": 2331, + "sourceUnit": 3108, + "src": "732:58:13", + "symbolAliases": [ + { + "foreign": 2099, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title ZeroExOrderDataHandler\n@author Set Protocol\n * This library contains functions and structs to assist with parsing exchange orders data", + "fullyImplemented": true, + "id": 2330, + "linearizedBaseContracts": [ + 2330 + ], + "name": "ZeroExOrderDataHandler", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2103, + "libraryName": { + "contractScope": null, + "id": 2101, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "995:8:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "989:27:13", + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1008:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2106, + "libraryName": { + "contractScope": null, + "id": 2104, + "name": "LibBytes", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3107, + "src": "1027:8:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LibBytes_$3107", + "typeString": "library LibBytes" + } + }, + "nodeType": "UsingForDirective", + "src": "1021:25:13", + "typeName": { + "id": 2105, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1040:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + { + "canonicalName": "ZeroExOrderDataHandler.Order", + "id": 2131, + "members": [ + { + "constant": false, + "id": 2108, + "name": "makerAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1117:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1117:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2110, + "name": "takerAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1192:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1192:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2112, + "name": "feeRecipientAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1278:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1278:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2114, + "name": "senderAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1374:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1374:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2116, + "name": "makerAssetAmount", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1468:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1468:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "name": "takerAssetAmount", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1556:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2117, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1556:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "name": "makerFee", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1643:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1643:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2122, + "name": "takerFee", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1730:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1730:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2124, + "name": "expirationTimeSeconds", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1817:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2123, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1817:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2126, + "name": "salt", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1905:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2125, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1905:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2128, + "name": "makerAssetData", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "2001:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2127, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2001:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2130, + "name": "takerAssetData", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "2087:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2129, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2087:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Order", + "nodeType": "StructDefinition", + "scope": 2330, + "src": "1094:1076:13", + "visibility": "public" + }, + { + "canonicalName": "ZeroExOrderDataHandler.ZeroExHeader", + "id": 2140, + "members": [ + { + "constant": false, + "id": 2133, + "name": "signatureLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2206:23:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2206:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2135, + "name": "orderLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2239:19:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2239:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2137, + "name": "makerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2268:28:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2136, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2268:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2139, + "name": "takerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2306:28:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2138, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2306:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "ZeroExHeader", + "nodeType": "StructDefinition", + "scope": 2330, + "src": "2176:165:13", + "visibility": "public" + }, + { + "body": { + "id": 2159, + "nodeType": "Block", + "src": "3867:500:13", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2148, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3877:26:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 2147, + "name": "ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "3877:12:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2149, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3877:26:13" + }, + { + "assignments": [ + 2151 + ], + "declarations": [ + { + "constant": false, + "id": 2151, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3914:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2150, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3914:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2155, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2152, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2142, + "src": "3938:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "3938:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3938:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3914:51:13" + }, + { + "externalReferences": [ + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4006:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4029:13:13", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4087:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4110:13:13", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4169:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4192:13:13", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4260:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4283:13:13", + "valueSize": 1 + } + } + ], + "id": 2156, + "nodeType": "InlineAssembly", + "operations": "{\n mstore(header, mload(orderDataAddr))\n mstore(add(header, 32), mload(add(orderDataAddr, 32)))\n mstore(add(header, 64), mload(add(orderDataAddr, 64)))\n mstore(add(header, 96), mload(add(orderDataAddr, 96)))\n}", + "src": "3976:377:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2157, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "4354:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "functionReturnParameters": 2146, + "id": 2158, + "nodeType": "Return", + "src": "4347:13:13" + } + ] + }, + "documentation": null, + "id": 2160, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseOrderHeader", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2142, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3784:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2141, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3784:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3783:18:13" + }, + "payable": false, + "returnParameters": { + "id": 2146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2145, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3849:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 2144, + "name": "ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "3849:12:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3848:14:13" + }, + "scope": 2330, + "src": "3758:609:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2179, + "nodeType": "Block", + "src": "4476:211:13", + "statements": [ + { + "assignments": [ + 2168 + ], + "declarations": [ + { + "constant": false, + "id": 2168, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4486:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4486:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2172, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2169, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2162, + "src": "4510:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "4510:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4510:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4486:51:13" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2174, + "name": "fillAmount", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4547:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4547:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2175, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "4547:18:13" + }, + { + "externalReferences": [ + { + "fillAmount": { + "declaration": 2174, + "isOffset": false, + "isSlot": false, + "src": "4599:10:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2168, + "isOffset": false, + "isSlot": false, + "src": "4623:13:13", + "valueSize": 1 + } + } + ], + "id": 2176, + "nodeType": "InlineAssembly", + "operations": "{\n fillAmount := mload(add(orderDataAddr, 128))\n}", + "src": "4576:93:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2177, + "name": "fillAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2174, + "src": "4670:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2166, + "id": 2178, + "nodeType": "Return", + "src": "4663:17:13" + } + ] + }, + "documentation": null, + "id": 2180, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseFillAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2162, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4398:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2161, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4398:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4397:18:13" + }, + "payable": false, + "returnParameters": { + "id": 2166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2165, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4463:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2164, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4463:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4462:9:13" + }, + "scope": 2330, + "src": "4373:314:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2202, + "nodeType": "Block", + "src": "4816:116:13", + "statements": [ + { + "assignments": [ + 2190 + ], + "declarations": [ + { + "constant": false, + "id": 2190, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4826:22:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2189, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4826:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "313630", + "id": 2193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4868:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "313630", + "id": 2196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4894:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + } + ], + "expression": { + "argumentTypes": null, + "id": 2194, + "name": "_signatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2184, + "src": "4873:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4873:20:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4873:25:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2191, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2182, + "src": "4851:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "4851:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4851:48:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4826:73:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2200, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2190, + "src": "4916:9:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2188, + "id": 2201, + "nodeType": "Return", + "src": "4909:16:13" + } + ] + }, + "documentation": null, + "id": 2203, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sliceSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2182, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4717:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2181, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4717:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2184, + "name": "_signatureLength", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4735:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2183, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4735:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4716:41:13" + }, + "payable": false, + "returnParameters": { + "id": 2188, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2187, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4805:5:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2186, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4805:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4804:7:13" + }, + "scope": 2330, + "src": "4693:239:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2240, + "nodeType": "Block", + "src": "5082:300:13", + "statements": [ + { + "assignments": [ + 2215 + ], + "declarations": [ + { + "constant": false, + "id": 2215, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5092:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2214, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5092:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2219, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2216, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2205, + "src": "5116:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "5116:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5116:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5092:51:13" + }, + { + "assignments": [ + 2221 + ], + "declarations": [ + { + "constant": false, + "id": 2221, + "name": "orderStartAddress", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5153:25:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2220, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5153:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2226, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2224, + "name": "_signatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2207, + "src": "5199:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2222, + "name": "orderDataAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2215, + "src": "5181:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "5181:17:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5181:35:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5153:63:13" + }, + { + "assignments": [ + 2228 + ], + "declarations": [ + { + "constant": false, + "id": 2228, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5226:18:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2227, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5226:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2237, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2231, + "name": "orderStartAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "5277:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2234, + "name": "_orderLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2209, + "src": "5330:12:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2232, + "name": "orderStartAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "5308:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "5308:21:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5308:35:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2229, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2205, + "src": "5247:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "5247:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5247:106:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5226:127:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2238, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2228, + "src": "5370:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2213, + "id": 2239, + "nodeType": "Return", + "src": "5363:12:13" + } + ] + }, + "documentation": null, + "id": 2241, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sliceZeroExOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2210, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2205, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "4964:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2204, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4964:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2207, + "name": "_signatureLength", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "4982:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2206, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4982:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2209, + "name": "_orderLength", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5005:17:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2208, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5005:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4963:60:13" + }, + "payable": false, + "returnParameters": { + "id": 2213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2212, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5071:5:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2211, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5071:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5070:7:13" + }, + "scope": 2330, + "src": "4938:444:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2296, + "nodeType": "Block", + "src": "5585:2197:13", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2253, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5595:18:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2252, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "5595:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2254, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "5595:18:13" + }, + { + "assignments": [ + 2256 + ], + "declarations": [ + { + "constant": false, + "id": 2256, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5623:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5623:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2260, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2257, + "name": "_zeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "5647:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "5647:27:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5647:29:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5623:53:13" + }, + { + "externalReferences": [ + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6666:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6689:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6738:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6761:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6815:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6838:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7161:5:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6899:5:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6984:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6922:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7073:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7096:13:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7008:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7419:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7442:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7241:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7184:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7321:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7264:13:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7344:13:13", + "valueSize": 1 + } + } + ], + "id": 2261, + "nodeType": "InlineAssembly", + "operations": "{\n mstore(order, mload(orderDataAddr))\n mstore(add(order, 32), mload(add(orderDataAddr, 32)))\n mstore(add(order, 64), mload(add(orderDataAddr, 64)))\n mstore(add(order, 96), mload(add(orderDataAddr, 96)))\n mstore(add(order, 128), mload(add(orderDataAddr, 128)))\n mstore(add(order, 160), mload(add(orderDataAddr, 160)))\n mstore(add(order, 192), mload(add(orderDataAddr, 192)))\n mstore(add(order, 224), mload(add(orderDataAddr, 224)))\n mstore(add(order, 256), mload(add(orderDataAddr, 256)))\n mstore(add(order, 288), mload(add(orderDataAddr, 288)))\n}", + "src": "6636:860:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2262, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2253, + "src": "7491:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 2264, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "makerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2128, + "src": "7491:20:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7533:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7564:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + } + ], + "expression": { + "argumentTypes": null, + "id": 2268, + "name": "_makerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "7538:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7538:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7538:30:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2265, + "name": "_zeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "7514:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "7514:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7514:55:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "7491:78:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "id": 2274, + "nodeType": "ExpressionStatement", + "src": "7491:78:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2275, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2253, + "src": "7579:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 2277, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "takerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2130, + "src": "7579:20:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7660:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + } + ], + "expression": { + "argumentTypes": null, + "id": 2280, + "name": "_makerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "7634:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7634:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:30:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2289, + "name": "_takerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2247, + "src": "7713:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7704:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + } + ], + "expression": { + "argumentTypes": null, + "id": 2284, + "name": "_makerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "7678:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7678:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7678:30:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7678:34:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7678:57:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2278, + "name": "_zeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "7602:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "7602:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7602:143:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "7579:166:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "id": 2293, + "nodeType": "ExpressionStatement", + "src": "7579:166:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2294, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2253, + "src": "7763:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "functionReturnParameters": 2251, + "id": 2295, + "nodeType": "Return", + "src": "7756:12:13" + } + ] + }, + "documentation": null, + "id": 2297, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseZeroExOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2243, + "name": "_zeroExOrder", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5423:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2242, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5423:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2245, + "name": "_makerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5451:26:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2244, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5451:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2247, + "name": "_takerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5487:26:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2246, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5487:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5413:106:13" + }, + "payable": false, + "returnParameters": { + "id": 2251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2250, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5567:5:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2249, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "5567:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5566:14:13" + }, + "scope": 2330, + "src": "5388:2394:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2328, + "nodeType": "Block", + "src": "7900:323:13", + "statements": [ + { + "assignments": [ + 2305 + ], + "declarations": [ + { + "constant": false, + "id": 2305, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7910:26:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 2304, + "name": "ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "7910:12:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2309, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2307, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2299, + "src": "7956:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2306, + "name": "parseOrderHeader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2160, + "src": "7939:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_ZeroExHeader_$2140_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.ZeroExHeader memory)" + } + }, + "id": 2308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7939:28:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7910:57:13" + }, + { + "assignments": [ + 2311 + ], + "declarations": [ + { + "constant": false, + "id": 2311, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7978:18:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2310, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "7978:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2325, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2314, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2299, + "src": "8046:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2315, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8058:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2316, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2133, + "src": "8058:22:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2317, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8082:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2135, + "src": "8082:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2313, + "name": "sliceZeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "8029:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8029:72:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2320, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8115:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2321, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2137, + "src": "8115:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2322, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8156:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2139, + "src": "8156:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2312, + "name": "parseZeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2297, + "src": "7999:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Order_$2131_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (struct ZeroExOrderDataHandler.Order memory)" + } + }, + "id": 2324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7999:194:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7978:215:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2326, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "8211:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "functionReturnParameters": 2303, + "id": 2327, + "nodeType": "Return", + "src": "8204:12:13" + } + ] + }, + "documentation": null, + "id": 2329, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseZeroExOrderData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2299, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7818:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2298, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7818:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7817:18:13" + }, + "payable": false, + "returnParameters": { + "id": 2303, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2302, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7882:5:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2301, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "7882:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7881:14:13" + }, + "scope": 2330, + "src": "7788:435:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2331, + "src": "952:7273:13" + } + ], + "src": "597:7629:13" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/lib/ZeroExOrderDataHandler.sol", + "exportedSymbols": { + "ZeroExOrderDataHandler": [ + 2330 + ] + }, + "id": 2331, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2095, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:13" + }, + { + "id": 2096, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:13" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 2098, + "nodeType": "ImportDirective", + "scope": 2331, + "sourceUnit": 4739, + "src": "658:73:13", + "symbolAliases": [ + { + "foreign": 2097, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "file": "../../../external/LibBytes.sol", + "id": 2100, + "nodeType": "ImportDirective", + "scope": 2331, + "sourceUnit": 3108, + "src": "732:58:13", + "symbolAliases": [ + { + "foreign": 2099, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title ZeroExOrderDataHandler\n@author Set Protocol\n * This library contains functions and structs to assist with parsing exchange orders data", + "fullyImplemented": true, + "id": 2330, + "linearizedBaseContracts": [ + 2330 + ], + "name": "ZeroExOrderDataHandler", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2103, + "libraryName": { + "contractScope": null, + "id": 2101, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "995:8:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "989:27:13", + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1008:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2106, + "libraryName": { + "contractScope": null, + "id": 2104, + "name": "LibBytes", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3107, + "src": "1027:8:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LibBytes_$3107", + "typeString": "library LibBytes" + } + }, + "nodeType": "UsingForDirective", + "src": "1021:25:13", + "typeName": { + "id": 2105, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1040:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + { + "canonicalName": "ZeroExOrderDataHandler.Order", + "id": 2131, + "members": [ + { + "constant": false, + "id": 2108, + "name": "makerAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1117:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1117:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2110, + "name": "takerAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1192:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1192:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2112, + "name": "feeRecipientAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1278:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1278:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2114, + "name": "senderAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1374:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1374:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2116, + "name": "makerAssetAmount", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1468:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1468:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "name": "takerAssetAmount", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1556:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2117, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1556:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "name": "makerFee", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1643:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1643:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2122, + "name": "takerFee", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1730:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1730:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2124, + "name": "expirationTimeSeconds", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1817:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2123, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1817:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2126, + "name": "salt", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1905:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2125, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1905:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2128, + "name": "makerAssetData", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "2001:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2127, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2001:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2130, + "name": "takerAssetData", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "2087:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2129, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2087:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Order", + "nodeType": "StructDefinition", + "scope": 2330, + "src": "1094:1076:13", + "visibility": "public" + }, + { + "canonicalName": "ZeroExOrderDataHandler.ZeroExHeader", + "id": 2140, + "members": [ + { + "constant": false, + "id": 2133, + "name": "signatureLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2206:23:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2206:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2135, + "name": "orderLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2239:19:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2239:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2137, + "name": "makerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2268:28:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2136, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2268:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2139, + "name": "takerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2306:28:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2138, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2306:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "ZeroExHeader", + "nodeType": "StructDefinition", + "scope": 2330, + "src": "2176:165:13", + "visibility": "public" + }, + { + "body": { + "id": 2159, + "nodeType": "Block", + "src": "3867:500:13", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2148, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3877:26:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 2147, + "name": "ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "3877:12:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2149, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3877:26:13" + }, + { + "assignments": [ + 2151 + ], + "declarations": [ + { + "constant": false, + "id": 2151, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3914:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2150, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3914:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2155, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2152, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2142, + "src": "3938:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "3938:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3938:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3914:51:13" + }, + { + "externalReferences": [ + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4006:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4029:13:13", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4087:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4110:13:13", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4169:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4192:13:13", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4260:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4283:13:13", + "valueSize": 1 + } + } + ], + "id": 2156, + "nodeType": "InlineAssembly", + "operations": "{\n mstore(header, mload(orderDataAddr))\n mstore(add(header, 32), mload(add(orderDataAddr, 32)))\n mstore(add(header, 64), mload(add(orderDataAddr, 64)))\n mstore(add(header, 96), mload(add(orderDataAddr, 96)))\n}", + "src": "3976:377:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2157, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "4354:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "functionReturnParameters": 2146, + "id": 2158, + "nodeType": "Return", + "src": "4347:13:13" + } + ] + }, + "documentation": null, + "id": 2160, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseOrderHeader", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2142, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3784:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2141, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3784:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3783:18:13" + }, + "payable": false, + "returnParameters": { + "id": 2146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2145, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3849:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 2144, + "name": "ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "3849:12:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3848:14:13" + }, + "scope": 2330, + "src": "3758:609:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2179, + "nodeType": "Block", + "src": "4476:211:13", + "statements": [ + { + "assignments": [ + 2168 + ], + "declarations": [ + { + "constant": false, + "id": 2168, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4486:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4486:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2172, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2169, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2162, + "src": "4510:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "4510:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4510:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4486:51:13" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2174, + "name": "fillAmount", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4547:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4547:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2175, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "4547:18:13" + }, + { + "externalReferences": [ + { + "fillAmount": { + "declaration": 2174, + "isOffset": false, + "isSlot": false, + "src": "4599:10:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2168, + "isOffset": false, + "isSlot": false, + "src": "4623:13:13", + "valueSize": 1 + } + } + ], + "id": 2176, + "nodeType": "InlineAssembly", + "operations": "{\n fillAmount := mload(add(orderDataAddr, 128))\n}", + "src": "4576:93:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2177, + "name": "fillAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2174, + "src": "4670:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2166, + "id": 2178, + "nodeType": "Return", + "src": "4663:17:13" + } + ] + }, + "documentation": null, + "id": 2180, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseFillAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2162, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4398:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2161, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4398:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4397:18:13" + }, + "payable": false, + "returnParameters": { + "id": 2166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2165, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4463:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2164, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4463:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4462:9:13" + }, + "scope": 2330, + "src": "4373:314:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2202, + "nodeType": "Block", + "src": "4816:116:13", + "statements": [ + { + "assignments": [ + 2190 + ], + "declarations": [ + { + "constant": false, + "id": 2190, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4826:22:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2189, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4826:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "313630", + "id": 2193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4868:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "313630", + "id": 2196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4894:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + } + ], + "expression": { + "argumentTypes": null, + "id": 2194, + "name": "_signatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2184, + "src": "4873:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4873:20:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4873:25:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2191, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2182, + "src": "4851:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "4851:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4851:48:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4826:73:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2200, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2190, + "src": "4916:9:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2188, + "id": 2201, + "nodeType": "Return", + "src": "4909:16:13" + } + ] + }, + "documentation": null, + "id": 2203, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sliceSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2182, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4717:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2181, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4717:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2184, + "name": "_signatureLength", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4735:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2183, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4735:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4716:41:13" + }, + "payable": false, + "returnParameters": { + "id": 2188, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2187, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4805:5:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2186, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4805:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4804:7:13" + }, + "scope": 2330, + "src": "4693:239:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2240, + "nodeType": "Block", + "src": "5082:300:13", + "statements": [ + { + "assignments": [ + 2215 + ], + "declarations": [ + { + "constant": false, + "id": 2215, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5092:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2214, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5092:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2219, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2216, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2205, + "src": "5116:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "5116:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5116:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5092:51:13" + }, + { + "assignments": [ + 2221 + ], + "declarations": [ + { + "constant": false, + "id": 2221, + "name": "orderStartAddress", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5153:25:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2220, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5153:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2226, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2224, + "name": "_signatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2207, + "src": "5199:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2222, + "name": "orderDataAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2215, + "src": "5181:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "5181:17:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5181:35:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5153:63:13" + }, + { + "assignments": [ + 2228 + ], + "declarations": [ + { + "constant": false, + "id": 2228, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5226:18:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2227, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5226:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2237, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2231, + "name": "orderStartAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "5277:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2234, + "name": "_orderLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2209, + "src": "5330:12:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2232, + "name": "orderStartAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "5308:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "5308:21:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5308:35:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2229, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2205, + "src": "5247:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "5247:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5247:106:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5226:127:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2238, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2228, + "src": "5370:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2213, + "id": 2239, + "nodeType": "Return", + "src": "5363:12:13" + } + ] + }, + "documentation": null, + "id": 2241, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sliceZeroExOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2210, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2205, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "4964:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2204, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4964:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2207, + "name": "_signatureLength", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "4982:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2206, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4982:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2209, + "name": "_orderLength", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5005:17:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2208, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5005:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4963:60:13" + }, + "payable": false, + "returnParameters": { + "id": 2213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2212, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5071:5:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2211, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5071:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5070:7:13" + }, + "scope": 2330, + "src": "4938:444:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2296, + "nodeType": "Block", + "src": "5585:2197:13", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2253, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5595:18:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2252, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "5595:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2254, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "5595:18:13" + }, + { + "assignments": [ + 2256 + ], + "declarations": [ + { + "constant": false, + "id": 2256, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5623:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5623:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2260, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2257, + "name": "_zeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "5647:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "5647:27:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5647:29:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5623:53:13" + }, + { + "externalReferences": [ + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6666:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6689:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6738:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6761:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6815:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6838:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7161:5:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6899:5:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6984:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6922:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7073:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7096:13:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7008:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7419:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7442:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7241:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7184:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7321:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7264:13:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7344:13:13", + "valueSize": 1 + } + } + ], + "id": 2261, + "nodeType": "InlineAssembly", + "operations": "{\n mstore(order, mload(orderDataAddr))\n mstore(add(order, 32), mload(add(orderDataAddr, 32)))\n mstore(add(order, 64), mload(add(orderDataAddr, 64)))\n mstore(add(order, 96), mload(add(orderDataAddr, 96)))\n mstore(add(order, 128), mload(add(orderDataAddr, 128)))\n mstore(add(order, 160), mload(add(orderDataAddr, 160)))\n mstore(add(order, 192), mload(add(orderDataAddr, 192)))\n mstore(add(order, 224), mload(add(orderDataAddr, 224)))\n mstore(add(order, 256), mload(add(orderDataAddr, 256)))\n mstore(add(order, 288), mload(add(orderDataAddr, 288)))\n}", + "src": "6636:860:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2262, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2253, + "src": "7491:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 2264, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "makerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2128, + "src": "7491:20:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7533:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7564:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + } + ], + "expression": { + "argumentTypes": null, + "id": 2268, + "name": "_makerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "7538:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7538:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7538:30:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2265, + "name": "_zeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "7514:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "7514:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7514:55:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "7491:78:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "id": 2274, + "nodeType": "ExpressionStatement", + "src": "7491:78:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2275, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2253, + "src": "7579:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 2277, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "takerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2130, + "src": "7579:20:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7660:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + } + ], + "expression": { + "argumentTypes": null, + "id": 2280, + "name": "_makerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "7634:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7634:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:30:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2289, + "name": "_takerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2247, + "src": "7713:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7704:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + } + ], + "expression": { + "argumentTypes": null, + "id": 2284, + "name": "_makerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "7678:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7678:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7678:30:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7678:34:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7678:57:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2278, + "name": "_zeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "7602:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "7602:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7602:143:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "7579:166:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "id": 2293, + "nodeType": "ExpressionStatement", + "src": "7579:166:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2294, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2253, + "src": "7763:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "functionReturnParameters": 2251, + "id": 2295, + "nodeType": "Return", + "src": "7756:12:13" + } + ] + }, + "documentation": null, + "id": 2297, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseZeroExOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2243, + "name": "_zeroExOrder", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5423:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2242, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5423:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2245, + "name": "_makerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5451:26:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2244, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5451:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2247, + "name": "_takerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5487:26:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2246, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5487:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5413:106:13" + }, + "payable": false, + "returnParameters": { + "id": 2251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2250, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5567:5:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2249, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "5567:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5566:14:13" + }, + "scope": 2330, + "src": "5388:2394:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2328, + "nodeType": "Block", + "src": "7900:323:13", + "statements": [ + { + "assignments": [ + 2305 + ], + "declarations": [ + { + "constant": false, + "id": 2305, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7910:26:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 2304, + "name": "ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "7910:12:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2309, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2307, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2299, + "src": "7956:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2306, + "name": "parseOrderHeader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2160, + "src": "7939:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_ZeroExHeader_$2140_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.ZeroExHeader memory)" + } + }, + "id": 2308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7939:28:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7910:57:13" + }, + { + "assignments": [ + 2311 + ], + "declarations": [ + { + "constant": false, + "id": 2311, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7978:18:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2310, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "7978:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2325, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2314, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2299, + "src": "8046:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2315, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8058:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2316, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2133, + "src": "8058:22:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2317, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8082:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2135, + "src": "8082:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2313, + "name": "sliceZeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "8029:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8029:72:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2320, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8115:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2321, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2137, + "src": "8115:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2322, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8156:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2139, + "src": "8156:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2312, + "name": "parseZeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2297, + "src": "7999:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Order_$2131_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (struct ZeroExOrderDataHandler.Order memory)" + } + }, + "id": 2324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7999:194:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7978:215:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2326, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "8211:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "functionReturnParameters": 2303, + "id": 2327, + "nodeType": "Return", + "src": "8204:12:13" + } + ] + }, + "documentation": null, + "id": 2329, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseZeroExOrderData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2299, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7818:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2298, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7818:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7817:18:13" + }, + "payable": false, + "returnParameters": { + "id": 2303, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2302, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7882:5:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2301, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "7882:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7881:14:13" + }, + "scope": 2330, + "src": "7788:435:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2331, + "src": "952:7273:13" + } + ], + "src": "597:7629:13" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.902Z" +} \ No newline at end of file diff --git a/artifacts/ts/AddressArrayUtils.ts b/artifacts/ts/AddressArrayUtils.ts deleted file mode 100644 index 606ed8781..000000000 --- a/artifacts/ts/AddressArrayUtils.ts +++ /dev/null @@ -1,1626 +0,0 @@ -export const AddressArrayUtils = -{ - "contractName": "AddressArrayUtils", - "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582021feab37a61ca5d622bb6fc0363da0f2b804f572fe508e5d1562de186a3a2e0a0029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582021feab37a61ca5d622bb6fc0363da0f2b804f572fe508e5d1562de186a3a2e0a0029", - "sourceMap": "60:400:6:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "60:400:6:-;;;;;;;;", - "source": "pragma solidity 0.4.23;\n\n/**\n * @title AddressArrayUtil\n */\nlibrary AddressArrayUtils {\n function hasValue(address[] addresses, address value) internal returns (bool) {\n for (uint i = 0; i < addresses.length; i++) {\n if (addresses[i] == value) {\n return true;\n }\n }\n\n return false;\n }\n\n function removeByIndex(address[] storage a, uint256 index) internal returns (uint256) {\n a[index] = a[a.length - 1];\n a.length -= 1;\n }\n}", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/lib/AddressArrayUtils.sol", - "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/lib/AddressArrayUtils.sol", - "exportedSymbols": { - "AddressArrayUtils": [ - 1687 - ] - }, - "id": 1688, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1623, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title AddressArrayUtil", - "fullyImplemented": true, - "id": 1687, - "linearizedBaseContracts": [ - 1687 - ], - "name": "AddressArrayUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1657, - "nodeType": "Block", - "src": "168:144:6", - "statements": [ - { - "body": { - "id": 1653, - "nodeType": "Block", - "src": "218:71:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1644, - "name": "addresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1626, - "src": "230:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1646, - "indexExpression": { - "argumentTypes": null, - "id": 1645, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "240:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "230:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1647, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "246:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "230:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1652, - "nodeType": "IfStatement", - "src": "226:57:6", - "trueBody": { - "id": 1651, - "nodeType": "Block", - "src": "253:30:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "270:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1632, - "id": 1650, - "nodeType": "Return", - "src": "263:11:6" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1637, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "191:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1638, - "name": "addresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1626, - "src": "195:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "195:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "191:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1654, - "initializationExpression": { - "assignments": [ - 1634 - ], - "declarations": [ - { - "constant": false, - "id": 1634, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "179:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1633, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "179:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1636, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "188:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "179:10:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "213:3:6", - "subExpression": { - "argumentTypes": null, - "id": 1641, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "213:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1643, - "nodeType": "ExpressionStatement", - "src": "213:3:6" - }, - "nodeType": "ForStatement", - "src": "174:115:6" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "302:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 1632, - "id": 1656, - "nodeType": "Return", - "src": "295:12:6" - } - ] - }, - "documentation": null, - "id": 1658, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "hasValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1626, - "name": "addresses", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "108:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1624, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "108:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1625, - "length": null, - "nodeType": "ArrayTypeName", - "src": "108:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1628, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "129:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1627, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "129:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "107:36:6" - }, - "payable": false, - "returnParameters": { - "id": 1632, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1631, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "162:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1630, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "162:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "161:6:6" - }, - "scope": 1687, - "src": "90:222:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1685, - "nodeType": "Block", - "src": "402:56:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1668, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "408:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1670, - "indexExpression": { - "argumentTypes": null, - "id": 1669, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1663, - "src": "410:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "408:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1671, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "419:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1676, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1672, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "421:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1673, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "421:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "432:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "421:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "419:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "408:26:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1678, - "nodeType": "ExpressionStatement", - "src": "408:26:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1679, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "440:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1681, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "440:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 1682, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "452:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "440:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1684, - "nodeType": "ExpressionStatement", - "src": "440:13:6" - } - ] - }, - "documentation": null, - "id": 1686, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1664, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1661, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 1686, - "src": "339:19:6", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1659, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "339:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1660, - "length": null, - "nodeType": "ArrayTypeName", - "src": "339:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1663, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1686, - "src": "360:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1662, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "360:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "338:36:6" - }, - "payable": false, - "returnParameters": { - "id": 1667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1666, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1686, - "src": "393:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "393:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "392:9:6" - }, - "scope": 1687, - "src": "316:142:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1688, - "src": "60:400:6" - } - ], - "src": "0:460:6" - }, - "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/lib/AddressArrayUtils.sol", - "exportedSymbols": { - "AddressArrayUtils": [ - 1687 - ] - }, - "id": 1688, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1623, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title AddressArrayUtil", - "fullyImplemented": true, - "id": 1687, - "linearizedBaseContracts": [ - 1687 - ], - "name": "AddressArrayUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1657, - "nodeType": "Block", - "src": "168:144:6", - "statements": [ - { - "body": { - "id": 1653, - "nodeType": "Block", - "src": "218:71:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1644, - "name": "addresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1626, - "src": "230:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1646, - "indexExpression": { - "argumentTypes": null, - "id": 1645, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "240:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "230:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1647, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "246:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "230:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1652, - "nodeType": "IfStatement", - "src": "226:57:6", - "trueBody": { - "id": 1651, - "nodeType": "Block", - "src": "253:30:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "270:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1632, - "id": 1650, - "nodeType": "Return", - "src": "263:11:6" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1637, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "191:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1638, - "name": "addresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1626, - "src": "195:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "195:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "191:20:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1654, - "initializationExpression": { - "assignments": [ - 1634 - ], - "declarations": [ - { - "constant": false, - "id": 1634, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "179:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1633, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "179:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1636, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "188:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "179:10:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "213:3:6", - "subExpression": { - "argumentTypes": null, - "id": 1641, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "213:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1643, - "nodeType": "ExpressionStatement", - "src": "213:3:6" - }, - "nodeType": "ForStatement", - "src": "174:115:6" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "302:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 1632, - "id": 1656, - "nodeType": "Return", - "src": "295:12:6" - } - ] - }, - "documentation": null, - "id": 1658, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "hasValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1626, - "name": "addresses", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "108:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1624, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "108:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1625, - "length": null, - "nodeType": "ArrayTypeName", - "src": "108:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1628, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "129:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1627, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "129:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "107:36:6" - }, - "payable": false, - "returnParameters": { - "id": 1632, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1631, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "162:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1630, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "162:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "161:6:6" - }, - "scope": 1687, - "src": "90:222:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1685, - "nodeType": "Block", - "src": "402:56:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1668, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "408:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1670, - "indexExpression": { - "argumentTypes": null, - "id": 1669, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1663, - "src": "410:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "408:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1671, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "419:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1676, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1672, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "421:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1673, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "421:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "432:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "421:12:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "419:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "408:26:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1678, - "nodeType": "ExpressionStatement", - "src": "408:26:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1679, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1661, - "src": "440:1:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 1681, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "440:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 1682, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "452:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "440:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1684, - "nodeType": "ExpressionStatement", - "src": "440:13:6" - } - ] - }, - "documentation": null, - "id": 1686, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "removeByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1664, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1661, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 1686, - "src": "339:19:6", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1659, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "339:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1660, - "length": null, - "nodeType": "ArrayTypeName", - "src": "339:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1663, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1686, - "src": "360:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1662, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "360:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "338:36:6" - }, - "payable": false, - "returnParameters": { - "id": 1667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1666, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1686, - "src": "393:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "393:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "392:9:6" - }, - "scope": 1687, - "src": "316:142:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1688, - "src": "60:400:6" - } - ], - "src": "0:460:6" - }, - "compiler": { - "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.578Z" -} \ No newline at end of file diff --git a/artifacts/ts/Authorizable.ts b/artifacts/ts/Authorizable.ts new file mode 100644 index 000000000..a27b91f15 --- /dev/null +++ b/artifacts/ts/Authorizable.ts @@ -0,0 +1,5643 @@ +export const Authorizable = +{ + "contractName": "Authorizable", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "authorities", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "authorized", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "authAddress", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AddressAuthorized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "addressRemoved", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AuthorizedAddressRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + } + ], + "name": "addAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + } + ], + "name": "removeAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "removeAuthorizedAddressAtIndex", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAuthorizedAddresses", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611246806100536000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342f1181e1461009e578063494503d4146100e1578063707129391461014e578063715018a6146101915780638da5cb5b146101a85780639ad26744146101ff578063b91816111461024c578063d39de6e9146102a7578063f2fde38b14610313575b600080fd5b3480156100aa57600080fd5b506100df600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610356565b005b3480156100ed57600080fd5b5061010c6004803603810190808035906020019092919050505061063f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561015a57600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061067d565b005b34801561019d57600080fd5b506101a6610a3d565b005b3480156101b457600080fd5b506101bd610b3f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b64565b005b34801561025857600080fd5b5061028d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fba565b604051808215151515815260200191505060405180910390f35b3480156102b357600080fd5b506102bc610fda565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102ff5780820151818401526020810190506102e4565b505050509050019250505060405180910390f35b34801561031f57600080fd5b50610354600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611068565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103b157600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e0000000000000000000000000000000000000000000000000000815250901515610504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156104c95780820151818401526020810190506104ae565b50505050905090810190601f1680156104f65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b60028181548110151561064e57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106da57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e00000000000000000000000000000000000000000000000000000000000081525090151561082c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107f15780820151818401526020810190506107d6565b50505050905090810190601f16801561081e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b600280549050811015610a39578173ffffffffffffffffffffffffffffffffffffffff166002828154811015156108b457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a2c57600260016002805490500381548110151561091257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660028281548110151561094c57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016002818180549050039150816109ac91906111c9565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2610a39565b8080600101915050610881565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a9857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bbf57600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e00000000000000000000000000000000000000000000000000815250901515610ccc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c91578082015181840152602081019050610c76565b50505050905090810190601f168015610cbe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff16600282815481101515610cf357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e00000000000000000000000000000000000000815250901515610e3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610dff578082015181840152602081019050610de4565b50505050905090810190601f168015610e2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690556002600160028054905003815481101515610ea157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282815481101515610edb57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610f3b91906111c9565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561105e57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611014575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110c357600080fd5b6110cc816110cf565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561110b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8154818355818111156111f0578183600052602060002091820191016111ef91906111f5565b5b505050565b61121791905b808211156112135760008160009055506001016111fb565b5090565b905600a165627a7a72305820d7fb29cc1c6469093ea5675676ed97672e7edfd8d12d8a2d28533baa698323a70029", + "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342f1181e1461009e578063494503d4146100e1578063707129391461014e578063715018a6146101915780638da5cb5b146101a85780639ad26744146101ff578063b91816111461024c578063d39de6e9146102a7578063f2fde38b14610313575b600080fd5b3480156100aa57600080fd5b506100df600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610356565b005b3480156100ed57600080fd5b5061010c6004803603810190808035906020019092919050505061063f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561015a57600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061067d565b005b34801561019d57600080fd5b506101a6610a3d565b005b3480156101b457600080fd5b506101bd610b3f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b64565b005b34801561025857600080fd5b5061028d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fba565b604051808215151515815260200191505060405180910390f35b3480156102b357600080fd5b506102bc610fda565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102ff5780820151818401526020810190506102e4565b505050509050019250505060405180910390f35b34801561031f57600080fd5b50610354600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611068565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103b157600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e0000000000000000000000000000000000000000000000000000815250901515610504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156104c95780820151818401526020810190506104ae565b50505050905090810190601f1680156104f65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b60028181548110151561064e57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106da57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e00000000000000000000000000000000000000000000000000000000000081525090151561082c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107f15780820151818401526020810190506107d6565b50505050905090810190601f16801561081e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b600280549050811015610a39578173ffffffffffffffffffffffffffffffffffffffff166002828154811015156108b457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a2c57600260016002805490500381548110151561091257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660028281548110151561094c57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016002818180549050039150816109ac91906111c9565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2610a39565b8080600101915050610881565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a9857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bbf57600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e00000000000000000000000000000000000000000000000000815250901515610ccc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c91578082015181840152602081019050610c76565b50505050905090810190601f168015610cbe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff16600282815481101515610cf357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e00000000000000000000000000000000000000815250901515610e3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610dff578082015181840152602081019050610de4565b50505050905090810190601f168015610e2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690556002600160028054905003815481101515610ea157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282815481101515610edb57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610f3b91906111c9565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561105e57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611014575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110c357600080fd5b6110cc816110cf565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561110b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8154818355818111156111f0578183600052602060002091820191016111ef91906111f5565b5b505050565b61121791905b808211156112135760008160009055506001016111fb565b5090565b905600a165627a7a72305820d7fb29cc1c6469093ea5675676ed97672e7edfd8d12d8a2d28533baa698323a70029", + "sourceMap": "963:4845:3:-;;;575:10:5;567:5;;:18;;;;;;;;;;;;;;;;;;963:4845:3;;;;;;", + "deployedSourceMap": "963:4845:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2599:558;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2599:558:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;1721:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1721:28:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3324:980;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3324:980:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:5;;;;;;238:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:5;;;;;;;;;;;;;;;;;;;;;;;;;;;4571:939:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4571:939:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1634:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1634:43:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5620:186:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5620:186:3;;;;;;;;;;;;;;;;;1100:103:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;2599:558:3;719:5:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2779:10:3;:23;2790:11;2779:23;;;;;;;;;;;;;;;;;;;;;;;;;2778:24;2816:25;;;;;;;;;;;;;;;;;;;;;;;2757:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2757:94:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2929:4;2903:10;:23;2914:11;2903:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;2988:11;3005;2988:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2988:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3105:11;3074:76;;;3130:10;3074:76;;;;;;;;;;;;;;;;;;;;;;2599:558;:::o;1721:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3324:980::-;3664:6;719:5:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;3489:10:3;:23;3500:11;3489:23;;;;;;;;;;;;;;;;;;;;;;;;;3526:21;;;;;;;;;;;;;;;;;;;;;;;3468:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3468:89:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3625:10;:23;3636:11;3625:23;;;;;;;;;;;;;;;;3618:30;;;;;;;;;;;3673:1;3664:10;;3659:639;3680:11;:18;;;;3676:1;:22;3659:639;;;3812:11;3794:29;;:11;3806:1;3794:14;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;3790:498;;;3938:11;3971:1;3950:11;:18;;;;:22;3938:35;;;;;;;;;;;;;;;;;;;;;;;;;;;3921:11;3933:1;3921:14;;;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;4062:1;4040:11;:23;;;;;;;;;;;;;;:::i;:::-;;4189:11;4143:107;;;4222:10;4143:107;;;;;;;;;;;;;;;;;;;;;;4268:5;;3790:498;3700:3;;;;;;;3659:639;;;3324:980;;:::o;827:111:5:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;238:20::-;;;;;;;;;;;;;:::o;4571:939:3:-;719:5:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;4809:11:3;:18;;;;4800:6;:27;4841:19;;;;;;;;;;;;;;;;;;;;;;;4779:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4779:91:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4999:11;4976:34;;:11;4988:6;4976:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;5024:22;;;;;;;;;;;;;;;;;;;;;;;4955:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4955:101:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5124:10;:23;5135:11;5124:23;;;;;;;;;;;;;;;;5117:30;;;;;;;;;;;5245:11;5278:1;5257:11;:18;;;;:22;5245:35;;;;;;;;;;;;;;;;;;;;;;;;;;;5223:11;5235:6;5223:19;;;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;5355:1;5333:11;:23;;;;;;;;;;;;;;:::i;:::-;;5458:11;5420:83;;;5483:10;5420:83;;;;;;;;;;;;;;;;;;;;;;4571:939;;:::o;1634:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;5620:186::-;5701:9;5788:11;5781:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186;:::o;1100:103:5:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1338:171::-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o;963:4845:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { Ownable } from \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n\n/**\n * @title Authorizable\n * @author Set Protocol\n *\n * The Authorizable contract is an inherited contract that sets permissions on certain function calls\n * through the onlyAuthorized modifier. Permissions can be managed only by the Owner of the contract.\n */\ncontract Authorizable is\n Ownable\n{\n\n /* ============ Constants ============ */\n\n // Error messages\n string constant SENDER_NOT_AUTHORIZED = \"Sender not authorized to call this method.\";\n string constant TARGET_NOT_AUTHORIZED = \"Target address must be authorized.\";\n string constant TARGET_ALREADY_AUTHORIZED = \"Target must not already be authorized.\";\n string constant INDEX_OUT_OF_BOUNDS = \"Specified array index is out of bounds.\";\n string constant INDEX_ADDRESS_MISMATCH = \"Address found at index does not match target.\";\n\n /* ============ State Variables ============ */\n\n // Mapping of addresses to bool indicator of authorization\n mapping (address => bool) public authorized;\n\n // Array of authorized addresses\n address[] public authorities;\n\n /* ============ Modifiers ============ */\n\n // Only authorized addresses can invoke functions with this modifier.\n modifier onlyAuthorized {\n require(\n authorized[msg.sender],\n SENDER_NOT_AUTHORIZED\n );\n _;\n }\n\n /* ============ Events ============ */\n\n // Event emitted when new address is authorized.\n event AddressAuthorized (\n address indexed authAddress,\n address authorizedBy\n );\n\n // Event emitted when address is deauthorized.\n event AuthorizedAddressRemoved (\n address indexed addressRemoved,\n address authorizedBy\n );\n\n /* ============ Setters ============ */\n\n /**\n * Add authorized address to contract. Can only be set by owner.\n *\n * @param _authTarget The address of the new authorized contract\n */\n\n function addAuthorizedAddress(address _authTarget)\n external\n onlyOwner\n {\n // Require that address is not already authorized\n require(\n !authorized[_authTarget],\n TARGET_ALREADY_AUTHORIZED\n );\n\n // Set address authority to true\n authorized[_authTarget] = true;\n\n // Add address to authorities array\n authorities.push(_authTarget);\n\n // Emit authorized address event\n emit AddressAuthorized(\n _authTarget,\n msg.sender\n );\n }\n\n /**\n * Remove authorized address from contract. Can only be set by owner.\n *\n * @param _authTarget The address to be de-permissioned\n */\n\n function removeAuthorizedAddress(address _authTarget)\n external\n onlyOwner\n {\n // Require address is authorized\n require(\n authorized[_authTarget],\n TARGET_NOT_AUTHORIZED\n );\n\n // Delete address from authorized mapping\n delete authorized[_authTarget];\n\n for (uint i = 0; i < authorities.length; i++) {\n\n // Check if address in authorities matches target address\n if (authorities[i] == _authTarget) {\n\n // Set target address index value to address at end of array\n authorities[i] = authorities[authorities.length - 1];\n\n // Delete last address in array\n authorities.length -= 1;\n\n // Emit AuthorizedAddressRemoved event.\n emit AuthorizedAddressRemoved(\n _authTarget,\n msg.sender\n );\n break;\n }\n }\n }\n\n /**\n * More efficiently remove authorized address from contract. Can only be set by owner.\n *\n * @param _authTarget The address to be de-permissioned\n * @param _index The index of the _authTarget address in authorities\n */\n\n function removeAuthorizedAddressAtIndex(\n address _authTarget,\n uint256 _index\n )\n external\n onlyOwner\n {\n // Require index is less than length of authorities\n require(\n _index < authorities.length,\n INDEX_OUT_OF_BOUNDS\n );\n\n // Require address at index of authorities matches target address\n require(\n authorities[_index] == _authTarget,\n INDEX_ADDRESS_MISMATCH\n );\n\n // Delete address from authorized mapping\n delete authorized[_authTarget];\n\n // Replace address at index with address at end of array\n authorities[_index] = authorities[authorities.length - 1];\n\n // Remove last address from array\n authorities.length -= 1;\n\n // Emit AuthorizedAddressRemoved event.\n emit AuthorizedAddressRemoved(\n _authTarget,\n msg.sender\n );\n }\n\n /* ============ Getters ============ */\n\n /**\n * Get array of authorized addresses.\n */\n\n function getAuthorizedAddresses()\n external\n view\n returns (address[] memory)\n {\n // Return array of authorized addresses\n return authorities;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "exportedSymbols": { + "Authorizable": [ + 789 + ] + }, + "id": 790, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 576, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:3" + }, + { + "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 578, + "nodeType": "ImportDirective", + "scope": 790, + "sourceUnit": 970, + "src": "622:76:3", + "symbolAliases": [ + { + "foreign": 577, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 579, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 969, + "src": "992:7:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$969", + "typeString": "contract Ownable" + } + }, + "id": 580, + "nodeType": "InheritanceSpecifier", + "src": "992:7:3" + } + ], + "contractDependencies": [ + 969 + ], + "contractKind": "contract", + "documentation": "@title Authorizable\n@author Set Protocol\n * The Authorizable contract is an inherited contract that sets permissions on certain function calls\nthrough the onlyAuthorized modifier. Permissions can be managed only by the Owner of the contract.", + "fullyImplemented": true, + "id": 789, + "linearizedBaseContracts": [ + 789, + 969 + ], + "name": "Authorizable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 583, + "name": "SENDER_NOT_AUTHORIZED", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1076:84:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 581, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1076:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53656e646572206e6f7420617574686f72697a656420746f2063616c6c2074686973206d6574686f642e", + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1116:44:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10199b21ebf84935aea33a882c0275c251121b4f5714541946187192f7438169", + "typeString": "literal_string \"Sender not authorized to call this method.\"" + }, + "value": "Sender not authorized to call this method." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 586, + "name": "TARGET_NOT_AUTHORIZED", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1166:76:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 584, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1166:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5461726765742061646472657373206d75737420626520617574686f72697a65642e", + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1206:36:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_366140ba62d6876f8f5ac81ce449a05cc217fd70a2a6c4fe20968a2c9a7459fa", + "typeString": "literal_string \"Target address must be authorized.\"" + }, + "value": "Target address must be authorized." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 589, + "name": "TARGET_ALREADY_AUTHORIZED", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1248:84:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 587, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1248:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "546172676574206d757374206e6f7420616c726561647920626520617574686f72697a65642e", + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1292:40:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a33a2795a8a1f2c72bcb412f76b44eb9cb4c52e6a307350a3f6ddaeb1809efd7", + "typeString": "literal_string \"Target must not already be authorized.\"" + }, + "value": "Target must not already be authorized." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 592, + "name": "INDEX_OUT_OF_BOUNDS", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1338:79:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 590, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1338:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53706563696669656420617272617920696e646578206973206f7574206f6620626f756e64732e", + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1376:41:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1638541c6ab382534775b3e33e4efa6ebe87533c9f35a0f2f538e2ab60ef9410", + "typeString": "literal_string \"Specified array index is out of bounds.\"" + }, + "value": "Specified array index is out of bounds." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 595, + "name": "INDEX_ADDRESS_MISMATCH", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1423:88:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 593, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1423:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "4164647265737320666f756e6420617420696e64657820646f6573206e6f74206d61746368207461726765742e", + "id": 594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1464:47:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8c3cba7e3f322cab1ee42269305798e851a629466be226218b19fcb7d615b25c", + "typeString": "literal_string \"Address found at index does not match target.\"" + }, + "value": "Address found at index does not match target." + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 599, + "name": "authorized", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1634:43:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 598, + "keyType": { + "id": 596, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1643:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1634:25:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 597, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1654:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 602, + "name": "authorities", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1721:28:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1721:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 601, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1721:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 613, + "nodeType": "Block", + "src": "1901:116:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 605, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "1932:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 608, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 606, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "1943:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1943:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1932:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 609, + "name": "SENDER_NOT_AUTHORIZED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 583, + "src": "1968:21:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 604, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "1911:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1911:88:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 611, + "nodeType": "ExpressionStatement", + "src": "1911:88:3" + }, + { + "id": 612, + "nodeType": "PlaceholderStatement", + "src": "2009:1:3" + } + ] + }, + "documentation": null, + "id": 614, + "name": "onlyAuthorized", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 603, + "nodeType": "ParameterList", + "parameters": [], + "src": "1901:0:3" + }, + "src": "1877:140:3", + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 620, + "name": "AddressAuthorized", + "nodeType": "EventDefinition", + "parameters": { + "id": 619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 616, + "indexed": true, + "name": "authAddress", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "2154:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 615, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2154:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 618, + "indexed": false, + "name": "authorizedBy", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "2191:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 617, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2191:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2144:73:3" + }, + "src": "2120:98:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 626, + "name": "AuthorizedAddressRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 625, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "indexed": true, + "name": "addressRemoved", + "nodeType": "VariableDeclaration", + "scope": 626, + "src": "2316:30:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2316:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 624, + "indexed": false, + "name": "authorizedBy", + "nodeType": "VariableDeclaration", + "scope": 626, + "src": "2356:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2356:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2306:76:3" + }, + "src": "2275:108:3" + }, + { + "body": { + "id": 659, + "nodeType": "Block", + "src": "2689:468:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2778:24:3", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 634, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "2779:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 636, + "indexExpression": { + "argumentTypes": null, + "id": 635, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "2790:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2779:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 638, + "name": "TARGET_ALREADY_AUTHORIZED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 589, + "src": "2816:25:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 633, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "2757:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2757:94:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 640, + "nodeType": "ExpressionStatement", + "src": "2757:94:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 641, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "2903:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 643, + "indexExpression": { + "argumentTypes": null, + "id": 642, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "2914:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2903:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2929:4:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2903:30:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 646, + "nodeType": "ExpressionStatement", + "src": "2903:30:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 650, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "3005:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 647, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "2988:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2988:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2988:29:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 652, + "nodeType": "ExpressionStatement", + "src": "2988:29:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 654, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "3105:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 655, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "3130:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3130:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 653, + "name": "AddressAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 620, + "src": "3074:17:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3074:76:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 658, + "nodeType": "EmitStatement", + "src": "3069:81:3" + } + ] + }, + "documentation": "Add authorized address to contract. Can only be set by owner.\n * @param _authTarget The address of the new authorized contract", + "id": 660, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 631, + "modifierName": { + "argumentTypes": null, + "id": 630, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "2675:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2675:9:3" + } + ], + "name": "addAuthorizedAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 628, + "name": "_authTarget", + "nodeType": "VariableDeclaration", + "scope": 660, + "src": "2629:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2629:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2628:21:3" + }, + "payable": false, + "returnParameters": { + "id": 632, + "nodeType": "ParameterList", + "parameters": [], + "src": "2689:0:3" + }, + "scope": 789, + "src": "2599:558:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 723, + "nodeType": "Block", + "src": "3417:887:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 668, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "3489:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 670, + "indexExpression": { + "argumentTypes": null, + "id": 669, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "3500:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3489:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 671, + "name": "TARGET_NOT_AUTHORIZED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "3526:21:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 667, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "3468:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3468:89:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 673, + "nodeType": "ExpressionStatement", + "src": "3468:89:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "3618:30:3", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 674, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "3625:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 676, + "indexExpression": { + "argumentTypes": null, + "id": 675, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "3636:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3625:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 678, + "nodeType": "ExpressionStatement", + "src": "3618:30:3" + }, + { + "body": { + "id": 721, + "nodeType": "Block", + "src": "3705:593:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 690, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3794:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 692, + "indexExpression": { + "argumentTypes": null, + "id": 691, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3806:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3794:14:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 693, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "3812:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3794:29:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 720, + "nodeType": "IfStatement", + "src": "3790:498:3", + "trueBody": { + "id": 719, + "nodeType": "Block", + "src": "3825:463:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 695, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3921:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 697, + "indexExpression": { + "argumentTypes": null, + "id": 696, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3933:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3921:14:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 698, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3938:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 703, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 699, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3950:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 700, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3950:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3971:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3950:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3938:35:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3921:52:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 705, + "nodeType": "ExpressionStatement", + "src": "3921:52:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 706, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "4040:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 708, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4040:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4062:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4040:23:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 711, + "nodeType": "ExpressionStatement", + "src": "4040:23:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 713, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "4189:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 714, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "4222:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4222:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 712, + "name": "AuthorizedAddressRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "4143:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4143:107:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 717, + "nodeType": "EmitStatement", + "src": "4138:112:3" + }, + { + "id": 718, + "nodeType": "Break", + "src": "4268:5:3" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 683, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3676:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 684, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3680:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 685, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3680:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3676:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 722, + "initializationExpression": { + "assignments": [ + 680 + ], + "declarations": [ + { + "constant": false, + "id": 680, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "3664:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 679, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3664:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 682, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3673:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3664:10:3" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3700:3:3", + "subExpression": { + "argumentTypes": null, + "id": 687, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3700:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 689, + "nodeType": "ExpressionStatement", + "src": "3700:3:3" + }, + "nodeType": "ForStatement", + "src": "3659:639:3" + } + ] + }, + "documentation": "Remove authorized address from contract. Can only be set by owner.\n * @param _authTarget The address to be de-permissioned", + "id": 724, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 665, + "modifierName": { + "argumentTypes": null, + "id": 664, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "3403:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3403:9:3" + } + ], + "name": "removeAuthorizedAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 662, + "name": "_authTarget", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "3357:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3357:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3356:21:3" + }, + "payable": false, + "returnParameters": { + "id": 666, + "nodeType": "ParameterList", + "parameters": [], + "src": "3417:0:3" + }, + "scope": 789, + "src": "3324:980:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 778, + "nodeType": "Block", + "src": "4709:801:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 734, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "4800:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 735, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "4809:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 736, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4809:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4800:27:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 738, + "name": "INDEX_OUT_OF_BOUNDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "4841:19:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 733, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "4779:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4779:91:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 740, + "nodeType": "ExpressionStatement", + "src": "4779:91:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 742, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "4976:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 744, + "indexExpression": { + "argumentTypes": null, + "id": 743, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "4988:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4976:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 745, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "4999:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4976:34:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 747, + "name": "INDEX_ADDRESS_MISMATCH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 595, + "src": "5024:22:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 741, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "4955:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4955:101:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 749, + "nodeType": "ExpressionStatement", + "src": "4955:101:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "5117:30:3", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 750, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "5124:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 752, + "indexExpression": { + "argumentTypes": null, + "id": 751, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "5135:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5124:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 754, + "nodeType": "ExpressionStatement", + "src": "5117:30:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 755, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5223:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 757, + "indexExpression": { + "argumentTypes": null, + "id": 756, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "5235:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5223:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 758, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5245:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 763, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 759, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5257:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 760, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5257:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5278:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5257:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5245:35:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5223:57:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 765, + "nodeType": "ExpressionStatement", + "src": "5223:57:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 766, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5333:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 768, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5333:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5355:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5333:23:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 771, + "nodeType": "ExpressionStatement", + "src": "5333:23:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 773, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "5458:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 774, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "5483:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5483:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 772, + "name": "AuthorizedAddressRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "5420:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5420:83:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 777, + "nodeType": "EmitStatement", + "src": "5415:88:3" + } + ] + }, + "documentation": "More efficiently remove authorized address from contract. Can only be set by owner.\n * @param _authTarget The address to be de-permissioned\n@param _index The index of the _authTarget address in authorities", + "id": 779, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 731, + "modifierName": { + "argumentTypes": null, + "id": 730, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "4695:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4695:9:3" + } + ], + "name": "removeAuthorizedAddressAtIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 726, + "name": "_authTarget", + "nodeType": "VariableDeclaration", + "scope": 779, + "src": "4620:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4620:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 728, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 779, + "src": "4649:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4649:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4610:59:3" + }, + "payable": false, + "returnParameters": { + "id": 732, + "nodeType": "ParameterList", + "parameters": [], + "src": "4709:0:3" + }, + "scope": 789, + "src": "4571:939:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 787, + "nodeType": "Block", + "src": "5723:83:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 785, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5788:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 784, + "id": 786, + "nodeType": "Return", + "src": "5781:18:3" + } + ] + }, + "documentation": "Get array of authorized addresses.", + "id": 788, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getAuthorizedAddresses", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [], + "src": "5651:2:3" + }, + "payable": false, + "returnParameters": { + "id": 784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 783, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "5701:9:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 781, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5701:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 782, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5701:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5700:18:3" + }, + "scope": 789, + "src": "5620:186:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 790, + "src": "963:4845:3" + } + ], + "src": "597:5212:3" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "exportedSymbols": { + "Authorizable": [ + 789 + ] + }, + "id": 790, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 576, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:3" + }, + { + "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 578, + "nodeType": "ImportDirective", + "scope": 790, + "sourceUnit": 970, + "src": "622:76:3", + "symbolAliases": [ + { + "foreign": 577, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 579, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 969, + "src": "992:7:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$969", + "typeString": "contract Ownable" + } + }, + "id": 580, + "nodeType": "InheritanceSpecifier", + "src": "992:7:3" + } + ], + "contractDependencies": [ + 969 + ], + "contractKind": "contract", + "documentation": "@title Authorizable\n@author Set Protocol\n * The Authorizable contract is an inherited contract that sets permissions on certain function calls\nthrough the onlyAuthorized modifier. Permissions can be managed only by the Owner of the contract.", + "fullyImplemented": true, + "id": 789, + "linearizedBaseContracts": [ + 789, + 969 + ], + "name": "Authorizable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 583, + "name": "SENDER_NOT_AUTHORIZED", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1076:84:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 581, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1076:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53656e646572206e6f7420617574686f72697a656420746f2063616c6c2074686973206d6574686f642e", + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1116:44:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10199b21ebf84935aea33a882c0275c251121b4f5714541946187192f7438169", + "typeString": "literal_string \"Sender not authorized to call this method.\"" + }, + "value": "Sender not authorized to call this method." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 586, + "name": "TARGET_NOT_AUTHORIZED", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1166:76:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 584, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1166:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5461726765742061646472657373206d75737420626520617574686f72697a65642e", + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1206:36:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_366140ba62d6876f8f5ac81ce449a05cc217fd70a2a6c4fe20968a2c9a7459fa", + "typeString": "literal_string \"Target address must be authorized.\"" + }, + "value": "Target address must be authorized." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 589, + "name": "TARGET_ALREADY_AUTHORIZED", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1248:84:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 587, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1248:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "546172676574206d757374206e6f7420616c726561647920626520617574686f72697a65642e", + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1292:40:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a33a2795a8a1f2c72bcb412f76b44eb9cb4c52e6a307350a3f6ddaeb1809efd7", + "typeString": "literal_string \"Target must not already be authorized.\"" + }, + "value": "Target must not already be authorized." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 592, + "name": "INDEX_OUT_OF_BOUNDS", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1338:79:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 590, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1338:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53706563696669656420617272617920696e646578206973206f7574206f6620626f756e64732e", + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1376:41:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1638541c6ab382534775b3e33e4efa6ebe87533c9f35a0f2f538e2ab60ef9410", + "typeString": "literal_string \"Specified array index is out of bounds.\"" + }, + "value": "Specified array index is out of bounds." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 595, + "name": "INDEX_ADDRESS_MISMATCH", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1423:88:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 593, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1423:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "4164647265737320666f756e6420617420696e64657820646f6573206e6f74206d61746368207461726765742e", + "id": 594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1464:47:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8c3cba7e3f322cab1ee42269305798e851a629466be226218b19fcb7d615b25c", + "typeString": "literal_string \"Address found at index does not match target.\"" + }, + "value": "Address found at index does not match target." + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 599, + "name": "authorized", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1634:43:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 598, + "keyType": { + "id": 596, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1643:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1634:25:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 597, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1654:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 602, + "name": "authorities", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1721:28:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1721:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 601, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1721:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 613, + "nodeType": "Block", + "src": "1901:116:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 605, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "1932:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 608, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 606, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "1943:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1943:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1932:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 609, + "name": "SENDER_NOT_AUTHORIZED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 583, + "src": "1968:21:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 604, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "1911:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1911:88:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 611, + "nodeType": "ExpressionStatement", + "src": "1911:88:3" + }, + { + "id": 612, + "nodeType": "PlaceholderStatement", + "src": "2009:1:3" + } + ] + }, + "documentation": null, + "id": 614, + "name": "onlyAuthorized", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 603, + "nodeType": "ParameterList", + "parameters": [], + "src": "1901:0:3" + }, + "src": "1877:140:3", + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 620, + "name": "AddressAuthorized", + "nodeType": "EventDefinition", + "parameters": { + "id": 619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 616, + "indexed": true, + "name": "authAddress", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "2154:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 615, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2154:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 618, + "indexed": false, + "name": "authorizedBy", + "nodeType": "VariableDeclaration", + "scope": 620, + "src": "2191:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 617, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2191:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2144:73:3" + }, + "src": "2120:98:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 626, + "name": "AuthorizedAddressRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 625, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "indexed": true, + "name": "addressRemoved", + "nodeType": "VariableDeclaration", + "scope": 626, + "src": "2316:30:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2316:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 624, + "indexed": false, + "name": "authorizedBy", + "nodeType": "VariableDeclaration", + "scope": 626, + "src": "2356:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2356:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2306:76:3" + }, + "src": "2275:108:3" + }, + { + "body": { + "id": 659, + "nodeType": "Block", + "src": "2689:468:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2778:24:3", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 634, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "2779:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 636, + "indexExpression": { + "argumentTypes": null, + "id": 635, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "2790:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2779:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 638, + "name": "TARGET_ALREADY_AUTHORIZED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 589, + "src": "2816:25:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 633, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "2757:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2757:94:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 640, + "nodeType": "ExpressionStatement", + "src": "2757:94:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 641, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "2903:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 643, + "indexExpression": { + "argumentTypes": null, + "id": 642, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "2914:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2903:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2929:4:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2903:30:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 646, + "nodeType": "ExpressionStatement", + "src": "2903:30:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 650, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "3005:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 647, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "2988:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2988:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2988:29:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 652, + "nodeType": "ExpressionStatement", + "src": "2988:29:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 654, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 628, + "src": "3105:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 655, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "3130:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3130:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 653, + "name": "AddressAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 620, + "src": "3074:17:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3074:76:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 658, + "nodeType": "EmitStatement", + "src": "3069:81:3" + } + ] + }, + "documentation": "Add authorized address to contract. Can only be set by owner.\n * @param _authTarget The address of the new authorized contract", + "id": 660, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 631, + "modifierName": { + "argumentTypes": null, + "id": 630, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "2675:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2675:9:3" + } + ], + "name": "addAuthorizedAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 628, + "name": "_authTarget", + "nodeType": "VariableDeclaration", + "scope": 660, + "src": "2629:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2629:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2628:21:3" + }, + "payable": false, + "returnParameters": { + "id": 632, + "nodeType": "ParameterList", + "parameters": [], + "src": "2689:0:3" + }, + "scope": 789, + "src": "2599:558:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 723, + "nodeType": "Block", + "src": "3417:887:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 668, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "3489:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 670, + "indexExpression": { + "argumentTypes": null, + "id": 669, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "3500:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3489:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 671, + "name": "TARGET_NOT_AUTHORIZED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "3526:21:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 667, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "3468:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3468:89:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 673, + "nodeType": "ExpressionStatement", + "src": "3468:89:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "3618:30:3", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 674, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "3625:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 676, + "indexExpression": { + "argumentTypes": null, + "id": 675, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "3636:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3625:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 678, + "nodeType": "ExpressionStatement", + "src": "3618:30:3" + }, + { + "body": { + "id": 721, + "nodeType": "Block", + "src": "3705:593:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 690, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3794:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 692, + "indexExpression": { + "argumentTypes": null, + "id": 691, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3806:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3794:14:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 693, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "3812:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3794:29:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 720, + "nodeType": "IfStatement", + "src": "3790:498:3", + "trueBody": { + "id": 719, + "nodeType": "Block", + "src": "3825:463:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 695, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3921:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 697, + "indexExpression": { + "argumentTypes": null, + "id": 696, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3933:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3921:14:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 698, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3938:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 703, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 699, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3950:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 700, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3950:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3971:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3950:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3938:35:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3921:52:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 705, + "nodeType": "ExpressionStatement", + "src": "3921:52:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 706, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "4040:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 708, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4040:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4062:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4040:23:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 711, + "nodeType": "ExpressionStatement", + "src": "4040:23:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 713, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "4189:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 714, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "4222:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4222:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 712, + "name": "AuthorizedAddressRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "4143:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4143:107:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 717, + "nodeType": "EmitStatement", + "src": "4138:112:3" + }, + { + "id": 718, + "nodeType": "Break", + "src": "4268:5:3" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 683, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3676:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 684, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "3680:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 685, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3680:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3676:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 722, + "initializationExpression": { + "assignments": [ + 680 + ], + "declarations": [ + { + "constant": false, + "id": 680, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "3664:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 679, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3664:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 682, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3673:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3664:10:3" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3700:3:3", + "subExpression": { + "argumentTypes": null, + "id": 687, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 680, + "src": "3700:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 689, + "nodeType": "ExpressionStatement", + "src": "3700:3:3" + }, + "nodeType": "ForStatement", + "src": "3659:639:3" + } + ] + }, + "documentation": "Remove authorized address from contract. Can only be set by owner.\n * @param _authTarget The address to be de-permissioned", + "id": 724, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 665, + "modifierName": { + "argumentTypes": null, + "id": 664, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "3403:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3403:9:3" + } + ], + "name": "removeAuthorizedAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 662, + "name": "_authTarget", + "nodeType": "VariableDeclaration", + "scope": 724, + "src": "3357:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3357:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3356:21:3" + }, + "payable": false, + "returnParameters": { + "id": 666, + "nodeType": "ParameterList", + "parameters": [], + "src": "3417:0:3" + }, + "scope": 789, + "src": "3324:980:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 778, + "nodeType": "Block", + "src": "4709:801:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 734, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "4800:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 735, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "4809:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 736, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4809:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4800:27:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 738, + "name": "INDEX_OUT_OF_BOUNDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "4841:19:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 733, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "4779:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4779:91:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 740, + "nodeType": "ExpressionStatement", + "src": "4779:91:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 742, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "4976:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 744, + "indexExpression": { + "argumentTypes": null, + "id": 743, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "4988:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4976:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 745, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "4999:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4976:34:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 747, + "name": "INDEX_ADDRESS_MISMATCH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 595, + "src": "5024:22:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 741, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "4955:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4955:101:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 749, + "nodeType": "ExpressionStatement", + "src": "4955:101:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "5117:30:3", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 750, + "name": "authorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "5124:10:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 752, + "indexExpression": { + "argumentTypes": null, + "id": 751, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "5135:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5124:23:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 754, + "nodeType": "ExpressionStatement", + "src": "5117:30:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 755, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5223:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 757, + "indexExpression": { + "argumentTypes": null, + "id": 756, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "5235:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5223:19:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 758, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5245:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 763, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 759, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5257:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 760, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5257:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5278:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5257:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5245:35:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5223:57:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 765, + "nodeType": "ExpressionStatement", + "src": "5223:57:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 766, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5333:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 768, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5333:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5355:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5333:23:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 771, + "nodeType": "ExpressionStatement", + "src": "5333:23:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 773, + "name": "_authTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "5458:11:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 774, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "5483:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5483:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 772, + "name": "AuthorizedAddressRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "5420:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5420:83:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 777, + "nodeType": "EmitStatement", + "src": "5415:88:3" + } + ] + }, + "documentation": "More efficiently remove authorized address from contract. Can only be set by owner.\n * @param _authTarget The address to be de-permissioned\n@param _index The index of the _authTarget address in authorities", + "id": 779, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 731, + "modifierName": { + "argumentTypes": null, + "id": 730, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "4695:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4695:9:3" + } + ], + "name": "removeAuthorizedAddressAtIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 726, + "name": "_authTarget", + "nodeType": "VariableDeclaration", + "scope": 779, + "src": "4620:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4620:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 728, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 779, + "src": "4649:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4649:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4610:59:3" + }, + "payable": false, + "returnParameters": { + "id": 732, + "nodeType": "ParameterList", + "parameters": [], + "src": "4709:0:3" + }, + "scope": 789, + "src": "4571:939:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 787, + "nodeType": "Block", + "src": "5723:83:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 785, + "name": "authorities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "5788:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 784, + "id": 786, + "nodeType": "Return", + "src": "5781:18:3" + } + ] + }, + "documentation": "Get array of authorized addresses.", + "id": 788, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getAuthorizedAddresses", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [], + "src": "5651:2:3" + }, + "payable": false, + "returnParameters": { + "id": 784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 783, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "5701:9:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 781, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5701:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 782, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5701:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5700:18:3" + }, + "scope": 789, + "src": "5620:186:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 790, + "src": "963:4845:3" + } + ], + "src": "597:5212:3" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T15:28:53.737Z" +} \ No newline at end of file diff --git a/artifacts/ts/BadTokenMock.ts b/artifacts/ts/BadTokenMock.ts new file mode 100644 index 000000000..ba476ae09 --- /dev/null +++ b/artifacts/ts/BadTokenMock.ts @@ -0,0 +1,2423 @@ +export const BadTokenMock = +{ + "contractName": "BadTokenMock", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_addedValue", + "type": "uint256" + } + ], + "name": "increaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "initialAccount", + "type": "address" + }, + { + "name": "initialBalance", + "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405260126003553480156200001657600080fd5b50604051620013593803806200135983398101806040528101908080519060200190929190805190602001909291908051820192919060200180518201929190505050826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550826006819055508160049080519060200190620000bb929190620000df565b508060059080519060200190620000d4929190620000df565b50505050506200018e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200012257805160ff191683800117855562000153565b8280016001018555821562000153579182015b828111156200015257825182559160200191906001019062000135565b5b50905062000162919062000166565b5090565b6200018b91905b80821115620001875760008160009055506001016200016d565b5090565b90565b6111bb806200019e6000396000f3006080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a957806323b872dd146101d4578063313ce56714610259578063661884631461028457806370a08231146102e957806395d89b4114610340578063a9059cbb146103d0578063d73dd62314610435578063dd62ed3e1461049a575b600080fd5b3480156100c057600080fd5b506100c9610511565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105af565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be6106a1565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a7565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610a61565b6040518082815260200191505060405180910390f35b34801561029057600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a67565b604051808215151515815260200191505060405180910390f35b3480156102f557600080fd5b5061032a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf8565b6040518082815260200191505060405180910390f35b34801561034c57600080fd5b50610355610d40565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103dc57600080fd5b5061041b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dde565b604051808215151515815260200191505060405180910390f35b34801561044157600080fd5b50610480600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed7565b604051808215151515815260200191505060405180910390f35b3480156104a657600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d3565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105a75780601f1061057c576101008083540402835291602001916105a7565b820191906000526020600020905b81548152906001019060200180831161058a57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561073157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107bc57600080fd5b61080d826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461115a90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a0826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117390919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461115a90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b78576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c0c565b610b8b838261115a90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e1b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e6857600080fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000610f6882600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117390919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561116857fe5b818303905092915050565b6000818301905082811015151561118657fe5b809050929150505600a165627a7a7230582075f10e938327beab0a83cbb17ea36d29a6286a2c07930478caabfa9eeb66ce340029", + "deployedBytecode": "0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a957806323b872dd146101d4578063313ce56714610259578063661884631461028457806370a08231146102e957806395d89b4114610340578063a9059cbb146103d0578063d73dd62314610435578063dd62ed3e1461049a575b600080fd5b3480156100c057600080fd5b506100c9610511565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105af565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be6106a1565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a7565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610a61565b6040518082815260200191505060405180910390f35b34801561029057600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a67565b604051808215151515815260200191505060405180910390f35b3480156102f557600080fd5b5061032a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf8565b6040518082815260200191505060405180910390f35b34801561034c57600080fd5b50610355610d40565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103dc57600080fd5b5061041b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dde565b604051808215151515815260200191505060405180910390f35b34801561044157600080fd5b50610480600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed7565b604051808215151515815260200191505060405180910390f35b3480156104a657600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d3565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105a75780601f1061057c576101008083540402835291602001916105a7565b820191906000526020600020905b81548152906001019060200180831161058a57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561073157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107bc57600080fd5b61080d826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461115a90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a0826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117390919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461115a90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b78576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c0c565b610b8b838261115a90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e1b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e6857600080fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000610f6882600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117390919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561116857fe5b818303905092915050565b6000818301905082811015151561118657fe5b809050929150505600a165627a7a7230582075f10e938327beab0a83cbb17ea36d29a6286a2c07930478caabfa9eeb66ce340029", + "sourceMap": "127:825:29:-;;;196:2;170:28;;279:246;8:9:-1;5:2;;;30:1;27;20:12;5:2;279:246:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;432:14;405:8;:24;414:14;405:24;;;;;;;;;;;;;;;:41;;;;466:14;452:11;:28;;;;493:5;486:4;:12;;;;;;;;;;;;:::i;:::-;;513:7;504:6;:16;;;;;;;;;;;;:::i;:::-;;279:246;;;;127:825;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "127:825:29:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;202:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;202:18:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;202:18:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;248:26:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:26:29;;;;;;;;;;;;;;;;;;;;;;;736:470:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;170:28:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;170:28:29;;;;;;;;;;;;;;;;;;;;;;;3701:425:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;224:20:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;224:20:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;224:20:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;679:271;;8:9:-1;5:2;;;30:1;27;20:12;5:2;679:271:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;202:18:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:45:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;248:26:29:-;;;;:::o;736:470:45:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;170:28:29:-;;;;:::o;3701:425:45:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:40:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;224:20:29:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;679:271::-;742:4;777:1;762:17;;:3;:17;;;;754:26;;;;;;;;804:8;:20;813:10;804:20;;;;;;;;;;;;;;;;794:6;:30;;786:39;;;;;;;;916:3;895:33;;904:10;895:33;;;921:6;895:33;;;;;;;;;;;;;;;;;;941:4;934:11;;679:271;;;;:::o;2946:293:45:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "source": "pragma solidity 0.4.24;\n\n\nimport \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\n\n\n// mock class using BasicToken\ncontract BadTokenMock is StandardToken {\n uint256 public decimals = 18;\n string public name;\n string public symbol;\n uint256 public totalSupply;\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n }\n\n /**\n * @dev Transfer token for a specified address\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n require(_value <= balances[msg.sender]);\n\n // BAD TOKEN which does not update balances properly\n\n emit Transfer(msg.sender, _to, _value);\n return true;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/BadTokenMock.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/BadTokenMock.sol", + "exportedSymbols": { + "BadTokenMock": [ + 3429 + ] + }, + "id": 3430, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3350, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:29" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "id": 3351, + "nodeType": "ImportDirective", + "scope": 3430, + "sourceUnit": 5383, + "src": "26:67:29", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3352, + "name": "StandardToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5382, + "src": "152:13:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardToken_$5382", + "typeString": "contract StandardToken" + } + }, + "id": 3353, + "nodeType": "InheritanceSpecifier", + "src": "152:13:29" + } + ], + "contractDependencies": [ + 4920, + 4997, + 5029, + 5382 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3429, + "linearizedBaseContracts": [ + 3429, + 5382, + 4920, + 4997, + 5029 + ], + "name": "BadTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3356, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "170:28:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3354, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "170:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "196:2:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 3358, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "202:18:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3357, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "202:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3360, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "224:20:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3359, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "224:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3362, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "248:26:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3361, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "248:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 3391, + "nodeType": "Block", + "src": "399:126:29", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3373, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4837, + "src": "405:8:29", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3375, + "indexExpression": { + "argumentTypes": null, + "id": 3374, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "414:14:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "405:24:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3376, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "432:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "405:41:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3378, + "nodeType": "ExpressionStatement", + "src": "405:41:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 3381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3379, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3362 + ], + "referencedDeclaration": 3362, + "src": "452:11:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3380, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "466:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "452:28:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3382, + "nodeType": "ExpressionStatement", + "src": "452:28:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 3385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3383, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "486:4:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3384, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3368, + "src": "493:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "486:12:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3386, + "nodeType": "ExpressionStatement", + "src": "486:12:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 3389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3387, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3360, + "src": "504:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3388, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3370, + "src": "513:7:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "504:16:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3390, + "nodeType": "ExpressionStatement", + "src": "504:16:29" + } + ] + }, + "documentation": null, + "id": 3392, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3364, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "296:22:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "296:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3366, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "324:22:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "324:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3368, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "352:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3367, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "352:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3370, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "370:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3369, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "370:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "290:95:29" + }, + "payable": false, + "returnParameters": { + "id": 3372, + "nodeType": "ParameterList", + "parameters": [], + "src": "399:0:29" + }, + "scope": 3429, + "src": "279:246:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3427, + "nodeType": "Block", + "src": "748:202:29", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3402, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3394, + "src": "762:3:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "777:1:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "769:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "769:10:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "762:17:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3401, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "754:7:29", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "754:26:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3408, + "nodeType": "ExpressionStatement", + "src": "754:26:29" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3410, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "794:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3411, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4837, + "src": "804:8:29", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3414, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "813:3:29", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "813:10:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "804:20:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "794:30:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3409, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "786:7:29", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "786:39:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3417, + "nodeType": "ExpressionStatement", + "src": "786:39:29" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3419, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "904:3:29", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "904:10:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3421, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3394, + "src": "916:3:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3422, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "921:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3418, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5028, + "src": "895:8:29", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "895:33:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3424, + "nodeType": "EmitStatement", + "src": "890:38:29" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "941:4:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3400, + "id": 3426, + "nodeType": "Return", + "src": "934:11:29" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", + "id": 3428, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3394, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "697:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "697:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3396, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "710:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3395, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "710:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "696:29:29" + }, + "payable": false, + "returnParameters": { + "id": 3400, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3399, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "742:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3398, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "742:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "741:6:29" + }, + "scope": 3429, + "src": "679:271:29", + "stateMutability": "nonpayable", + "superFunction": 4907, + "visibility": "public" + } + ], + "scope": 3430, + "src": "127:825:29" + } + ], + "src": "0:953:29" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/BadTokenMock.sol", + "exportedSymbols": { + "BadTokenMock": [ + 3429 + ] + }, + "id": 3430, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3350, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:29" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "id": 3351, + "nodeType": "ImportDirective", + "scope": 3430, + "sourceUnit": 5383, + "src": "26:67:29", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3352, + "name": "StandardToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5382, + "src": "152:13:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardToken_$5382", + "typeString": "contract StandardToken" + } + }, + "id": 3353, + "nodeType": "InheritanceSpecifier", + "src": "152:13:29" + } + ], + "contractDependencies": [ + 4920, + 4997, + 5029, + 5382 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3429, + "linearizedBaseContracts": [ + 3429, + 5382, + 4920, + 4997, + 5029 + ], + "name": "BadTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3356, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "170:28:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3354, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "170:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "196:2:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 3358, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "202:18:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3357, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "202:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3360, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "224:20:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3359, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "224:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3362, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "248:26:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3361, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "248:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 3391, + "nodeType": "Block", + "src": "399:126:29", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3373, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4837, + "src": "405:8:29", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3375, + "indexExpression": { + "argumentTypes": null, + "id": 3374, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3364, + "src": "414:14:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "405:24:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3376, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "432:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "405:41:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3378, + "nodeType": "ExpressionStatement", + "src": "405:41:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 3381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3379, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3362 + ], + "referencedDeclaration": 3362, + "src": "452:11:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3380, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "466:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "452:28:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3382, + "nodeType": "ExpressionStatement", + "src": "452:28:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 3385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3383, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3358, + "src": "486:4:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3384, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3368, + "src": "493:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "486:12:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3386, + "nodeType": "ExpressionStatement", + "src": "486:12:29" + }, + { + "expression": { + "argumentTypes": null, + "id": 3389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3387, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3360, + "src": "504:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3388, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3370, + "src": "513:7:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "504:16:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3390, + "nodeType": "ExpressionStatement", + "src": "504:16:29" + } + ] + }, + "documentation": null, + "id": 3392, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3364, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "296:22:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "296:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3366, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "324:22:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "324:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3368, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "352:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3367, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "352:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3370, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "370:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3369, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "370:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "290:95:29" + }, + "payable": false, + "returnParameters": { + "id": 3372, + "nodeType": "ParameterList", + "parameters": [], + "src": "399:0:29" + }, + "scope": 3429, + "src": "279:246:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3427, + "nodeType": "Block", + "src": "748:202:29", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3402, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3394, + "src": "762:3:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "777:1:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "769:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "769:10:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "762:17:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3401, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "754:7:29", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "754:26:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3408, + "nodeType": "ExpressionStatement", + "src": "754:26:29" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3410, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "794:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3411, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4837, + "src": "804:8:29", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3414, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "813:3:29", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "813:10:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "804:20:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "794:30:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3409, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "786:7:29", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "786:39:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3417, + "nodeType": "ExpressionStatement", + "src": "786:39:29" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3419, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "904:3:29", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "904:10:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3421, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3394, + "src": "916:3:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3422, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "921:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3418, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5028, + "src": "895:8:29", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "895:33:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3424, + "nodeType": "EmitStatement", + "src": "890:38:29" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "941:4:29", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3400, + "id": 3426, + "nodeType": "Return", + "src": "934:11:29" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", + "id": 3428, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3394, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "697:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "697:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3396, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "710:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3395, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "710:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "696:29:29" + }, + "payable": false, + "returnParameters": { + "id": 3400, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3399, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "742:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3398, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "742:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "741:6:29" + }, + "scope": 3429, + "src": "679:271:29", + "stateMutability": "nonpayable", + "superFunction": 4907, + "visibility": "public" + } + ], + "scope": 3430, + "src": "127:825:29" + } + ], + "src": "0:953:29" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.908Z" +} \ No newline at end of file diff --git a/artifacts/ts/BasicToken.ts b/artifacts/ts/BasicToken.ts index 0e37d8e03..cbdc1aafb 100644 --- a/artifacts/ts/BasicToken.ts +++ b/artifacts/ts/BasicToken.ts @@ -81,24 +81,24 @@ export const BasicToken = "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610415806100206000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318160ddd1461005c57806370a0823114610087578063a9059cbb146100de575b600080fd5b34801561006857600080fd5b50610071610143565b6040518082815260200191505060405180910390f35b34801561009357600080fd5b506100c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061014d565b6040518082815260200191505060405180910390f35b3480156100ea57600080fd5b50610129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610195565b604051808215151515815260200191505060405180910390f35b6000600154905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156101d257600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561021f57600080fd5b610270826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103b490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610303826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103cd90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008282111515156103c257fe5b818303905092915050565b600081830190508281101515156103e057fe5b809050929150505600a165627a7a72305820a4c06576182303297aea4d90f3a343d50032f27c7bf8e5ba528beffd330205170029", - "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318160ddd1461005c57806370a0823114610087578063a9059cbb146100de575b600080fd5b34801561006857600080fd5b50610071610143565b6040518082815260200191505060405180910390f35b34801561009357600080fd5b506100c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061014d565b6040518082815260200191505060405180910390f35b3480156100ea57600080fd5b50610129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610195565b604051808215151515815260200191505060405180910390f35b6000600154905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156101d257600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561021f57600080fd5b610270826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103b490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610303826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103cd90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008282111515156103c257fe5b818303905092915050565b600081830190508281101515156103e057fe5b809050929150505600a165627a7a72305820a4c06576182303297aea4d90f3a343d50032f27c7bf8e5ba528beffd330205170029", - "sourceMap": "180:1053:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:1053:12;;;;;;;", - "deployedSourceMap": "180:1053:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:12;;;;;;;;;;;;;;;;;;;;;;;1131:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83;415:7;437:12;;430:19;;371:83;:::o;1131:99::-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;608:321::-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;1042:110:10:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "bytecode": "0x608060405234801561001057600080fd5b50610415806100206000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318160ddd1461005c57806370a0823114610087578063a9059cbb146100de575b600080fd5b34801561006857600080fd5b50610071610143565b6040518082815260200191505060405180910390f35b34801561009357600080fd5b506100c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061014d565b6040518082815260200191505060405180910390f35b3480156100ea57600080fd5b50610129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610195565b604051808215151515815260200191505060405180910390f35b6000600154905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156101d257600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561021f57600080fd5b610270826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103b490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610303826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103cd90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008282111515156103c257fe5b818303905092915050565b600081830190508281101515156103e057fe5b809050929150505600a165627a7a72305820717ee26c2d185ee20f70b45a52c71988fea16a8e7a672a33c03252a335817af10029", + "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318160ddd1461005c57806370a0823114610087578063a9059cbb146100de575b600080fd5b34801561006857600080fd5b50610071610143565b6040518082815260200191505060405180910390f35b34801561009357600080fd5b506100c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061014d565b6040518082815260200191505060405180910390f35b3480156100ea57600080fd5b50610129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610195565b604051808215151515815260200191505060405180910390f35b6000600154905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156101d257600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561021f57600080fd5b610270826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103b490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610303826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103cd90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008282111515156103c257fe5b818303905092915050565b600081830190508281101515156103e057fe5b809050929150505600a165627a7a72305820717ee26c2d185ee20f70b45a52c71988fea16a8e7a672a33c03252a335817af10029", + "sourceMap": "180:1053:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:1053:6;;;;;;;", + "deployedSourceMap": "180:1053:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:6;;;;;;;;;;;;;;;;;;;;;;;1131:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83;415:7;437:12;;430:19;;371:83;:::o;1131:99::-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;608:321::-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;1042:110:4:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", "source": "pragma solidity ^0.4.23;\n\n\nimport \"./ERC20Basic.sol\";\nimport \"../../math/SafeMath.sol\";\n\n\n/**\n * @title Basic token\n * @dev Basic version of StandardToken, with no allowances.\n */\ncontract BasicToken is ERC20Basic {\n using SafeMath for uint256;\n\n mapping(address => uint256) balances;\n\n uint256 totalSupply_;\n\n /**\n * @dev total number of tokens in existence\n */\n function totalSupply() public view returns (uint256) {\n return totalSupply_;\n }\n\n /**\n * @dev transfer token for a specified address\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n require(_value <= balances[msg.sender]);\n\n balances[msg.sender] = balances[msg.sender].sub(_value);\n balances[_to] = balances[_to].add(_value);\n emit Transfer(msg.sender, _to, _value);\n return true;\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param _owner The address to query the the balance of.\n * @return An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address _owner) public view returns (uint256) {\n return balances[_owner];\n }\n\n}\n", "sourcePath": "zeppelin-solidity/contracts/token/ERC20/BasicToken.sol", "ast": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/BasicToken.sol", "exportedSymbols": { "BasicToken": [ - 2337 + 1065 ] }, - "id": 2338, + "id": 1066, "nodeType": "SourceUnit", "nodes": [ { - "id": 2243, + "id": 971, "literals": [ "solidity", "^", @@ -106,27 +106,27 @@ export const BasicToken = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:12" + "src": "0:24:6" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "file": "./ERC20Basic.sol", - "id": 2244, + "id": 972, "nodeType": "ImportDirective", - "scope": 2338, - "sourceUnit": 2447, - "src": "27:26:12", + "scope": 1066, + "sourceUnit": 1175, + "src": "27:26:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "../../math/SafeMath.sol", - "id": 2245, + "id": 973, "nodeType": "ImportDirective", - "scope": 2338, - "sourceUnit": 2156, - "src": "54:33:12", + "scope": 1066, + "sourceUnit": 884, + "src": "54:33:6", "symbolAliases": [], "unitAlias": "" }, @@ -136,56 +136,56 @@ export const BasicToken = "arguments": null, "baseName": { "contractScope": null, - "id": 2246, + "id": 974, "name": "ERC20Basic", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2446, - "src": "203:10:12", + "referencedDeclaration": 1174, + "src": "203:10:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$2446", + "typeIdentifier": "t_contract$_ERC20Basic_$1174", "typeString": "contract ERC20Basic" } }, - "id": 2247, + "id": 975, "nodeType": "InheritanceSpecifier", - "src": "203:10:12" + "src": "203:10:6" } ], "contractDependencies": [ - 2446 + 1174 ], "contractKind": "contract", "documentation": "@title Basic token\n@dev Basic version of StandardToken, with no allowances.", "fullyImplemented": true, - "id": 2337, + "id": 1065, "linearizedBaseContracts": [ - 2337, - 2446 + 1065, + 1174 ], "name": "BasicToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2250, + "id": 978, "libraryName": { "contractScope": null, - "id": 2248, + "id": 976, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "224:8:12", + "referencedDeclaration": 883, + "src": "224:8:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", + "typeIdentifier": "t_contract$_SafeMath_$883", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "218:27:12", + "src": "218:27:6", "typeName": { - "id": 2249, + "id": 977, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "237:7:12", + "src": "237:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -194,11 +194,11 @@ export const BasicToken = }, { "constant": false, - "id": 2254, + "id": 982, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 2337, - "src": "249:36:12", + "scope": 1065, + "src": "249:36:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -206,28 +206,28 @@ export const BasicToken = "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 2253, + "id": 981, "keyType": { - "id": 2251, + "id": 979, "name": "address", "nodeType": "ElementaryTypeName", - "src": "257:7:12", + "src": "257:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "249:27:12", + "src": "249:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 2252, + "id": 980, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "268:7:12", + "src": "268:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -239,11 +239,11 @@ export const BasicToken = }, { "constant": false, - "id": 2256, + "id": 984, "name": "totalSupply_", "nodeType": "VariableDeclaration", - "scope": 2337, - "src": "290:20:12", + "scope": 1065, + "src": "290:20:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -251,10 +251,10 @@ export const BasicToken = "typeString": "uint256" }, "typeName": { - "id": 2255, + "id": 983, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "290:7:12", + "src": "290:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -265,33 +265,33 @@ export const BasicToken = }, { "body": { - "id": 2263, + "id": 991, "nodeType": "Block", - "src": "424:30:12", + "src": "424:30:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 2261, + "id": 989, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "437:12:12", + "referencedDeclaration": 984, + "src": "437:12:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2260, - "id": 2262, + "functionReturnParameters": 988, + "id": 990, "nodeType": "Return", - "src": "430:19:12" + "src": "430:19:6" } ] }, "documentation": "@dev total number of tokens in existence", - "id": 2264, + "id": 992, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -299,23 +299,23 @@ export const BasicToken = "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 2257, + "id": 985, "nodeType": "ParameterList", "parameters": [], - "src": "391:2:12" + "src": "391:2:6" }, "payable": false, "returnParameters": { - "id": 2260, + "id": 988, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2259, + "id": 987, "name": "", "nodeType": "VariableDeclaration", - "scope": 2264, - "src": "415:7:12", + "scope": 992, + "src": "415:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -323,10 +323,10 @@ export const BasicToken = "typeString": "uint256" }, "typeName": { - "id": 2258, + "id": 986, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "415:7:12", + "src": "415:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -336,19 +336,19 @@ export const BasicToken = "visibility": "internal" } ], - "src": "414:9:12" + "src": "414:9:6" }, - "scope": 2337, - "src": "371:83:12", + "scope": 1065, + "src": "371:83:6", "stateMutability": "view", - "superFunction": 2421, + "superFunction": 1149, "visibility": "public" }, { "body": { - "id": 2323, + "id": 1051, "nodeType": "Block", - "src": "677:252:12", + "src": "677:252:6", "statements": [ { "expression": { @@ -360,19 +360,19 @@ export const BasicToken = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2278, + "id": 1006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2274, + "id": 1002, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "691:3:12", + "referencedDeclaration": 994, + "src": "691:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -386,14 +386,14 @@ export const BasicToken = { "argumentTypes": null, "hexValue": "30", - "id": 2276, + "id": 1004, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "706:1:12", + "src": "706:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -409,20 +409,20 @@ export const BasicToken = "typeString": "int_const 0" } ], - "id": 2275, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "698:7:12", + "src": "698:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2277, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": true, @@ -430,13 +430,13 @@ export const BasicToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "698:10:12", + "src": "698:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "691:17:12", + "src": "691:17:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -450,21 +450,21 @@ export const BasicToken = "typeString": "bool" } ], - "id": 2273, + "id": 1001, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "683:7:12", + "referencedDeclaration": 1439, + "src": "683:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2279, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": false, @@ -472,15 +472,15 @@ export const BasicToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "683:26:12", + "src": "683:26:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2280, + "id": 1008, "nodeType": "ExpressionStatement", - "src": "683:26:12" + "src": "683:26:6" }, { "expression": { @@ -492,19 +492,19 @@ export const BasicToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2287, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2282, + "id": 1010, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "723:6:12", + "referencedDeclaration": 996, + "src": "723:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -516,34 +516,34 @@ export const BasicToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2283, + "id": 1011, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "733:8:12", + "referencedDeclaration": 982, + "src": "733:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2286, + "id": 1014, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2284, + "id": 1012, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "742:3:12", + "referencedDeclaration": 1436, + "src": "742:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2285, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, @@ -551,7 +551,7 @@ export const BasicToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "742:10:12", + "src": "742:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -562,13 +562,13 @@ export const BasicToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "733:20:12", + "src": "733:20:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "723:30:12", + "src": "723:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -582,21 +582,21 @@ export const BasicToken = "typeString": "bool" } ], - "id": 2281, + "id": 1009, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "715:7:12", + "referencedDeclaration": 1439, + "src": "715:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2288, + "id": 1016, "isConstant": false, "isLValue": false, "isPure": false, @@ -604,20 +604,20 @@ export const BasicToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "715:39:12", + "src": "715:39:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2289, + "id": 1017, "nodeType": "ExpressionStatement", - "src": "715:39:12" + "src": "715:39:6" }, { "expression": { "argumentTypes": null, - "id": 2301, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, @@ -626,34 +626,34 @@ export const BasicToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2290, + "id": 1018, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "761:8:12", + "referencedDeclaration": 982, + "src": "761:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2293, + "id": 1021, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2291, + "id": 1019, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "770:3:12", + "referencedDeclaration": 1436, + "src": "770:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2292, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": false, @@ -661,7 +661,7 @@ export const BasicToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "770:10:12", + "src": "770:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -672,7 +672,7 @@ export const BasicToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "761:20:12", + "src": "761:20:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -685,12 +685,12 @@ export const BasicToken = "arguments": [ { "argumentTypes": null, - "id": 2299, + "id": 1027, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "809:6:12", + "referencedDeclaration": 996, + "src": "809:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -708,34 +708,34 @@ export const BasicToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2294, + "id": 1022, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "784:8:12", + "referencedDeclaration": 982, + "src": "784:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2297, + "id": 1025, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2295, + "id": 1023, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "793:3:12", + "referencedDeclaration": 1436, + "src": "793:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2296, + "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, @@ -743,7 +743,7 @@ export const BasicToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "793:10:12", + "src": "793:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -754,27 +754,27 @@ export const BasicToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "784:20:12", + "src": "784:20:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2298, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "784:24:12", + "referencedDeclaration": 858, + "src": "784:24:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2300, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -782,26 +782,26 @@ export const BasicToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "784:32:12", + "src": "784:32:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "761:55:12", + "src": "761:55:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2302, + "id": 1030, "nodeType": "ExpressionStatement", - "src": "761:55:12" + "src": "761:55:6" }, { "expression": { "argumentTypes": null, - "id": 2312, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": false, @@ -810,26 +810,26 @@ export const BasicToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2303, + "id": 1031, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "822:8:12", + "referencedDeclaration": 982, + "src": "822:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2305, + "id": 1033, "indexExpression": { "argumentTypes": null, - "id": 2304, + "id": 1032, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "831:3:12", + "referencedDeclaration": 994, + "src": "831:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -840,7 +840,7 @@ export const BasicToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "822:13:12", + "src": "822:13:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -853,12 +853,12 @@ export const BasicToken = "arguments": [ { "argumentTypes": null, - "id": 2310, + "id": 1038, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "856:6:12", + "referencedDeclaration": 996, + "src": "856:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -876,26 +876,26 @@ export const BasicToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2306, + "id": 1034, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "838:8:12", + "referencedDeclaration": 982, + "src": "838:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2308, + "id": 1036, "indexExpression": { "argumentTypes": null, - "id": 2307, + "id": 1035, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "847:3:12", + "referencedDeclaration": 994, + "src": "847:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -906,27 +906,27 @@ export const BasicToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "838:13:12", + "src": "838:13:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2309, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "838:17:12", + "referencedDeclaration": 882, + "src": "838:17:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2311, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -934,21 +934,21 @@ export const BasicToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "838:25:12", + "src": "838:25:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "822:41:12", + "src": "822:41:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2313, + "id": 1041, "nodeType": "ExpressionStatement", - "src": "822:41:12" + "src": "822:41:6" }, { "eventCall": { @@ -958,18 +958,18 @@ export const BasicToken = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2315, + "id": 1043, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "883:3:12", + "referencedDeclaration": 1436, + "src": "883:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2316, + "id": 1044, "isConstant": false, "isLValue": false, "isPure": false, @@ -977,7 +977,7 @@ export const BasicToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "883:10:12", + "src": "883:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -985,12 +985,12 @@ export const BasicToken = }, { "argumentTypes": null, - "id": 2317, + "id": 1045, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "895:3:12", + "referencedDeclaration": 994, + "src": "895:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -998,12 +998,12 @@ export const BasicToken = }, { "argumentTypes": null, - "id": 2318, + "id": 1046, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "900:6:12", + "referencedDeclaration": 996, + "src": "900:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1025,18 +1025,18 @@ export const BasicToken = "typeString": "uint256" } ], - "id": 2314, + "id": 1042, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "874:8:12", + "referencedDeclaration": 1173, + "src": "874:8:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2319, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -1044,28 +1044,28 @@ export const BasicToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "874:33:12", + "src": "874:33:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2320, + "id": 1048, "nodeType": "EmitStatement", - "src": "869:38:12" + "src": "869:38:6" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2321, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "920:4:12", + "src": "920:4:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1073,15 +1073,15 @@ export const BasicToken = }, "value": "true" }, - "functionReturnParameters": 2272, - "id": 2322, + "functionReturnParameters": 1000, + "id": 1050, "nodeType": "Return", - "src": "913:11:12" + "src": "913:11:6" } ] }, "documentation": "@dev transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", - "id": 2324, + "id": 1052, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1089,16 +1089,16 @@ export const BasicToken = "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 2269, + "id": 997, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2266, + "id": 994, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "626:11:12", + "scope": 1052, + "src": "626:11:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1106,10 +1106,10 @@ export const BasicToken = "typeString": "address" }, "typeName": { - "id": 2265, + "id": 993, "name": "address", "nodeType": "ElementaryTypeName", - "src": "626:7:12", + "src": "626:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1120,11 +1120,11 @@ export const BasicToken = }, { "constant": false, - "id": 2268, + "id": 996, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "639:14:12", + "scope": 1052, + "src": "639:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1132,10 +1132,10 @@ export const BasicToken = "typeString": "uint256" }, "typeName": { - "id": 2267, + "id": 995, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "639:7:12", + "src": "639:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1145,20 +1145,20 @@ export const BasicToken = "visibility": "internal" } ], - "src": "625:29:12" + "src": "625:29:6" }, "payable": false, "returnParameters": { - "id": 2272, + "id": 1000, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2271, + "id": 999, "name": "", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "671:4:12", + "scope": 1052, + "src": "671:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1166,10 +1166,10 @@ export const BasicToken = "typeString": "bool" }, "typeName": { - "id": 2270, + "id": 998, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "671:4:12", + "src": "671:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1179,45 +1179,45 @@ export const BasicToken = "visibility": "internal" } ], - "src": "670:6:12" + "src": "670:6:6" }, - "scope": 2337, - "src": "608:321:12", + "scope": 1065, + "src": "608:321:6", "stateMutability": "nonpayable", - "superFunction": 2437, + "superFunction": 1165, "visibility": "public" }, { "body": { - "id": 2335, + "id": 1063, "nodeType": "Block", - "src": "1196:34:12", + "src": "1196:34:6", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2331, + "id": 1059, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1209:8:12", + "referencedDeclaration": 982, + "src": "1209:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2333, + "id": 1061, "indexExpression": { "argumentTypes": null, - "id": 2332, + "id": 1060, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "1218:6:12", + "referencedDeclaration": 1054, + "src": "1218:6:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1228,21 +1228,21 @@ export const BasicToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1209:16:12", + "src": "1209:16:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2330, - "id": 2334, + "functionReturnParameters": 1058, + "id": 1062, "nodeType": "Return", - "src": "1202:23:12" + "src": "1202:23:6" } ] }, "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", - "id": 2336, + "id": 1064, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1250,16 +1250,16 @@ export const BasicToken = "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 2327, + "id": 1055, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2326, + "id": 1054, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 2336, - "src": "1150:14:12", + "scope": 1064, + "src": "1150:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1267,10 +1267,10 @@ export const BasicToken = "typeString": "address" }, "typeName": { - "id": 2325, + "id": 1053, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1150:7:12", + "src": "1150:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1280,20 +1280,20 @@ export const BasicToken = "visibility": "internal" } ], - "src": "1149:16:12" + "src": "1149:16:6" }, "payable": false, "returnParameters": { - "id": 2330, + "id": 1058, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2329, + "id": 1057, "name": "", "nodeType": "VariableDeclaration", - "scope": 2336, - "src": "1187:7:12", + "scope": 1064, + "src": "1187:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1301,10 +1301,10 @@ export const BasicToken = "typeString": "uint256" }, "typeName": { - "id": 2328, + "id": 1056, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1187:7:12", + "src": "1187:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1314,33 +1314,33 @@ export const BasicToken = "visibility": "internal" } ], - "src": "1186:9:12" + "src": "1186:9:6" }, - "scope": 2337, - "src": "1131:99:12", + "scope": 1065, + "src": "1131:99:6", "stateMutability": "view", - "superFunction": 2428, + "superFunction": 1156, "visibility": "public" } ], - "scope": 2338, - "src": "180:1053:12" + "scope": 1066, + "src": "180:1053:6" } ], - "src": "0:1234:12" + "src": "0:1234:6" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/BasicToken.sol", "exportedSymbols": { "BasicToken": [ - 2337 + 1065 ] }, - "id": 2338, + "id": 1066, "nodeType": "SourceUnit", "nodes": [ { - "id": 2243, + "id": 971, "literals": [ "solidity", "^", @@ -1348,27 +1348,27 @@ export const BasicToken = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:12" + "src": "0:24:6" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "file": "./ERC20Basic.sol", - "id": 2244, + "id": 972, "nodeType": "ImportDirective", - "scope": 2338, - "sourceUnit": 2447, - "src": "27:26:12", + "scope": 1066, + "sourceUnit": 1175, + "src": "27:26:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "../../math/SafeMath.sol", - "id": 2245, + "id": 973, "nodeType": "ImportDirective", - "scope": 2338, - "sourceUnit": 2156, - "src": "54:33:12", + "scope": 1066, + "sourceUnit": 884, + "src": "54:33:6", "symbolAliases": [], "unitAlias": "" }, @@ -1378,56 +1378,56 @@ export const BasicToken = "arguments": null, "baseName": { "contractScope": null, - "id": 2246, + "id": 974, "name": "ERC20Basic", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2446, - "src": "203:10:12", + "referencedDeclaration": 1174, + "src": "203:10:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$2446", + "typeIdentifier": "t_contract$_ERC20Basic_$1174", "typeString": "contract ERC20Basic" } }, - "id": 2247, + "id": 975, "nodeType": "InheritanceSpecifier", - "src": "203:10:12" + "src": "203:10:6" } ], "contractDependencies": [ - 2446 + 1174 ], "contractKind": "contract", "documentation": "@title Basic token\n@dev Basic version of StandardToken, with no allowances.", "fullyImplemented": true, - "id": 2337, + "id": 1065, "linearizedBaseContracts": [ - 2337, - 2446 + 1065, + 1174 ], "name": "BasicToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2250, + "id": 978, "libraryName": { "contractScope": null, - "id": 2248, + "id": 976, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "224:8:12", + "referencedDeclaration": 883, + "src": "224:8:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", + "typeIdentifier": "t_contract$_SafeMath_$883", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "218:27:12", + "src": "218:27:6", "typeName": { - "id": 2249, + "id": 977, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "237:7:12", + "src": "237:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1436,11 +1436,11 @@ export const BasicToken = }, { "constant": false, - "id": 2254, + "id": 982, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 2337, - "src": "249:36:12", + "scope": 1065, + "src": "249:36:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1448,28 +1448,28 @@ export const BasicToken = "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 2253, + "id": 981, "keyType": { - "id": 2251, + "id": 979, "name": "address", "nodeType": "ElementaryTypeName", - "src": "257:7:12", + "src": "257:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "249:27:12", + "src": "249:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 2252, + "id": 980, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "268:7:12", + "src": "268:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1481,11 +1481,11 @@ export const BasicToken = }, { "constant": false, - "id": 2256, + "id": 984, "name": "totalSupply_", "nodeType": "VariableDeclaration", - "scope": 2337, - "src": "290:20:12", + "scope": 1065, + "src": "290:20:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1493,10 +1493,10 @@ export const BasicToken = "typeString": "uint256" }, "typeName": { - "id": 2255, + "id": 983, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "290:7:12", + "src": "290:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1507,33 +1507,33 @@ export const BasicToken = }, { "body": { - "id": 2263, + "id": 991, "nodeType": "Block", - "src": "424:30:12", + "src": "424:30:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 2261, + "id": 989, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "437:12:12", + "referencedDeclaration": 984, + "src": "437:12:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2260, - "id": 2262, + "functionReturnParameters": 988, + "id": 990, "nodeType": "Return", - "src": "430:19:12" + "src": "430:19:6" } ] }, "documentation": "@dev total number of tokens in existence", - "id": 2264, + "id": 992, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1541,23 +1541,23 @@ export const BasicToken = "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 2257, + "id": 985, "nodeType": "ParameterList", "parameters": [], - "src": "391:2:12" + "src": "391:2:6" }, "payable": false, "returnParameters": { - "id": 2260, + "id": 988, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2259, + "id": 987, "name": "", "nodeType": "VariableDeclaration", - "scope": 2264, - "src": "415:7:12", + "scope": 992, + "src": "415:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1565,10 +1565,10 @@ export const BasicToken = "typeString": "uint256" }, "typeName": { - "id": 2258, + "id": 986, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "415:7:12", + "src": "415:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1578,19 +1578,19 @@ export const BasicToken = "visibility": "internal" } ], - "src": "414:9:12" + "src": "414:9:6" }, - "scope": 2337, - "src": "371:83:12", + "scope": 1065, + "src": "371:83:6", "stateMutability": "view", - "superFunction": 2421, + "superFunction": 1149, "visibility": "public" }, { "body": { - "id": 2323, + "id": 1051, "nodeType": "Block", - "src": "677:252:12", + "src": "677:252:6", "statements": [ { "expression": { @@ -1602,19 +1602,19 @@ export const BasicToken = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2278, + "id": 1006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2274, + "id": 1002, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "691:3:12", + "referencedDeclaration": 994, + "src": "691:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1628,14 +1628,14 @@ export const BasicToken = { "argumentTypes": null, "hexValue": "30", - "id": 2276, + "id": 1004, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "706:1:12", + "src": "706:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1651,20 +1651,20 @@ export const BasicToken = "typeString": "int_const 0" } ], - "id": 2275, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "698:7:12", + "src": "698:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2277, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": true, @@ -1672,13 +1672,13 @@ export const BasicToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "698:10:12", + "src": "698:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "691:17:12", + "src": "691:17:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1692,21 +1692,21 @@ export const BasicToken = "typeString": "bool" } ], - "id": 2273, + "id": 1001, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "683:7:12", + "referencedDeclaration": 1439, + "src": "683:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2279, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": false, @@ -1714,15 +1714,15 @@ export const BasicToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "683:26:12", + "src": "683:26:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2280, + "id": 1008, "nodeType": "ExpressionStatement", - "src": "683:26:12" + "src": "683:26:6" }, { "expression": { @@ -1734,19 +1734,19 @@ export const BasicToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2287, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2282, + "id": 1010, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "723:6:12", + "referencedDeclaration": 996, + "src": "723:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1758,34 +1758,34 @@ export const BasicToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2283, + "id": 1011, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "733:8:12", + "referencedDeclaration": 982, + "src": "733:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2286, + "id": 1014, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2284, + "id": 1012, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "742:3:12", + "referencedDeclaration": 1436, + "src": "742:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2285, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, @@ -1793,7 +1793,7 @@ export const BasicToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "742:10:12", + "src": "742:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1804,13 +1804,13 @@ export const BasicToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "733:20:12", + "src": "733:20:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "723:30:12", + "src": "723:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1824,21 +1824,21 @@ export const BasicToken = "typeString": "bool" } ], - "id": 2281, + "id": 1009, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "715:7:12", + "referencedDeclaration": 1439, + "src": "715:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2288, + "id": 1016, "isConstant": false, "isLValue": false, "isPure": false, @@ -1846,20 +1846,20 @@ export const BasicToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "715:39:12", + "src": "715:39:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2289, + "id": 1017, "nodeType": "ExpressionStatement", - "src": "715:39:12" + "src": "715:39:6" }, { "expression": { "argumentTypes": null, - "id": 2301, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, @@ -1868,34 +1868,34 @@ export const BasicToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2290, + "id": 1018, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "761:8:12", + "referencedDeclaration": 982, + "src": "761:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2293, + "id": 1021, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2291, + "id": 1019, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "770:3:12", + "referencedDeclaration": 1436, + "src": "770:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2292, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": false, @@ -1903,7 +1903,7 @@ export const BasicToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "770:10:12", + "src": "770:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1914,7 +1914,7 @@ export const BasicToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "761:20:12", + "src": "761:20:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1927,12 +1927,12 @@ export const BasicToken = "arguments": [ { "argumentTypes": null, - "id": 2299, + "id": 1027, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "809:6:12", + "referencedDeclaration": 996, + "src": "809:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1950,34 +1950,34 @@ export const BasicToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2294, + "id": 1022, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "784:8:12", + "referencedDeclaration": 982, + "src": "784:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2297, + "id": 1025, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2295, + "id": 1023, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "793:3:12", + "referencedDeclaration": 1436, + "src": "793:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2296, + "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, @@ -1985,7 +1985,7 @@ export const BasicToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "793:10:12", + "src": "793:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1996,27 +1996,27 @@ export const BasicToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "784:20:12", + "src": "784:20:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2298, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "784:24:12", + "referencedDeclaration": 858, + "src": "784:24:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2300, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -2024,26 +2024,26 @@ export const BasicToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "784:32:12", + "src": "784:32:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "761:55:12", + "src": "761:55:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2302, + "id": 1030, "nodeType": "ExpressionStatement", - "src": "761:55:12" + "src": "761:55:6" }, { "expression": { "argumentTypes": null, - "id": 2312, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": false, @@ -2052,26 +2052,26 @@ export const BasicToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2303, + "id": 1031, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "822:8:12", + "referencedDeclaration": 982, + "src": "822:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2305, + "id": 1033, "indexExpression": { "argumentTypes": null, - "id": 2304, + "id": 1032, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "831:3:12", + "referencedDeclaration": 994, + "src": "831:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2082,7 +2082,7 @@ export const BasicToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "822:13:12", + "src": "822:13:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2095,12 +2095,12 @@ export const BasicToken = "arguments": [ { "argumentTypes": null, - "id": 2310, + "id": 1038, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "856:6:12", + "referencedDeclaration": 996, + "src": "856:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2118,26 +2118,26 @@ export const BasicToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2306, + "id": 1034, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "838:8:12", + "referencedDeclaration": 982, + "src": "838:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2308, + "id": 1036, "indexExpression": { "argumentTypes": null, - "id": 2307, + "id": 1035, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "847:3:12", + "referencedDeclaration": 994, + "src": "847:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2148,27 +2148,27 @@ export const BasicToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "838:13:12", + "src": "838:13:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2309, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "838:17:12", + "referencedDeclaration": 882, + "src": "838:17:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2311, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -2176,21 +2176,21 @@ export const BasicToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "838:25:12", + "src": "838:25:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "822:41:12", + "src": "822:41:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2313, + "id": 1041, "nodeType": "ExpressionStatement", - "src": "822:41:12" + "src": "822:41:6" }, { "eventCall": { @@ -2200,18 +2200,18 @@ export const BasicToken = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2315, + "id": 1043, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "883:3:12", + "referencedDeclaration": 1436, + "src": "883:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2316, + "id": 1044, "isConstant": false, "isLValue": false, "isPure": false, @@ -2219,7 +2219,7 @@ export const BasicToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "883:10:12", + "src": "883:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2227,12 +2227,12 @@ export const BasicToken = }, { "argumentTypes": null, - "id": 2317, + "id": 1045, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "895:3:12", + "referencedDeclaration": 994, + "src": "895:3:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2240,12 +2240,12 @@ export const BasicToken = }, { "argumentTypes": null, - "id": 2318, + "id": 1046, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "900:6:12", + "referencedDeclaration": 996, + "src": "900:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2267,18 +2267,18 @@ export const BasicToken = "typeString": "uint256" } ], - "id": 2314, + "id": 1042, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "874:8:12", + "referencedDeclaration": 1173, + "src": "874:8:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2319, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -2286,28 +2286,28 @@ export const BasicToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "874:33:12", + "src": "874:33:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2320, + "id": 1048, "nodeType": "EmitStatement", - "src": "869:38:12" + "src": "869:38:6" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2321, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "920:4:12", + "src": "920:4:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2315,15 +2315,15 @@ export const BasicToken = }, "value": "true" }, - "functionReturnParameters": 2272, - "id": 2322, + "functionReturnParameters": 1000, + "id": 1050, "nodeType": "Return", - "src": "913:11:12" + "src": "913:11:6" } ] }, "documentation": "@dev transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", - "id": 2324, + "id": 1052, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2331,16 +2331,16 @@ export const BasicToken = "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 2269, + "id": 997, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2266, + "id": 994, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "626:11:12", + "scope": 1052, + "src": "626:11:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2348,10 +2348,10 @@ export const BasicToken = "typeString": "address" }, "typeName": { - "id": 2265, + "id": 993, "name": "address", "nodeType": "ElementaryTypeName", - "src": "626:7:12", + "src": "626:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2362,11 +2362,11 @@ export const BasicToken = }, { "constant": false, - "id": 2268, + "id": 996, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "639:14:12", + "scope": 1052, + "src": "639:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2374,10 +2374,10 @@ export const BasicToken = "typeString": "uint256" }, "typeName": { - "id": 2267, + "id": 995, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "639:7:12", + "src": "639:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2387,20 +2387,20 @@ export const BasicToken = "visibility": "internal" } ], - "src": "625:29:12" + "src": "625:29:6" }, "payable": false, "returnParameters": { - "id": 2272, + "id": 1000, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2271, + "id": 999, "name": "", "nodeType": "VariableDeclaration", - "scope": 2324, - "src": "671:4:12", + "scope": 1052, + "src": "671:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2408,10 +2408,10 @@ export const BasicToken = "typeString": "bool" }, "typeName": { - "id": 2270, + "id": 998, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "671:4:12", + "src": "671:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2421,45 +2421,45 @@ export const BasicToken = "visibility": "internal" } ], - "src": "670:6:12" + "src": "670:6:6" }, - "scope": 2337, - "src": "608:321:12", + "scope": 1065, + "src": "608:321:6", "stateMutability": "nonpayable", - "superFunction": 2437, + "superFunction": 1165, "visibility": "public" }, { "body": { - "id": 2335, + "id": 1063, "nodeType": "Block", - "src": "1196:34:12", + "src": "1196:34:6", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2331, + "id": 1059, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1209:8:12", + "referencedDeclaration": 982, + "src": "1209:8:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2333, + "id": 1061, "indexExpression": { "argumentTypes": null, - "id": 2332, + "id": 1060, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "1218:6:12", + "referencedDeclaration": 1054, + "src": "1218:6:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2470,21 +2470,21 @@ export const BasicToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1209:16:12", + "src": "1209:16:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2330, - "id": 2334, + "functionReturnParameters": 1058, + "id": 1062, "nodeType": "Return", - "src": "1202:23:12" + "src": "1202:23:6" } ] }, "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", - "id": 2336, + "id": 1064, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2492,16 +2492,16 @@ export const BasicToken = "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 2327, + "id": 1055, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2326, + "id": 1054, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 2336, - "src": "1150:14:12", + "scope": 1064, + "src": "1150:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2509,10 +2509,10 @@ export const BasicToken = "typeString": "address" }, "typeName": { - "id": 2325, + "id": 1053, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1150:7:12", + "src": "1150:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2522,20 +2522,20 @@ export const BasicToken = "visibility": "internal" } ], - "src": "1149:16:12" + "src": "1149:16:6" }, "payable": false, "returnParameters": { - "id": 2330, + "id": 1058, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2329, + "id": 1057, "name": "", "nodeType": "VariableDeclaration", - "scope": 2336, - "src": "1187:7:12", + "scope": 1064, + "src": "1187:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2543,10 +2543,10 @@ export const BasicToken = "typeString": "uint256" }, "typeName": { - "id": 2328, + "id": 1056, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1187:7:12", + "src": "1187:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2556,26 +2556,26 @@ export const BasicToken = "visibility": "internal" } ], - "src": "1186:9:12" + "src": "1186:9:6" }, - "scope": 2337, - "src": "1131:99:12", + "scope": 1065, + "src": "1131:99:6", "stateMutability": "view", - "superFunction": 2428, + "superFunction": 1156, "visibility": "public" } ], - "scope": 2338, - "src": "180:1053:12" + "scope": 1066, + "src": "180:1053:6" } ], - "src": "0:1234:12" + "src": "0:1234:6" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.587Z" + "updatedAt": "2018-07-07T15:28:53.735Z" } \ No newline at end of file diff --git a/artifacts/ts/Core.ts b/artifacts/ts/Core.ts new file mode 100644 index 000000000..53f3feb27 --- /dev/null +++ b/artifacts/ts/Core.ts @@ -0,0 +1,1132 @@ +export const Core = +{ + "contractName": "Core", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_transferProxyAddress", + "type": "address" + } + ], + "name": "setTransferProxyAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + } + ], + "name": "disableFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "redeem", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddresses", + "type": "address[]" + }, + { + "name": "_quantities", + "type": "uint256[]" + } + ], + "name": "batchDeposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + }, + { + "name": "_exchange", + "type": "address" + } + ], + "name": "registerExchange", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + }, + { + "name": "_components", + "type": "address[]" + }, + { + "name": "_units", + "type": "uint256[]" + }, + { + "name": "_naturalUnit", + "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + } + ], + "name": "create", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_addresses", + "type": "address[4]" + }, + { + "name": "_values", + "type": "uint256[5]" + }, + { + "name": "_fillQuantity", + "type": "uint256" + }, + { + "name": "_v", + "type": "uint8" + }, + { + "name": "_r", + "type": "bytes32" + }, + { + "name": "_s", + "type": "bytes32" + }, + { + "name": "_orderData", + "type": "bytes" + } + ], + "name": "fillOrder", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + } + ], + "name": "disableSet", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_vaultAddress", + "type": "address" + } + ], + "name": "setVaultAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "issue", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_addresses", + "type": "address[4]" + }, + { + "name": "_values", + "type": "uint256[5]" + }, + { + "name": "_cancelQuantity", + "type": "uint256" + } + ], + "name": "cancelOrder", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + } + ], + "name": "enableFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddresses", + "type": "address[]" + }, + { + "name": "_quantities", + "type": "uint256[]" + } + ], + "name": "batchWithdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_setToken", + "type": "address" + }, + { + "indexed": true, + "name": "_component", + "type": "address" + }, + { + "indexed": false, + "name": "_quantity", + "type": "uint256" + } + ], + "name": "IssuanceComponentDeposited", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_setTokenAddress", + "type": "address" + }, + { + "indexed": false, + "name": "_factoryAddress", + "type": "address" + }, + { + "indexed": false, + "name": "_components", + "type": "address[]" + }, + { + "indexed": false, + "name": "_units", + "type": "uint256[]" + }, + { + "indexed": false, + "name": "_naturalUnit", + "type": "uint256" + }, + { + "indexed": false, + "name": "_name", + "type": "string" + }, + { + "indexed": false, + "name": "_symbol", + "type": "string" + } + ], + "name": "SetTokenCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_exchangeId", + "type": "uint8" + }, + { + "indexed": false, + "name": "_exchange", + "type": "address" + } + ], + "name": "ExchangeRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + } + ], + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506157a3806100536000396000f300608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d414610159578063124cfd78146101b45780631a1f2b3e146101f75780631e912bd61461023a5780631e9a69501461027f57806330a90736146102cc5780633e3d13b21461031f578063430bf08a1461036f57806347e7ef24146103c657806352904449146104135780635cee2af114610500578063715018a61461058257806377274ff01461059957806385535cc5146105dc578063867904b41461061f5780638ca4daf91461066c5780638da5cb5b146106c357806398362fa31461071a5780639f80ee881461075b578063a003e0691461079e578063c19d93fb1461080e578063e131243e14610898578063f2fde38b146108eb578063f3fef3a31461092e578063f7213db61461097b578063fef3ee73146109c0575b600080fd5b34801561016557600080fd5b5061019a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a1b565b604051808215151515815260200191505060405180910390f35b3480156101c057600080fd5b506101f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a74565b005b34801561020357600080fd5b50610238600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b15565b005b34801561024657600080fd5b506102696004803603810190808035600019169060200190929190505050610d26565b6040518082815260200191505060405180910390f35b34801561028b57600080fd5b506102ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d4e565b005b3480156102d857600080fd5b5061031d600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611759565b005b34801561032b57600080fd5b5061036d600480360381019080803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611afc565b005b34801561037b57600080fd5b50610384611c27565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103d257600080fd5b50610411600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c54565b005b34801561041f57600080fd5b506104be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939080359060200190929190803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611f8b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561050c57600080fd5b50610580600480360381019080806080019091929192908060a00190919291929080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919080359060200190820180359060200191909192939192939050505061239c565b005b34801561058e57600080fd5b50610597612bc1565b005b3480156105a557600080fd5b506105da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cc3565b005b3480156105e857600080fd5b5061061d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ed4565b005b34801561062b57600080fd5b5061066a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f76565b005b34801561067857600080fd5b506106816133a0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106cf57600080fd5b506106d86133cc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072657600080fd5b50610759600480360381019080806080019091929192908060a001909192919290803590602001909291905050506133f1565b005b34801561076757600080fd5b5061079c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061387f565b005b3480156107aa57600080fd5b506107cc600480360381019080803560ff169060200190929190505050613937565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081a57600080fd5b5061082361397d565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156108a457600080fd5b506108e96004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506139cf565b005b3480156108f757600080fd5b5061092c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d72565b005b34801561093a57600080fd5b50610979600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613dd9565b005b34801561098757600080fd5b506109aa6004803603810190808035600019169060200190929190505050614005565b6040518082815260200191505060405180910390f35b3480156109cc57600080fd5b50610a01600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061402d565b604051808215151515815260200191505060405180910390f35b6000600160030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610acf57600080fd5b806001800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b7057600080fd5b80600160030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e0000000000000000000000000000000000000000000000000000815250901515610cc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c8b578082015181840152602081019050610c70565b50505050905090810190601f168015610cb85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160060160008360001916600019168152602001908152602001600020549050919050565b600060608060008060008088600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515610eaf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e74578082015181840152602081019050610e59565b50505050905090810190601f168015610ea15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508860008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515610fba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f7f578082015181840152602081019050610f64565b50505050905090810190601f168015610fac5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50898b60008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b505050506040513d602081101561104d57600080fd5b81019080805190602001909291905050508381151561106857fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e0000000000000081525090151561116f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611134578082015181840152602081019050611119565b50505050905090810190601f1680156111615780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff16639dc29fac338e6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561121357600080fd5b505af1158015611227573d6000803e3d6000fd5b505050508c73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561128f57600080fd5b505af11580156112a3573d6000803e3d6000fd5b505050506040513d60208110156112b957600080fd5b81019080805190602001909291905050509a508c73ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561133057600080fd5b505af1158015611344573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561136e57600080fd5b81019080805164010000000081111561138657600080fd5b8281019050602081018481111561139c57600080fd5b81518560208202830111640100000000821117156113b957600080fd5b505092919050505099508c73ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561142757600080fd5b505af115801561143b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561146557600080fd5b81019080805164010000000081111561147d57600080fd5b8281019050602081018481111561149357600080fd5b81518560208202830111640100000000821117156114b057600080fd5b50509291905050509850600097505b89518861ffff16101561174a57898861ffff168151811015156114de57fe5b906020019060200201519650888861ffff168151811015156114fc57fe5b906020019060200201519550611513868c8e614086565b9450600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308e89886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561161157600080fd5b505af1158015611625573d6000803e3d6000fd5b50505050600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263389886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b5050505087806001019850506114bf565b50505050505050505050505050565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e0000000081525090151561189e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611863578082015181840152602081019050611848565b50505050905090810190601f1680156118905780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e000000815250901515611982576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561194757808201518184015260208101905061192c565b50505050905090810190601f1680156119745780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e000000000000000000000000000000815250901515611a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a52578082015181840152602081019050611a37565b50505050905090810190601f168015611a7f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b86869050831015611af357611ae68787858181101515611aaf57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168686868181101515611ada57fe5b90506020020135611c54565b8280600101935050611a93565b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5757600080fd5b80600160000160008460ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507feee2c0570205f21356a5108d71a4d6e7151682b92a84c761fca82cac87275c288282604051808360ff1660ff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b6000600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515611d5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d23578082015181840152602081019050611d08565b50505050905090810190601f168015611d505780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22953385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611e5a57600080fd5b505af1158015611e6e573d6000803e3d6000fd5b50505050600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611f6e57600080fd5b505af1158015611f82573d6000803e3d6000fd5b50505050505050565b6000808b600160030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e00000000000000000000000000000000000000000000000000008152509015156120e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156120a957808201518184015260208101905061208e565b50505050905090810190601f1680156120d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff1663110a25c28d8d8d8d8d8d8d8d8d6040518a63ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509d5050505050505050505050505050602060405180830381600087803b1580156121e257600080fd5b505af11580156121f6573d6000803e3d6000fd5b505050506040513d602081101561220c57600080fd5b8101908080519060200190929190505050915060018060040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f388b9bd51ec792eb7ce238581b3f844072709011b2a20260c428451e07d764a88e8e8e8e8e8e8e8e8e8e604051808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509e50505050505050505050505050505060405180910390a281925050509a9950505050505050505050565b6123a46156ab565b8860006004811015156123b357fe5b602002013573ffffffffffffffffffffffffffffffffffffffff16600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515612523576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124e85780820151818401526020810190506124cd565b50505050905090810190601f1680156125155780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508760008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e000000000000000000000000000000000000000000000000000000000081525090151561262e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156125f35780820151818401526020810190506125d8565b50505050905090810190601f1680156126205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50888b600060048110151561263f57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1660008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156126c057600080fd5b505af11580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b81019080805190602001909291905050508381151561270557fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e0000000000000081525090151561280c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127d15780820151818401526020810190506127b6565b50505050905090810190601f1680156127fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610140604051908101604052808e600060048110151561282957fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018d600060058110151561286e57fe5b602002013581526020018e600160048110151561288757fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018e60026004811015156128cc57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018d600160058110151561291157fe5b602002013581526020018d600260058110151561292a57fe5b602002013581526020018e600360048110151561294357fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018d600360058110151561298857fe5b602002013581526020018d60046005811015156129a157fe5b602002013581526020016129ff8f600480602002604051908101604052809291908260046020028082843782019150505050508f600580602002604051908101604052809291908260056020028082843782019150505050506140b6565b600019168152509450612a12858c614319565b612a2885610120015186604001518c8c8c614522565b6040805190810160405280601881526020017f496e76616c6964206f72646572207369676e61747572652e0000000000000000815250901515612b06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612acb578082015181840152602081019050612ab0565b50505050905090810190601f168015612af85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50612b4287878080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506146fc565b612b788b60016005016000886101200151600019166000191681526020019081526020016000205461490490919063ffffffff16565b600160050160008761012001516000191660001916815260200190815260200160002081905550612bb2856040015186600001518d614920565b50505050505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c1c57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d1e57600080fd5b80600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515612e74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e39578082015181840152602081019050612e1e565b50505050905090810190601f168015612e665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f2f57600080fd5b80600160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b81600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e0000000000000000000000000000000000000000000000008152509015156130cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613091578082015181840152602081019050613076565b50505050905090810190601f1680156130be5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508160008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e00000000000000000000000000000000000000000000000000000000008152509015156131d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561319c578082015181840152602081019050613181565b50505050905090810190601f1680156131c95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50828460008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561324057600080fd5b505af1158015613254573d6000803e3d6000fd5b505050506040513d602081101561326a57600080fd5b81019080805190602001909291905050508381151561328557fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e0000000000000081525090151561338c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613351578082015181840152602081019050613336565b50505050905090810190601f16801561337e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50613398338787614920565b505050505050565b60006001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6133f96156ab565b8160008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515613503576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134c85780820151818401526020810190506134ad565b50505050905090810190601f1680156134f55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506101406040519081016040528086600060048110151561352057fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600060058110151561356557fe5b6020020135815260200186600160048110151561357e57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018660026004811015156135c357fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600160058110151561360857fe5b6020020135815260200185600260058110151561362157fe5b6020020135815260200186600360048110151561363a57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600360058110151561367f57fe5b6020020135815260200185600460058110151561369857fe5b602002013581526020016136f6876004806020026040519081016040528092919082600460200280828437820191505050505087600580602002604051908101604052809291908260056020028082843782019150505050506140b6565b6000191681525091503373ffffffffffffffffffffffffffffffffffffffff16826040015173ffffffffffffffffffffffffffffffffffffffff16146040805190810160405280601c81526020017f4f6e6c79206d616b65722063616e2063616e63656c206f726465722e00000000815250901515613810576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137d55780820151818401526020810190506137ba565b50505050905090810190601f1680156138025780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061381b8284614319565b6138518360016006016000856101200151600019166000191681526020019081526020016000205461490490919063ffffffff16565b6001600601600084610120015160001916600019168152602001908152602001600020819055505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156138da57600080fd5b60018060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60018060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e00000000815250901515613b14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ad9578082015181840152602081019050613abe565b50505050905090810190601f168015613b065780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e000000815250901515613bf8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613bbd578082015181840152602081019050613ba2565b50505050905090810190601f168015613bea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e000000000000000000000000000000815250901515613d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613cc8578082015181840152602081019050613cad565b50505050905090810190601f168015613cf55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b86869050831015613d6957613d5c8787858181101515613d2557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168686868181101515613d5057fe5b90506020020135613dd9565b8280600101935050613d09565b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613dcd57600080fd5b613dd68161530d565b50565b600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda303384846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015613ed557600080fd5b505af1158015613ee9573d6000803e3d6000fd5b50505050600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c3b35a7e8333846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015613fe957600080fd5b505af1158015613ffd573d6000803e3d6000fd5b505050505050565b6000600160050160008360001916600019168152602001908152602001600020549050919050565b6000600160040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006140ad8461409f858561540790919063ffffffff16565b61541d90919063ffffffff16565b90509392505050565b60008260006004811015156140c757fe5b60200201518360016004811015156140db57fe5b60200201518460026004811015156140ef57fe5b602002015185600360048110151561410357fe5b602002015185600060058110151561411757fe5b602002015186600160058110151561412b57fe5b602002015187600260058110151561413f57fe5b602002015188600360058110151561415357fe5b602002015189600460058110151561416757fe5b6020020151604051602001808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186815260200185815260200184815260200183815260200182815260200199505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156142e457805182526020820191506020810190506020830392506142bf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905092915050565b60008260800151118015614331575060008260200151115b606060405190810160405280603781526020017f5175616e7469747920616e64206d616b6572546f6b656e416d6f756e7420736881526020017f6f756c642062652067726561746572207468616e20302e000000000000000000815250901515614436576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156143fb5780820151818401526020810190506143e0565b50505050905090810190601f1680156144285780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508160a001514211156040805190810160405280601781526020017f54686973206f726465722068617320657870697265642e00000000000000000081525090151561451d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156144e25780820151818401526020810190506144c7565b50505050905090810190601f16801561450f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050565b60008060606040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152509050600181896040516020018083805190602001908083835b60208310151561459b5780518252602082019150602081019050602083039250614576565b6001836020036101000a0380198251168184511680821785525050505050509050018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561461357805182526020820191506020810190506020830392506145ee565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020878787604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156146b4573d6000803e3d6000fd5b5050506020604051035191508673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149250505095945050505050565b6000606061470861575a565b60008060605b86518610156148fb57614735878761473060408a61490490919063ffffffff16565b615455565b9450614740856155a8565b935060016000016000856000015160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156040805190810160405280601881526020017f45786368616e676520646f6573206e6f742065786973742e0000000000000000815250901515614894576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561485957808201518184015260208101905061483e565b50505050905090810190601f1680156148865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506148ad6040856020015161490490919063ffffffff16565b91506148df876148c760408961490490919063ffffffff16565b6148da858a61490490919063ffffffff16565b615455565b90506148f4828761490490919063ffffffff16565b955061470e565b50505050505050565b6000818301905082811015151561491757fe5b80905092915050565b6060806000806000806000808973ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561499057600080fd5b505af11580156149a4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156149ce57600080fd5b8101908080516401000000008111156149e657600080fd5b828101905060208101848111156149fc57600080fd5b8151856020820283011164010000000082111715614a1957600080fd5b505092919050505097508973ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015614a8757600080fd5b505af1158015614a9b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015614ac557600080fd5b810190808051640100000000811115614add57600080fd5b82810190506020810184811115614af357600080fd5b8151856020820283011164010000000082111715614b1057600080fd5b50509291905050509650600095505b87518661ffff16101561524557878661ffff16815181101515614b3e57fe5b906020019060200201519450868661ffff16815181101515614b5c57fe5b906020019060200201519350614c11848b73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015614bd057600080fd5b505af1158015614be4573d6000803e3d6000fd5b505050506040513d6020811015614bfa57600080fd5b81019080805190602001909291905050508b614086565b9250600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f98ade38c876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015614d0757600080fd5b505af1158015614d1b573d6000803e3d6000fd5b505050506040513d6020811015614d3157600080fd5b810190808051906020019092919050505091508282101515614e6657600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015614e4957600080fd5b505af1158015614e5d573d6000803e3d6000fd5b50505050615124565b6000821115614f8457600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015614f6b57600080fd5b505af1158015614f7f573d6000803e3d6000fd5b505050505b614f9782846155d290919063ffffffff16565b90506001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22958c87614fee86886155d290919063ffffffff16565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156150a657600080fd5b505af11580156150ba573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fced8518610cf00c97309551834addd978c595341eda2066dbd52f9e990489573836040518082815260200191505060405180910390a35b600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57268b87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561522057600080fd5b505af1158015615234573d6000803e3d6000fd5b505050508580600101965050614b1f565b8973ffffffffffffffffffffffffffffffffffffffff166340c10f198c8b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156152e857600080fd5b505af11580156152fc573d6000803e3d6000fd5b505050505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561534957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000818381151561541457fe5b04905092915050565b600080831415615430576000905061544f565b818302905081838281151561544157fe5b0414151561544b57fe5b8090505b92915050565b60608183111515156154cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f46524f4d5f4c4553535f5448414e5f544f5f524551554952454400000000000081525060200191505060405180910390fd5b83518211151515615548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f544f5f4c4553535f5448414e5f4c454e4754485f52455155495245440000000081525060200191505060405180910390fd5b8282036040519080825280601f01601f19166020018201604052801561557d5781602001602082028038833980820191505090505b50905061559e61558c826155eb565b84615596876155eb565b0183516155fb565b8090509392505050565b6155b061575a565b6155b861575a565b602083015181526040830151602082015280915050919050565b60008282111515156155e057fe5b818303905092915050565b6000602082019050809050919050565b6020811015615625576001816020036101000a0380198351168185511680821786525050506156a5565b82821415615632576156a6565b828211156156715760208103905080820181840181515b828510156156665784518652602085019450602086019550615649565b8082525050506156a4565b60208103905080820181840183515b8186121561569d5782518252602083039250602082039150615680565b8086525050505b5b5b505050565b61014060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600080191681525090565b6040805190810160405280600060ff1681526020016000815250905600a165627a7a723058205189cc30f7075f1d45dc1a3bb4b92abe85d02e59adb757d5639694a5e3bbfafe0029", + "deployedBytecode": "0x608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d414610159578063124cfd78146101b45780631a1f2b3e146101f75780631e912bd61461023a5780631e9a69501461027f57806330a90736146102cc5780633e3d13b21461031f578063430bf08a1461036f57806347e7ef24146103c657806352904449146104135780635cee2af114610500578063715018a61461058257806377274ff01461059957806385535cc5146105dc578063867904b41461061f5780638ca4daf91461066c5780638da5cb5b146106c357806398362fa31461071a5780639f80ee881461075b578063a003e0691461079e578063c19d93fb1461080e578063e131243e14610898578063f2fde38b146108eb578063f3fef3a31461092e578063f7213db61461097b578063fef3ee73146109c0575b600080fd5b34801561016557600080fd5b5061019a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a1b565b604051808215151515815260200191505060405180910390f35b3480156101c057600080fd5b506101f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a74565b005b34801561020357600080fd5b50610238600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b15565b005b34801561024657600080fd5b506102696004803603810190808035600019169060200190929190505050610d26565b6040518082815260200191505060405180910390f35b34801561028b57600080fd5b506102ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d4e565b005b3480156102d857600080fd5b5061031d600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611759565b005b34801561032b57600080fd5b5061036d600480360381019080803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611afc565b005b34801561037b57600080fd5b50610384611c27565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103d257600080fd5b50610411600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c54565b005b34801561041f57600080fd5b506104be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939080359060200190929190803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611f8b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561050c57600080fd5b50610580600480360381019080806080019091929192908060a00190919291929080359060200190929190803560ff1690602001909291908035600019169060200190929190803560001916906020019092919080359060200190820180359060200191909192939192939050505061239c565b005b34801561058e57600080fd5b50610597612bc1565b005b3480156105a557600080fd5b506105da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cc3565b005b3480156105e857600080fd5b5061061d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ed4565b005b34801561062b57600080fd5b5061066a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f76565b005b34801561067857600080fd5b506106816133a0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106cf57600080fd5b506106d86133cc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072657600080fd5b50610759600480360381019080806080019091929192908060a001909192919290803590602001909291905050506133f1565b005b34801561076757600080fd5b5061079c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061387f565b005b3480156107aa57600080fd5b506107cc600480360381019080803560ff169060200190929190505050613937565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081a57600080fd5b5061082361397d565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156108a457600080fd5b506108e96004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506139cf565b005b3480156108f757600080fd5b5061092c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d72565b005b34801561093a57600080fd5b50610979600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613dd9565b005b34801561098757600080fd5b506109aa6004803603810190808035600019169060200190929190505050614005565b6040518082815260200191505060405180910390f35b3480156109cc57600080fd5b50610a01600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061402d565b604051808215151515815260200191505060405180910390f35b6000600160030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610acf57600080fd5b806001800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b7057600080fd5b80600160030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e0000000000000000000000000000000000000000000000000000815250901515610cc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c8b578082015181840152602081019050610c70565b50505050905090810190601f168015610cb85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160060160008360001916600019168152602001908152602001600020549050919050565b600060608060008060008088600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515610eaf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e74578082015181840152602081019050610e59565b50505050905090810190601f168015610ea15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508860008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515610fba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f7f578082015181840152602081019050610f64565b50505050905090810190601f168015610fac5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50898b60008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561102357600080fd5b505af1158015611037573d6000803e3d6000fd5b505050506040513d602081101561104d57600080fd5b81019080805190602001909291905050508381151561106857fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e0000000000000081525090151561116f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611134578082015181840152602081019050611119565b50505050905090810190601f1680156111615780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff16639dc29fac338e6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561121357600080fd5b505af1158015611227573d6000803e3d6000fd5b505050508c73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561128f57600080fd5b505af11580156112a3573d6000803e3d6000fd5b505050506040513d60208110156112b957600080fd5b81019080805190602001909291905050509a508c73ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561133057600080fd5b505af1158015611344573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561136e57600080fd5b81019080805164010000000081111561138657600080fd5b8281019050602081018481111561139c57600080fd5b81518560208202830111640100000000821117156113b957600080fd5b505092919050505099508c73ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561142757600080fd5b505af115801561143b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561146557600080fd5b81019080805164010000000081111561147d57600080fd5b8281019050602081018481111561149357600080fd5b81518560208202830111640100000000821117156114b057600080fd5b50509291905050509850600097505b89518861ffff16101561174a57898861ffff168151811015156114de57fe5b906020019060200201519650888861ffff168151811015156114fc57fe5b906020019060200201519550611513868c8e614086565b9450600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308e89886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561161157600080fd5b505af1158015611625573d6000803e3d6000fd5b50505050600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263389886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b5050505087806001019850506114bf565b50505050505050505050505050565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e0000000081525090151561189e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611863578082015181840152602081019050611848565b50505050905090810190601f1680156118905780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e000000815250901515611982576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561194757808201518184015260208101905061192c565b50505050905090810190601f1680156119745780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e000000000000000000000000000000815250901515611a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a52578082015181840152602081019050611a37565b50505050905090810190601f168015611a7f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b86869050831015611af357611ae68787858181101515611aaf57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168686868181101515611ada57fe5b90506020020135611c54565b8280600101935050611a93565b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5757600080fd5b80600160000160008460ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507feee2c0570205f21356a5108d71a4d6e7151682b92a84c761fca82cac87275c288282604051808360ff1660ff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b6000600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515611d5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d23578082015181840152602081019050611d08565b50505050905090810190601f168015611d505780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22953385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611e5a57600080fd5b505af1158015611e6e573d6000803e3d6000fd5b50505050600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611f6e57600080fd5b505af1158015611f82573d6000803e3d6000fd5b50505050505050565b6000808b600160030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e00000000000000000000000000000000000000000000000000008152509015156120e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156120a957808201518184015260208101905061208e565b50505050905090810190601f1680156120d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff1663110a25c28d8d8d8d8d8d8d8d8d6040518a63ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509d5050505050505050505050505050602060405180830381600087803b1580156121e257600080fd5b505af11580156121f6573d6000803e3d6000fd5b505050506040513d602081101561220c57600080fd5b8101908080519060200190929190505050915060018060040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f388b9bd51ec792eb7ce238581b3f844072709011b2a20260c428451e07d764a88e8e8e8e8e8e8e8e8e8e604051808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509e50505050505050505050505050505060405180910390a281925050509a9950505050505050505050565b6123a46156ab565b8860006004811015156123b357fe5b602002013573ffffffffffffffffffffffffffffffffffffffff16600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515612523576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124e85780820151818401526020810190506124cd565b50505050905090810190601f1680156125155780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508760008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e000000000000000000000000000000000000000000000000000000000081525090151561262e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156125f35780820151818401526020810190506125d8565b50505050905090810190601f1680156126205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50888b600060048110151561263f57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1660008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156126c057600080fd5b505af11580156126d4573d6000803e3d6000fd5b505050506040513d60208110156126ea57600080fd5b81019080805190602001909291905050508381151561270557fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e0000000000000081525090151561280c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127d15780820151818401526020810190506127b6565b50505050905090810190601f1680156127fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610140604051908101604052808e600060048110151561282957fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018d600060058110151561286e57fe5b602002013581526020018e600160048110151561288757fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018e60026004811015156128cc57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018d600160058110151561291157fe5b602002013581526020018d600260058110151561292a57fe5b602002013581526020018e600360048110151561294357fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018d600360058110151561298857fe5b602002013581526020018d60046005811015156129a157fe5b602002013581526020016129ff8f600480602002604051908101604052809291908260046020028082843782019150505050508f600580602002604051908101604052809291908260056020028082843782019150505050506140b6565b600019168152509450612a12858c614319565b612a2885610120015186604001518c8c8c614522565b6040805190810160405280601881526020017f496e76616c6964206f72646572207369676e61747572652e0000000000000000815250901515612b06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612acb578082015181840152602081019050612ab0565b50505050905090810190601f168015612af85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50612b4287878080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506146fc565b612b788b60016005016000886101200151600019166000191681526020019081526020016000205461490490919063ffffffff16565b600160050160008761012001516000191660001916815260200190815260200160002081905550612bb2856040015186600001518d614920565b50505050505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c1c57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d1e57600080fd5b80600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515612e74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e39578082015181840152602081019050612e1e565b50505050905090810190601f168015612e665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f2f57600080fd5b80600160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b81600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e0000000000000000000000000000000000000000000000008152509015156130cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613091578082015181840152602081019050613076565b50505050905090810190601f1680156130be5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508160008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e00000000000000000000000000000000000000000000000000000000008152509015156131d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561319c578082015181840152602081019050613181565b50505050905090810190601f1680156131c95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50828460008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561324057600080fd5b505af1158015613254573d6000803e3d6000fd5b505050506040513d602081101561326a57600080fd5b81019080805190602001909291905050508381151561328557fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e0000000000000081525090151561338c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613351578082015181840152602081019050613336565b50505050905090810190601f16801561337e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50613398338787614920565b505050505050565b60006001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6133f96156ab565b8160008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515613503576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134c85780820151818401526020810190506134ad565b50505050905090810190601f1680156134f55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506101406040519081016040528086600060048110151561352057fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600060058110151561356557fe5b6020020135815260200186600160048110151561357e57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018660026004811015156135c357fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600160058110151561360857fe5b6020020135815260200185600260058110151561362157fe5b6020020135815260200186600360048110151561363a57fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600360058110151561367f57fe5b6020020135815260200185600460058110151561369857fe5b602002013581526020016136f6876004806020026040519081016040528092919082600460200280828437820191505050505087600580602002604051908101604052809291908260056020028082843782019150505050506140b6565b6000191681525091503373ffffffffffffffffffffffffffffffffffffffff16826040015173ffffffffffffffffffffffffffffffffffffffff16146040805190810160405280601c81526020017f4f6e6c79206d616b65722063616e2063616e63656c206f726465722e00000000815250901515613810576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137d55780820151818401526020810190506137ba565b50505050905090810190601f1680156138025780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061381b8284614319565b6138518360016006016000856101200151600019166000191681526020019081526020016000205461490490919063ffffffff16565b6001600601600084610120015160001916600019168152602001908152602001600020819055505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156138da57600080fd5b60018060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60018060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e00000000815250901515613b14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ad9578082015181840152602081019050613abe565b50505050905090810190601f168015613b065780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e000000815250901515613bf8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613bbd578082015181840152602081019050613ba2565b50505050905090810190601f168015613bea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e000000000000000000000000000000815250901515613d03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613cc8578082015181840152602081019050613cad565b50505050905090810190601f168015613cf55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b86869050831015613d6957613d5c8787858181101515613d2557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168686868181101515613d5057fe5b90506020020135613dd9565b8280600101935050613d09565b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613dcd57600080fd5b613dd68161530d565b50565b600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda303384846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015613ed557600080fd5b505af1158015613ee9573d6000803e3d6000fd5b50505050600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c3b35a7e8333846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015613fe957600080fd5b505af1158015613ffd573d6000803e3d6000fd5b505050505050565b6000600160050160008360001916600019168152602001908152602001600020549050919050565b6000600160040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006140ad8461409f858561540790919063ffffffff16565b61541d90919063ffffffff16565b90509392505050565b60008260006004811015156140c757fe5b60200201518360016004811015156140db57fe5b60200201518460026004811015156140ef57fe5b602002015185600360048110151561410357fe5b602002015185600060058110151561411757fe5b602002015186600160058110151561412b57fe5b602002015187600260058110151561413f57fe5b602002015188600360058110151561415357fe5b602002015189600460058110151561416757fe5b6020020151604051602001808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186815260200185815260200184815260200183815260200182815260200199505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156142e457805182526020820191506020810190506020830392506142bf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905092915050565b60008260800151118015614331575060008260200151115b606060405190810160405280603781526020017f5175616e7469747920616e64206d616b6572546f6b656e416d6f756e7420736881526020017f6f756c642062652067726561746572207468616e20302e000000000000000000815250901515614436576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156143fb5780820151818401526020810190506143e0565b50505050905090810190601f1680156144285780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508160a001514211156040805190810160405280601781526020017f54686973206f726465722068617320657870697265642e00000000000000000081525090151561451d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156144e25780820151818401526020810190506144c7565b50505050905090810190601f16801561450f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050565b60008060606040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152509050600181896040516020018083805190602001908083835b60208310151561459b5780518252602082019150602081019050602083039250614576565b6001836020036101000a0380198251168184511680821785525050505050509050018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561461357805182526020820191506020810190506020830392506145ee565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020878787604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156146b4573d6000803e3d6000fd5b5050506020604051035191508673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149250505095945050505050565b6000606061470861575a565b60008060605b86518610156148fb57614735878761473060408a61490490919063ffffffff16565b615455565b9450614740856155a8565b935060016000016000856000015160ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156040805190810160405280601881526020017f45786368616e676520646f6573206e6f742065786973742e0000000000000000815250901515614894576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561485957808201518184015260208101905061483e565b50505050905090810190601f1680156148865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506148ad6040856020015161490490919063ffffffff16565b91506148df876148c760408961490490919063ffffffff16565b6148da858a61490490919063ffffffff16565b615455565b90506148f4828761490490919063ffffffff16565b955061470e565b50505050505050565b6000818301905082811015151561491757fe5b80905092915050565b6060806000806000806000808973ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561499057600080fd5b505af11580156149a4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156149ce57600080fd5b8101908080516401000000008111156149e657600080fd5b828101905060208101848111156149fc57600080fd5b8151856020820283011164010000000082111715614a1957600080fd5b505092919050505097508973ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015614a8757600080fd5b505af1158015614a9b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015614ac557600080fd5b810190808051640100000000811115614add57600080fd5b82810190506020810184811115614af357600080fd5b8151856020820283011164010000000082111715614b1057600080fd5b50509291905050509650600095505b87518661ffff16101561524557878661ffff16815181101515614b3e57fe5b906020019060200201519450868661ffff16815181101515614b5c57fe5b906020019060200201519350614c11848b73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015614bd057600080fd5b505af1158015614be4573d6000803e3d6000fd5b505050506040513d6020811015614bfa57600080fd5b81019080805190602001909291905050508b614086565b9250600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f98ade38c876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015614d0757600080fd5b505af1158015614d1b573d6000803e3d6000fd5b505050506040513d6020811015614d3157600080fd5b810190808051906020019092919050505091508282101515614e6657600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015614e4957600080fd5b505af1158015614e5d573d6000803e3d6000fd5b50505050615124565b6000821115614f8457600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015614f6b57600080fd5b505af1158015614f7f573d6000803e3d6000fd5b505050505b614f9782846155d290919063ffffffff16565b90506001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22958c87614fee86886155d290919063ffffffff16565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156150a657600080fd5b505af11580156150ba573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fced8518610cf00c97309551834addd978c595341eda2066dbd52f9e990489573836040518082815260200191505060405180910390a35b600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57268b87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561522057600080fd5b505af1158015615234573d6000803e3d6000fd5b505050508580600101965050614b1f565b8973ffffffffffffffffffffffffffffffffffffffff166340c10f198c8b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156152e857600080fd5b505af11580156152fc573d6000803e3d6000fd5b505050505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561534957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000818381151561541457fe5b04905092915050565b600080831415615430576000905061544f565b818302905081838281151561544157fe5b0414151561544b57fe5b8090505b92915050565b60608183111515156154cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f46524f4d5f4c4553535f5448414e5f544f5f524551554952454400000000000081525060200191505060405180910390fd5b83518211151515615548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f544f5f4c4553535f5448414e5f4c454e4754485f52455155495245440000000081525060200191505060405180910390fd5b8282036040519080825280601f01601f19166020018201604052801561557d5781602001602082028038833980820191505090505b50905061559e61558c826155eb565b84615596876155eb565b0183516155fb565b8090509392505050565b6155b061575a565b6155b861575a565b602083015181526040830151602082015280915050919050565b60008282111515156155e057fe5b818303905092915050565b6000602082019050809050919050565b6020811015615625576001816020036101000a0380198351168185511680821786525050506156a5565b82821415615632576156a6565b828211156156715760208103905080820181840181515b828510156156665784518652602085019450602086019550615649565b8082525050506156a4565b60208103905080820181840183515b8186121561569d5782518252602083039250602082039150615680565b8086525050505b5b5b505050565b61014060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600080191681525090565b6040805190810160405280600060ff1681526020016000815250905600a165627a7a723058205189cc30f7075f1d45dc1a3bb4b92abe85d02e59adb757d5639694a5e3bbfafe0029", + "sourceMap": "1228:142:1:-;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;1228:142:1;;;;;;", + "deployedSourceMap": "1228:142:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1655:256:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1655:256:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2408:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2408:204:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2199:1382:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2199:1382:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2704:420:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2704:420:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1456:372:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1456:372:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;4076:576:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4076:576:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2255:846:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2255:846:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2472:1789:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2472:1789:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:39;;;;;;2773:179:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2773:179:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1271:216;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1271:216:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:314:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1675:314:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:139:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;4564:1248:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4564:1248:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2076:162:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2076:162:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3443:423:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3443:423:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;4862:498:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4862:498:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;1655:256:9:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1883:21:9;1854:5;:26;;;:50;;;;;;;;;;;;;;;;;;1655:256;:::o;2408:204::-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2529:15:9;1709:5:21;:20;;:37;1730:15;1709:37;;;;;;;;;;;;;;;;;;;;;;;;;1760:15;;;;;;;;;;;;;;;;;;;;;;;1688:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1688:97:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2600:5:9;2560;:20;;:37;2581:15;2560:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;731:1:39;2408:204:9;:::o;2529:150:22:-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;2199:1382:10:-;2564:16;2708:27;2786:19;2856:8;2912:24;2966:16;3008:15;2310:11;1934:5:21;:15;;:28;1950:11;1934:28;;;;;;;;;;;;;;;;;;;;;;;;;1976:11;;;;;;;;;;;;;;;;;;;;;;;1913:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:84:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2350:9:10;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2391:9:10;2402:11;2221:1:21;2193:9;2183:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:34:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2183:34:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2183:34:21;;;;;;;;;;;;;;;;2171:9;:46;;;;;;;;:51;2236:16;;;;;;;;;;;;;;;;;;;;;;;2150:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2150:112:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2513:11:10;2503:27;;;2531:10;2543:9;2503:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2503:50:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2503:50:10;;;;2593:11;2583:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2583:36:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:36:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2583:36:10;;;;;;;;;;;;;;;;2564:55;;2748:11;2738:36;;;:38;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2738:38:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2738:38:10;;;;;;39:16:-1;36:1;17:17;2:54;2738:38:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2738:38:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;2738:38:10;;;;;;2708:68;;2818:11;2808:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2808:33:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2808:33:10;;;;;;39:16:-1;36:1;17:17;2:54;2808:33:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2808:33:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;2808:33:10;;;;;;2786:55;;2867:1;2856:12;;2851:724;2874:10;:17;2870:1;:21;;;2851:724;;;2939:10;2950:1;2939:13;;;;;;;;;;;;;;;;;;;;2912:40;;2985:5;2991:1;2985:8;;;;;;;;;;;;;;;;;;;;2966:27;;3026:121;3066:11;3095;3124:9;3026:22;:121::i;:::-;3008:139;;3209:5;:18;;;;;;;;;;;;3202:46;;;3266:11;3295:16;3329:10;3202:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3202:151:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3202:151:10;;;;3421:5;:18;;;;;;;;;;;;3414:46;;;3478:10;3506:16;3540:10;3414:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3414:150:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3414:150:10;;;;2893:3;;;;;;;2851:724;;;1575:1:21;;2007;2199:1382:10;;;;;;;;;;:::o;2704:420:6:-;2959:6;2844:15;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2861:11;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1937:1;1912:15;:22;:26;1952:17;;;;;;;;;;;;;;;;;;1891:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1891:88:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2092:1;2071:11;:18;:22;2107:17;;;;;;;;;;;;;;;;;;2050:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2050:84:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2257:11;:18;2231:15;:22;:44;2289:20;;;;;;;;;;;;;;;;;;;;;;;2210:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2210:109:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2968:1;2959:10;;2954:164;2975:15;;:22;;2971:1;:26;2954:164;;;3018:89;3043:15;;3059:1;3043:18;;;;;;;;;;;;;;;;;3079:11;;3091:1;3079:14;;;;;;;;;;;;;;;3018:7;:89::i;:::-;2999:3;;;;;;;2954:164;;;2704:420;;;;;;;:::o;1456:372:7:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1671:9:7;1640:5;:15;;:28;1656:11;1640:28;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1745:76;1777:11;1802:9;1745:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1456:372;;:::o;1954:123:22:-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;4076:576:6:-;4196:9;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4308:5:6;:26;;;;;;;;;;;;4293:58;;;4365:10;4389:13;4416:9;4293:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4293:142:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4293:142:6;;;;4522:5;:18;;;;;;;;;;;;4515:46;;;4575:10;4599:13;4626:9;4515:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4515:130:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4515:130:6;;;;4076:576;;;:::o;2255:846:8:-;2511:7;2560:26;2477:15;1709:5:21;:20;;:37;1730:15;1709:37;;;;;;;;;;;;;;;;;;;;;;;;;1760:15;;;;;;;;;;;;;;;;;;;;;;;1688:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1688:97:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2601:15:8;2589:35;;;2638:11;;2663:6;;2683:12;2709:5;;2728:7;;2589:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2589:156:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2589:156:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2589:156:8;;;;;;;;;;;;;;;;2560:185;;2841:4;2803:5;:15;;:35;2819:18;2803:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;2890:18;2861:197;;;2922:15;2951:11;;2976:6;;2996:12;3022:5;;3041:7;;2861:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3076:18;3069:25;;2255:846;;;;;;;;;;;;;;:::o;2472:1789:11:-;2832:39;;:::i;:::-;2701:10;2712:1;2701:13;;;;;;;;;;;;;;;1934:5:21;:15;;:28;1950:11;1934:28;;;;;;;;;;;;;;;;;;;;;;;;;1976:11;;;;;;;;;;;;;;;;;;;;;;;1913:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:84:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2743:13:11;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2788:13:11;2803:10;2814:1;2803:13;;;;;;;;;;;;;;;2221:1:21;2193:9;2183:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:34:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2183:34:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2183:34:21;;;;;;;;;;;;;;;;2171:9;:46;;;;;;;;:51;2236:16;;;;;;;;;;;;;;;;;;;;;;;2150:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2150:112:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2874:506:11;;;;;;;;;2927:10;2938:1;2927:13;;;;;;;;;;;;;;;2874:506;;;;;;2964:7;2972:1;2964:10;;;;;;;;;;;;;2874:506;;;;3002:10;3013:1;3002:13;;;;;;;;;;;;;;;2874:506;;;;;;3041:10;3052:1;3041:13;;;;;;;;;;;;;;;2874:506;;;;;;3086:7;3094:1;3086:10;;;;;;;;;;;;;2874:506;;;;3122:7;3130:1;3122:10;;;;;;;;;;;;;2874:506;;;;3160:10;3171:1;3160:13;;;;;;;;;;;;;;;2874:506;;;;;;3207:7;3215:1;3207:10;;;;;;;;;;;;;2874:506;;;;3237:7;3245:1;3237:10;;;;;;;;;;;;;2874:506;;;;3272:97;3320:10;3272:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3348:7;3272:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:30;:97::i;:::-;2874:506;;;;;;2832:548;;3455:69;3482:5;3501:13;3455;:69::i;:::-;3597:173;3645:5;:15;;;3678:5;:18;;;3714:2;3734;3754;3597:30;:173::i;:::-;3784:17;;;;;;;;;;;;;;;;;;3576:235;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3576:235:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3857:33;3879:10;;3857:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;:33::i;:::-;4059:52;4097:13;4059:5;:16;;:33;4076:5;:15;;;4059:33;;;;;;;;;;;;;;;;;;:37;;:52;;;;:::i;:::-;4023:5;:16;;:33;4040:5;:15;;;4023:33;;;;;;;;;;;;;;;;;:88;;;;4142:112;4169:5;:18;;;4201:5;:16;;;4231:13;4142;:112::i;:::-;1575:1:21;;2007;2472:1789:11;;;;;;;;;;:::o;827:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;2773:179:9:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2882:11:9;1934:5:21;:15;;:28;1950:11;1934:28;;;;;;;;;;;;;;;;;;;;;;;;;1976:11;;;;;;;;;;;;;;;;;;;;;;;1913:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:84:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2940:5:9;2909;:15;;:28;2925:11;2909:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;731:1:39;2773:179:9;:::o;1271:216::-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1467:13:9;1446:5;:18;;;:34;;;;;;;;;;;;;;;;;;1271:216;:::o;1675:314:10:-;1785:11;1934:5:21;:15;;:28;1950:11;1934:28;;;;;;;;;;;;;;;;;;;;;;;;;1976:11;;;;;;;;;;;;;;;;;;;;;;;1913:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:84:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1825:9:10;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1866:9:10;1877:11;2221:1:21;2193:9;2183:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:34:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2183:34:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2183:34:21;;;;;;;;;;;;;;;;2171:9;:46;;;;;;;;:51;2236:16;;;;;;;;;;;;;;;;;;;;;;;2150:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2150:112:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1933:49:10;1947:10;1959:11;1972:9;1933:13;:49::i;:::-;1575:1:21;;2007;1675:314:10;;;:::o;1809:139:22:-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;238:20:39:-;;;;;;;;;;;;;:::o;4564:1248:11:-;4752:39;;:::i;:::-;4721:15;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4794:506:11;;;;;;;;;4847:10;4858:1;4847:13;;;;;;;;;;;;;;;4794:506;;;;;;4884:7;4892:1;4884:10;;;;;;;;;;;;;4794:506;;;;4922:10;4933:1;4922:13;;;;;;;;;;;;;;;4794:506;;;;;;4961:10;4972:1;4961:13;;;;;;;;;;;;;;;4794:506;;;;;;5006:7;5014:1;5006:10;;;;;;;;;;;;;4794:506;;;;5042:7;5050:1;5042:10;;;;;;;;;;;;;4794:506;;;;5080:10;5091:1;5080:13;;;;;;;;;;;;;;;4794:506;;;;;;5127:7;5135:1;5127:10;;;;;;;;;;;;;4794:506;;;;5157:7;5165:1;5157:10;;;;;;;;;;;;;4794:506;;;;5192:97;5240:10;5192:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5268:7;5192:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:30;:97::i;:::-;4794:506;;;;;;4752:548;;5392:10;5370:32;;:5;:18;;;:32;;;5404:20;;;;;;;;;;;;;;;;;;5362:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5362:63:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5503:71;5530:5;5549:15;5503:13;:71::i;:::-;5749:56;5789:15;5749:5;:18;;:35;5768:5;:15;;;5749:35;;;;;;;;;;;;;;;;;;:39;;:56;;;;:::i;:::-;5711:5;:18;;:35;5730:5;:15;;;5711:35;;;;;;;;;;;;;;;;;:94;;;;4564:1248;;;;;:::o;2076:162:9:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2227:4:9;2187:5;:20;;:37;2208:15;2187:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2076:162;:::o;1656:147:22:-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3443:423:6:-;3700:6;3584:15;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3601:11;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1937:1;1912:15;:22;:26;1952:17;;;;;;;;;;;;;;;;;;1891:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1891:88:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2092:1;2071:11;:18;:22;2107:17;;;;;;;;;;;;;;;;;;2050:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2050:84:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2257:11;:18;2231:15;:22;:44;2289:20;;;;;;;;;;;;;;;;;;;;;;;2210:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2210:109:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3709:1;3700:10;;3695:165;3716:15;;:22;;3712:1;:26;3695:165;;;3759:90;3785:15;;3801:1;3785:18;;;;;;;;;;;;;;;;;3821:11;;3833:1;3821:14;;;;;;;;;;;;;;;3759:8;:90::i;:::-;3740:3;;;;;;;3695:165;;;3443:423;;;;;;;:::o;1100:103:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;4862:498:6:-;5038:5;:18;;;;;;;;;;;;5031:46;;;5091:10;5115:13;5142:9;5031:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5031:130:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5031:130:6;;;;5239:5;:18;;;;;;;;;;;;5232:37;;;5283:13;5310:10;5334:9;5232:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5232:121:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5232:121:6;;;;4862:498;;:::o;2377:146:22:-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o;3947:247:10:-;4112:4;4139:48;4171:15;4139:27;4153:12;4139:9;:13;;:27;;;;:::i;:::-;:31;;:48;;;;:::i;:::-;4132:55;;3947:247;;;;;:::o;1706:688:25:-;1841:7;1965:10;1976:1;1965:13;;;;;;;;;;;;;2010:10;2021:1;2010:13;;;;;;;;;;;;;2057:10;2068:1;2057:13;;;;;;;;;;;;;2102:10;2113:1;2102:13;;;;;;;;;;;;;2149:7;2157:1;2149:10;;;;;;;;;;;;;2192:7;2200:1;2192:10;;;;;;;;;;;;;2243:7;2251:1;2243:10;;;;;;;;;;;;;2288:7;2296:1;2288:10;;;;;;;;;;;;;2341:7;2349:1;2341:10;;;;;;;;;;;;;1931:446;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1931:446:25;;;1908:479;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1908:479:25;;;;;;;;;;;;;;;;1901:486;;1706:688;;;;:::o;7628:611:11:-;7898:1;7872:6;:23;;;:27;:50;;;;;7921:1;7903:6;:15;;;:19;7872:50;7936:21;;;;;;;;;;;;;;;;;;;;;;;7851:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7851:116:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8063:6;:17;;;8044:15;:36;;8094:13;;;;;;;;;;;;;;;;;;8023:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8023:94:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7628:611;;:::o;2758:647:25:-;2955:4;3032:18;3092:22;:59;;;;;;;;;;;;;;;;;;;;3221:131;3271:9;3282:10;3254:39;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3254:39:25;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3254:39:25;;;3244:50;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3244:50:25;;;;;;;;;;;;;;;;3308:2;3324;3340;3221:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3221:131:25;;;;;;;;3208:144;;3384:14;3370:28;;:10;:28;;;3363:35;;2758:647;;;;;;;;;:::o;6069:1347:11:-;6162:20;6298:23;6473:41;;:::i;:::-;6691:16;6989:19;7062:22;6192:1218;6214:10;:17;6199:12;:32;6192:1218;;;6324:135;6356:10;6384:12;6414:31;1470:2;6414:12;:16;;:31;;;;:::i;:::-;6324:14;:135::i;:::-;6298:161;;6517:74;6567:10;6517:32;:74::i;:::-;6473:118;;6710:5;:15;;:32;6726:6;:15;;;6710:32;;;;;;;;;;;;;;;;;;;;;;;;;6691:51;;6855:1;6835:22;;:8;:22;;;;6875:16;;;;;;;;;;;;;;;;;;6810:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6810:95:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7011:37;1470:2;7011:6;:18;;;:22;;:37;;;;:::i;:::-;6989:59;;7087:152;7119:10;7147:31;1470:2;7147:12;:16;;:31;;;;:::i;:::-;7196:29;7213:11;7196:12;:16;;:29;;;;:::i;:::-;7087:14;:152::i;:::-;7062:177;;7370:29;7387:11;7370:12;:16;;:29;;;;:::i;:::-;7355:44;;6192:1218;;;6069:1347;;;;;;;:::o;1214:123:38:-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;4503:2657:10:-;4678:27;4799:19;4927:8;4983:17;5030:9;5118:30;5354:17;6196:20;4718:11;4708:36;;;:38;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4708:38:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4708:38:10;;;;;;39:16:-1;36:1;17:17;2:54;4708:38:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4708:38:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;4708:38:10;;;;;;4678:68;;4831:11;4821:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4821:33:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4821:33:10;;;;;;39:16:-1;36:1;17:17;2:54;4821:33:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4821:33:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;4821:33:10;;;;;;4799:55;;4938:1;4927:12;;4922:2148;4945:10;:17;4941:1;:21;;;4922:2148;;;5003:10;5014:1;5003:13;;;;;;;;;;;;;;;;;;;;4983:33;;5042:5;5048:1;5042:8;;;;;;;;;;;;;;;;;;;;5030:20;;5151:139;5191:4;5223:11;5213:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5213:36:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5213:36:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5213:36:10;;;;;;;;;;;;;;;;5267:9;5151:22;:139::i;:::-;5118:172;;5381:5;:18;;;;;;;;;;;;5374:42;;;5417:6;5425:9;5374:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5374:61:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5374:61:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5374:61:10;;;;;;;;;;;;;;;;5354:81;;5469:25;5453:12;:41;;5449:1359;;;5599:5;:18;;;;;;;;;;;;5592:46;;;5660:6;5688:9;5719:25;5592:170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5592:170:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5592:170:10;;;;5449:1359;;;5911:1;5896:12;:16;5892:236;;;5943:5;:18;;;;;;;;;;;;5936:46;;;6008:6;6040:9;6075:12;5936:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5936:173:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5936:173:10;;;;5892:236;6219:43;6249:12;6219:25;:29;;:43;;;;:::i;:::-;6196:66;;6375:5;:26;;;;;;;;;;;;6360:58;;;6440:6;6468:9;6499:43;6529:12;6499:25;:29;;:43;;;;:::i;:::-;6360:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6360:200:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6360:200:10;;;;6729:9;6648:145;;6696:11;6648:145;;;6760:15;6648:145;;;;;;;;;;;;;;;;;;5449:1359;6907:5;:18;;;;;;;;;;;;6900:46;;;6964:11;6993:9;7020:25;6900:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6900:159:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6900:159:10;;;;4964:3;;;;;;;4922:2148;;;7117:11;7107:27;;;7135:6;7143:9;7107:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7107:46:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7107:46:10;;;;4503:2657;;;;;;;;;;;:::o;1338:171:39:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o;658:272:38:-;716:7;924:1;920;:5;;;;;;;;913:12;;658:272;;;;:::o;203:373::-;261:9;492:1;487;:6;483:35;;;510:1;503:8;;;;483:35;532:1;528;:5;524:9;;555:1;550;546;:5;;;;;;;;:10;539:18;;;;;;570:1;563:8;;203:373;;;;;:::o;6563:681:26:-;6667:19;6731:2;6723:4;:10;;6702:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6925:1;:8;6919:2;:14;;6795:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7088:4;7083:2;:9;7073:20;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;7073:20:26;;;;7064:29;;7103:111;7124:23;:6;:21;:23::i;:::-;7182:4;7161:18;:1;:16;:18::i;:::-;:25;7200:6;:13;7103:7;:111::i;:::-;7231:6;7224:13;;6563:681;;;;;:::o;1386:383:24:-;1492:11;;:::i;:::-;1526:25;;:::i;:::-;1632:2;1619:11;1615:20;1609:27;1592:6;1585:52;1709:2;1696:11;1692:20;1686:27;1681:2;1673:6;1669:15;1662:52;1756:6;1749:13;;1386:383;;;;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;850:228:26:-;941:21;1029:2;1022:5;1018:14;1001:31;;1058:13;1051:20;;850:228;;;:::o;2044:4207::-;2194:2;2185:6;:11;2181:4064;;;2483:1;2473:6;2469:2;2465:15;2460:3;2456:25;2452:33;2534:4;2530:9;2521:6;2515:13;2511:29;2583:4;2576;2570:11;2566:22;2624:1;2621;2618:8;2612:4;2605:22;2422:219;;;;;;2745:4;2735:6;:14;2731:59;;;2769:7;;2731:59;3479:4;3470:6;:13;3466:2769;;;3805:2;3797:6;3793:15;3783:25;;3853:6;3845;3841:19;3903:6;3897:4;3893:17;4210:4;4204:11;4413:198;4431:4;4423:6;4420:16;4413:198;;;4485:6;4479:13;4473:4;4466:27;4540:2;4532:6;4528:15;4518:25;;4586:2;4580:4;4576:13;4568:21;;4413:198;;;4713:4;4707;4700:18;3512:1224;;;;;;4981:2;4973:6;4969:15;4959:25;;5029:6;5021;5017:19;5079:6;5073:4;5069:17;5389:6;5383:13;5903:191;5920:4;5914;5910:15;5903:191;;;5974:4;5968:11;5962:4;5955:25;6023:2;6017:4;6013:13;6005:21;;6069:2;6063:4;6059:13;6051:21;;5903:191;;;6197:5;6191:4;6184:19;4783:1438;;;;2181:4064;2044:4207;;;;:::o;1228:142:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { CoreAccounting } from \"./extensions/CoreAccounting.sol\";\nimport { CoreExchangeDispatcher } from \"./extensions/CoreExchangeDispatcher.sol\";\nimport { CoreFactory } from \"./extensions/CoreFactory.sol\";\nimport { CoreInternal } from \"./extensions/CoreInternal.sol\";\nimport { CoreIssuance } from \"./extensions/CoreIssuance.sol\";\nimport { CoreIssuanceOrder } from \"./extensions/CoreIssuanceOrder.sol\";\n\n\n\n/**\n * @title Core\n * @author Set Protocol\n *\n * The Core contract acts as a coordinator handling issuing, redeeming, and\n * creating Sets, as well as all collateral flows throughout the system.\n */\ncontract Core is\n CoreExchangeDispatcher,\n CoreIssuanceOrder,\n CoreAccounting,\n CoreInternal,\n CoreFactory,\n CoreIssuance\n{}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/Core.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/Core.sol", + "exportedSymbols": { + "Core": [ + 83 + ] + }, + "id": 84, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 58, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:1" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreAccounting.sol", + "file": "./extensions/CoreAccounting.sol", + "id": 60, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1128, + "src": "622:65:1", + "symbolAliases": [ + { + "foreign": 59, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreExchangeDispatcher.sol", + "file": "./extensions/CoreExchangeDispatcher.sol", + "id": 62, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1168, + "src": "688:81:1", + "symbolAliases": [ + { + "foreign": 61, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreFactory.sol", + "file": "./extensions/CoreFactory.sol", + "id": 64, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1263, + "src": "770:59:1", + "symbolAliases": [ + { + "foreign": 63, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreInternal.sol", + "file": "./extensions/CoreInternal.sol", + "id": 66, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1360, + "src": "830:61:1", + "symbolAliases": [ + { + "foreign": 65, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuance.sol", + "file": "./extensions/CoreIssuance.sol", + "id": 68, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1697, + "src": "892:61:1", + "symbolAliases": [ + { + "foreign": 67, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuanceOrder.sol", + "file": "./extensions/CoreIssuanceOrder.sol", + "id": 70, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 2065, + "src": "954:71:1", + "symbolAliases": [ + { + "foreign": 69, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 71, + "name": "CoreExchangeDispatcher", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1167, + "src": "1249:22:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreExchangeDispatcher_$1167", + "typeString": "contract CoreExchangeDispatcher" + } + }, + "id": 72, + "nodeType": "InheritanceSpecifier", + "src": "1249:22:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 73, + "name": "CoreIssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2064, + "src": "1277:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreIssuanceOrder_$2064", + "typeString": "contract CoreIssuanceOrder" + } + }, + "id": 74, + "nodeType": "InheritanceSpecifier", + "src": "1277:17:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 75, + "name": "CoreAccounting", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1127, + "src": "1300:14:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreAccounting_$1127", + "typeString": "contract CoreAccounting" + } + }, + "id": 76, + "nodeType": "InheritanceSpecifier", + "src": "1300:14:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 77, + "name": "CoreInternal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1359, + "src": "1320:12:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreInternal_$1359", + "typeString": "contract CoreInternal" + } + }, + "id": 78, + "nodeType": "InheritanceSpecifier", + "src": "1320:12:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 79, + "name": "CoreFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1262, + "src": "1338:11:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreFactory_$1262", + "typeString": "contract CoreFactory" + } + }, + "id": 80, + "nodeType": "InheritanceSpecifier", + "src": "1338:11:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 81, + "name": "CoreIssuance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1696, + "src": "1355:12:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreIssuance_$1696", + "typeString": "contract CoreIssuance" + } + }, + "id": 82, + "nodeType": "InheritanceSpecifier", + "src": "1355:12:1" + } + ], + "contractDependencies": [ + 1127, + 1167, + 1262, + 1359, + 1696, + 2064, + 2435, + 2638, + 2751, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Core\n@author Set Protocol\n * The Core contract acts as a coordinator handling issuing, redeeming, and\ncreating Sets, as well as all collateral flows throughout the system.", + "fullyImplemented": true, + "id": 83, + "linearizedBaseContracts": [ + 83, + 1696, + 1262, + 1359, + 1127, + 2064, + 2638, + 1167, + 2751, + 4824, + 2435 + ], + "name": "Core", + "nodeType": "ContractDefinition", + "nodes": [], + "scope": 84, + "src": "1228:142:1" + } + ], + "src": "597:774:1" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/Core.sol", + "exportedSymbols": { + "Core": [ + 83 + ] + }, + "id": 84, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 58, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:1" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreAccounting.sol", + "file": "./extensions/CoreAccounting.sol", + "id": 60, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1128, + "src": "622:65:1", + "symbolAliases": [ + { + "foreign": 59, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreExchangeDispatcher.sol", + "file": "./extensions/CoreExchangeDispatcher.sol", + "id": 62, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1168, + "src": "688:81:1", + "symbolAliases": [ + { + "foreign": 61, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreFactory.sol", + "file": "./extensions/CoreFactory.sol", + "id": 64, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1263, + "src": "770:59:1", + "symbolAliases": [ + { + "foreign": 63, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreInternal.sol", + "file": "./extensions/CoreInternal.sol", + "id": 66, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1360, + "src": "830:61:1", + "symbolAliases": [ + { + "foreign": 65, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuance.sol", + "file": "./extensions/CoreIssuance.sol", + "id": 68, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 1697, + "src": "892:61:1", + "symbolAliases": [ + { + "foreign": 67, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuanceOrder.sol", + "file": "./extensions/CoreIssuanceOrder.sol", + "id": 70, + "nodeType": "ImportDirective", + "scope": 84, + "sourceUnit": 2065, + "src": "954:71:1", + "symbolAliases": [ + { + "foreign": 69, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 71, + "name": "CoreExchangeDispatcher", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1167, + "src": "1249:22:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreExchangeDispatcher_$1167", + "typeString": "contract CoreExchangeDispatcher" + } + }, + "id": 72, + "nodeType": "InheritanceSpecifier", + "src": "1249:22:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 73, + "name": "CoreIssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2064, + "src": "1277:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreIssuanceOrder_$2064", + "typeString": "contract CoreIssuanceOrder" + } + }, + "id": 74, + "nodeType": "InheritanceSpecifier", + "src": "1277:17:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 75, + "name": "CoreAccounting", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1127, + "src": "1300:14:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreAccounting_$1127", + "typeString": "contract CoreAccounting" + } + }, + "id": 76, + "nodeType": "InheritanceSpecifier", + "src": "1300:14:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 77, + "name": "CoreInternal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1359, + "src": "1320:12:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreInternal_$1359", + "typeString": "contract CoreInternal" + } + }, + "id": 78, + "nodeType": "InheritanceSpecifier", + "src": "1320:12:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 79, + "name": "CoreFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1262, + "src": "1338:11:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreFactory_$1262", + "typeString": "contract CoreFactory" + } + }, + "id": 80, + "nodeType": "InheritanceSpecifier", + "src": "1338:11:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 81, + "name": "CoreIssuance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1696, + "src": "1355:12:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreIssuance_$1696", + "typeString": "contract CoreIssuance" + } + }, + "id": 82, + "nodeType": "InheritanceSpecifier", + "src": "1355:12:1" + } + ], + "contractDependencies": [ + 1127, + 1167, + 1262, + 1359, + 1696, + 2064, + 2435, + 2638, + 2751, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Core\n@author Set Protocol\n * The Core contract acts as a coordinator handling issuing, redeeming, and\ncreating Sets, as well as all collateral flows throughout the system.", + "fullyImplemented": true, + "id": 83, + "linearizedBaseContracts": [ + 83, + 1696, + 1262, + 1359, + 1127, + 2064, + 2638, + 1167, + 2751, + 4824, + 2435 + ], + "name": "Core", + "nodeType": "ContractDefinition", + "nodes": [], + "scope": 84, + "src": "1228:142:1" + } + ], + "src": "597:774:1" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.888Z" +} \ No newline at end of file diff --git a/artifacts/ts/CoreAccounting.ts b/artifacts/ts/CoreAccounting.ts new file mode 100644 index 000000000..675bef6b9 --- /dev/null +++ b/artifacts/ts/CoreAccounting.ts @@ -0,0 +1,5496 @@ +export const CoreAccounting = +{ + "contractName": "CoreAccounting", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddresses", + "type": "address[]" + }, + { + "name": "_quantities", + "type": "uint256[]" + } + ], + "name": "batchDeposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddresses", + "type": "address[]" + }, + { + "name": "_quantities", + "type": "uint256[]" + } + ], + "name": "batchWithdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506113aa806100206000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100bf5780631e912bd61461011a57806330a907361461015f578063430bf08a146101b257806347e7ef24146102095780638ca4daf914610256578063a003e069146102ad578063c19d93fb1461031d578063e131243e146103a7578063f3fef3a3146103fa578063f7213db614610447578063fef3ee731461048c575b600080fd5b3480156100cb57600080fd5b50610100600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104e7565b604051808215151515815260200191505060405180910390f35b34801561012657600080fd5b50610149600480360381019080803560001916906020019092919050505061053f565b6040518082815260200191505060405180910390f35b34801561016b57600080fd5b506101b0600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050610566565b005b3480156101be57600080fd5b506101c7610909565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021557600080fd5b50610254600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610935565b005b34801561026257600080fd5b5061026b610c6d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102b957600080fd5b506102db600480360381019080803560ff169060200190929190505050610c99565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032957600080fd5b50610332610cde565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156103b357600080fd5b506103f8600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050610d30565b005b34801561040657600080fd5b50610445600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110d3565b005b34801561045357600080fd5b5061047660048036038101908080356000191690602001909291905050506112ff565b6040518082815260200191505060405180910390f35b34801561049857600080fd5b506104cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611326565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e000000008152509015156106ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610670578082015181840152602081019050610655565b50505050905090810190601f16801561069d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e00000081525090151561078f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610754578082015181840152602081019050610739565b50505050905090810190601f1680156107815780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e00000000000000000000000000000081525090151561089a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561085f578082015181840152602081019050610844565b50505050905090810190601f16801561088c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b86869050831015610900576108f387878581811015156108bc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1686868681811015156108e757fe5b90506020020135610935565b82806001019350506108a0565b50505050505050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515610a3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a045780820151818401526020810190506109e9565b50505050905090810190601f168015610a315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22953385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610b3c57600080fd5b505af1158015610b50573d6000803e3d6000fd5b50505050600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610c5057600080fd5b505af1158015610c64573d6000803e3d6000fd5b50505050505050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e00000000815250901515610e75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e3a578082015181840152602081019050610e1f565b50505050905090810190601f168015610e675780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e000000815250901515610f59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f1e578082015181840152602081019050610f03565b50505050905090810190601f168015610f4b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e000000000000000000000000000000815250901515611064576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561102957808201518184015260208101905061100e565b50505050905090810190601f1680156110565780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b868690508310156110ca576110bd878785818110151561108657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1686868681811015156110b157fe5b905060200201356110d3565b828060010193505061106a565b50505050505050565b600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda303384846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156111cf57600080fd5b505af11580156111e3573d6000803e3d6000fd5b50505050600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c3b35a7e8333846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156112e357600080fd5b505af11580156112f7573d6000803e3d6000fd5b505050505050565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058201d8f134bb468515ef516fc187011140f2e0a38b5367ee224003dd96aa99cba690029", + "deployedBytecode": "0x6080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100bf5780631e912bd61461011a57806330a907361461015f578063430bf08a146101b257806347e7ef24146102095780638ca4daf914610256578063a003e069146102ad578063c19d93fb1461031d578063e131243e146103a7578063f3fef3a3146103fa578063f7213db614610447578063fef3ee731461048c575b600080fd5b3480156100cb57600080fd5b50610100600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104e7565b604051808215151515815260200191505060405180910390f35b34801561012657600080fd5b50610149600480360381019080803560001916906020019092919050505061053f565b6040518082815260200191505060405180910390f35b34801561016b57600080fd5b506101b0600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050610566565b005b3480156101be57600080fd5b506101c7610909565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021557600080fd5b50610254600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610935565b005b34801561026257600080fd5b5061026b610c6d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102b957600080fd5b506102db600480360381019080803560ff169060200190929190505050610c99565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032957600080fd5b50610332610cde565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156103b357600080fd5b506103f8600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050610d30565b005b34801561040657600080fd5b50610445600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110d3565b005b34801561045357600080fd5b5061047660048036038101908080356000191690602001909291905050506112ff565b6040518082815260200191505060405180910390f35b34801561049857600080fd5b506104cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611326565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e000000008152509015156106ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610670578082015181840152602081019050610655565b50505050905090810190601f16801561069d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e00000081525090151561078f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610754578082015181840152602081019050610739565b50505050905090810190601f1680156107815780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e00000000000000000000000000000081525090151561089a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561085f578082015181840152602081019050610844565b50505050905090810190601f16801561088c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b86869050831015610900576108f387878581811015156108bc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1686868681811015156108e757fe5b90506020020135610935565b82806001019350506108a0565b50505050505050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515610a3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a045780820151818401526020810190506109e9565b50505050905090810190601f168015610a315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22953385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610b3c57600080fd5b505af1158015610b50573d6000803e3d6000fd5b50505050600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610c5057600080fd5b505af1158015610c64573d6000803e3d6000fd5b50505050505050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b600084848080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505083838080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505060008251116040805190810160405280601c81526020017f416464726573736573206d757374206e6f7420626520656d7074792e00000000815250901515610e75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e3a578082015181840152602081019050610e1f565b50505050905090810190601f168015610e675780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008151116040805190810160405280601d81526020017f5175616e746974696573206d757374206e6f7420626520656d7074792e000000815250901515610f59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f1e578082015181840152602081019050610f03565b50505050905090810190601f168015610f4b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508051825114606060405190810160405280603181526020017f41646472657373657320616e64207175616e746974696573206d75737420626581526020017f207468652073616d65206c656e6774682e000000000000000000000000000000815250901515611064576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561102957808201518184015260208101905061100e565b50505050905090810190601f1680156110565780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600092505b868690508310156110ca576110bd878785818110151561108657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1686868681811015156110b157fe5b905060200201356110d3565b828060010193505061106a565b50505050505050565b600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda303384846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156111cf57600080fd5b505af11580156111e3573d6000803e3d6000fd5b50505050600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c3b35a7e8333846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156112e357600080fd5b505af11580156112f7573d6000803e3d6000fd5b505050505050565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058201d8f134bb468515ef516fc187011140f2e0a38b5367ee224003dd96aa99cba690029", + "sourceMap": "1113:4249:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1113:4249:6;;;;;;;", + "deployedSourceMap": "1113:4249:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2704:420:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2704:420:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;4076:576:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4076:576:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:139:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3443:423:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3443:423:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4862:498;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4862:498:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;2529:::-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;2704:420:6:-;2959:6;2844:15;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2861:11;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1937:1;1912:15;:22;:26;1952:17;;;;;;;;;;;;;;;;;;1891:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1891:88:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2092:1;2071:11;:18;:22;2107:17;;;;;;;;;;;;;;;;;;2050:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2050:84:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2257:11;:18;2231:15;:22;:44;2289:20;;;;;;;;;;;;;;;;;;;;;;;2210:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2210:109:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2968:1;2959:10;;2954:164;2975:15;;:22;;2971:1;:26;2954:164;;;3018:89;3043:15;;3059:1;3043:18;;;;;;;;;;;;;;;;;3079:11;;3091:1;3079:14;;;;;;;;;;;;;;;3018:7;:89::i;:::-;2999:3;;;;;;;2954:164;;;2704:420;;;;;;;:::o;1954:123:22:-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;4076:576:6:-;4196:9;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4308:5:6;:26;;;;;;;;;;;;4293:58;;;4365:10;4389:13;4416:9;4293:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4293:142:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4293:142:6;;;;4522:5;:18;;;;;;;;;;;;4515:46;;;4575:10;4599:13;4626:9;4515:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4515:130:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4515:130:6;;;;4076:576;;;:::o;1809:139:22:-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;1656:147::-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3443:423:6:-;3700:6;3584:15;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3601:11;;1742:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1937:1;1912:15;:22;:26;1952:17;;;;;;;;;;;;;;;;;;1891:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1891:88:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2092:1;2071:11;:18;:22;2107:17;;;;;;;;;;;;;;;;;;2050:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2050:84:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2257:11;:18;2231:15;:22;:44;2289:20;;;;;;;;;;;;;;;;;;;;;;;2210:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2210:109:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3709:1;3700:10;;3695:165;3716:15;;:22;;3712:1;:26;3695:165;;;3759:90;3785:15;;3801:1;3785:18;;;;;;;;;;;;;;;;;3821:11;;3833:1;3821:14;;;;;;;;;;;;;;;3759:8;:90::i;:::-;3740:3;;;;;;;3695:165;;;3443:423;;;;;;;:::o;4862:498::-;5038:5;:18;;;;;;;;;;;;5031:46;;;5091:10;5115:13;5142:9;5031:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5031:130:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5031:130:6;;;;5239:5;:18;;;;;;;;;;;;5232:37;;;5283:13;5310:10;5334:9;5232:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5232:121:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5232:121:6;;;;4862:498;;:::o;2377:146:22:-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { CoreModifiers } from \"../lib/CoreSharedModifiers.sol\";\nimport { CoreState } from \"../lib/CoreState.sol\";\nimport { ITransferProxy } from \"../interfaces/ITransferProxy.sol\";\nimport { IVault } from \"../interfaces/IVault.sol\";\n\n\n/**\n * @title Core Accounting\n * @author Set Protocol\n *\n * The CoreAccounting contract interfaces with the vault and transfer transfer proxies\n * for storage of tokenized assets\n */\ncontract CoreAccounting is\n CoreState,\n CoreModifiers\n{\n // Use SafeMath library for all uint256 arithmetic\n using SafeMath for uint256;\n\n /* ============ Constants ============ */\n\n string constant ADDRESSES_MISSING = \"Addresses must not be empty.\";\n string constant BATCH_INPUT_MISMATCH = \"Addresses and quantities must be the same length.\";\n string constant QUANTITES_MISSING = \"Quantities must not be empty.\";\n string constant ZERO_QUANTITY = \"Quantity must be greater than zero.\";\n\n /* ============ Modifiers ============ */\n\n // Confirm that all inputs are valid for batch transactions\n modifier isValidBatchTransaction(address[] _tokenAddresses, uint[] _quantities) {\n // Confirm an empty _addresses array is not passed\n require(\n _tokenAddresses.length > 0,\n ADDRESSES_MISSING\n );\n\n // Confirm an empty _quantities array is not passed\n require(\n _quantities.length > 0,\n QUANTITES_MISSING\n );\n\n // Confirm there is one quantity for every token address\n require(\n _tokenAddresses.length == _quantities.length,\n BATCH_INPUT_MISMATCH\n );\n _;\n }\n\n /* ============ Public Functions ============ */\n\n /**\n * Deposit multiple tokens to the vault. Quantities should be in the\n * order of the addresses of the tokens being deposited.\n *\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n * @param _quantities Array of the number of tokens to deposit\n */\n function batchDeposit(\n address[] _tokenAddresses,\n uint[] _quantities\n )\n external\n isValidBatchTransaction(_tokenAddresses, _quantities)\n {\n // For each token and quantity pair, run deposit function\n for (uint i = 0; i < _tokenAddresses.length; i++) {\n deposit(\n _tokenAddresses[i],\n _quantities[i]\n );\n }\n }\n\n /**\n * Withdraw multiple tokens from the vault. Quantities should be in the\n * order of the addresses of the tokens being withdrawn.\n *\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n * @param _quantities Array of the number of tokens to withdraw\n */\n function batchWithdraw(\n address[] _tokenAddresses,\n uint[] _quantities\n )\n external\n isValidBatchTransaction(_tokenAddresses, _quantities)\n {\n // For each token and quantity pair, run withdraw function\n for (uint i = 0; i < _tokenAddresses.length; i++) {\n withdraw(\n _tokenAddresses[i],\n _quantities[i]\n );\n }\n }\n\n /**\n * Deposit any quantity of tokens into the vault.\n *\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to deposit\n */\n function deposit(\n address _tokenAddress,\n uint _quantity\n )\n public\n isPositiveQuantity(_quantity)\n {\n // Call TransferProxy contract to transfer user tokens to Vault\n ITransferProxy(state.transferProxyAddress).transferToVault(\n msg.sender,\n _tokenAddress,\n _quantity\n );\n\n // Call Vault contract to attribute deposited tokens to user\n IVault(state.vaultAddress).incrementTokenOwner(\n msg.sender,\n _tokenAddress,\n _quantity\n );\n }\n\n /**\n * Withdraw a quantity of tokens from the vault.\n *\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to withdraw\n */\n function withdraw(\n address _tokenAddress,\n uint _quantity\n )\n public\n {\n // Call Vault contract to deattribute tokens to user\n IVault(state.vaultAddress).decrementTokenOwner(\n msg.sender,\n _tokenAddress,\n _quantity\n );\n\n // Call Vault to withdraw tokens from Vault to user\n IVault(state.vaultAddress).withdrawTo(\n _tokenAddress,\n msg.sender,\n _quantity\n );\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreAccounting.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreAccounting.sol", + "exportedSymbols": { + "CoreAccounting": [ + 1127 + ] + }, + "id": 1128, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 927, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:6" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 929, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 4739, + "src": "622:73:6", + "symbolAliases": [ + { + "foreign": 928, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 931, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2639, + "src": "696:63:6", + "symbolAliases": [ + { + "foreign": 930, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 933, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2752, + "src": "760:49:6", + "symbolAliases": [ + { + "foreign": 932, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ITransferProxy.sol", + "file": "../interfaces/ITransferProxy.sol", + "id": 935, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2517, + "src": "810:66:6", + "symbolAliases": [ + { + "foreign": 934, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IVault.sol", + "file": "../interfaces/IVault.sol", + "id": 937, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2556, + "src": "877:50:6", + "symbolAliases": [ + { + "foreign": 936, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 938, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1144:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 939, + "nodeType": "InheritanceSpecifier", + "src": "1144:9:6" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 940, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1159:13:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 941, + "nodeType": "InheritanceSpecifier", + "src": "1159:13:6" + } + ], + "contractDependencies": [ + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Accounting\n@author Set Protocol\n * The CoreAccounting contract interfaces with the vault and transfer transfer proxies\nfor storage of tokenized assets", + "fullyImplemented": true, + "id": 1127, + "linearizedBaseContracts": [ + 1127, + 2638, + 2751 + ], + "name": "CoreAccounting", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 944, + "libraryName": { + "contractScope": null, + "id": 942, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1240:8:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1234:27:6", + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1253:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 947, + "name": "ADDRESSES_MISSING", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1314:66:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 945, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1314:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "416464726573736573206d757374206e6f7420626520656d7074792e", + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1350:30:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d4a195b4cf9e73a77ea63711a903227f3150e3627941a137d172dc797b82cd84", + "typeString": "literal_string \"Addresses must not be empty.\"" + }, + "value": "Addresses must not be empty." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 950, + "name": "BATCH_INPUT_MISMATCH", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1386:90:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 948, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1386:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "41646472657373657320616e64207175616e746974696573206d757374206265207468652073616d65206c656e6774682e", + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1425:51:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_318e95b0e08a378091697c889a887ce37fc37d71fa98e0de98a8e0acdda536f1", + "typeString": "literal_string \"Addresses and quantities must be the same length.\"" + }, + "value": "Addresses and quantities must be the same length." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 953, + "name": "QUANTITES_MISSING", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1482:67:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 951, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1482:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e746974696573206d757374206e6f7420626520656d7074792e", + "id": 952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1518:31:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7fd703fbbd234863ddc498f6ccb7e69d3003879a21aabd2ddb6d2773c3639cf0", + "typeString": "literal_string \"Quantities must not be empty.\"" + }, + "value": "Quantities must not be empty." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 956, + "name": "ZERO_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1555:69:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 954, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1555:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d7573742062652067726561746572207468616e207a65726f2e", + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1587:37:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3da6978e12ad268e4eb66f4a79840b60e48f93e78540f7911187ddd7f0f6f2c7", + "typeString": "literal_string \"Quantity must be greater than zero.\"" + }, + "value": "Quantity must be greater than zero." + }, + "visibility": "internal" + }, + { + "body": { + "id": 990, + "nodeType": "Block", + "src": "1822:515:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 965, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "1912:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1912:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1937:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1912:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 969, + "name": "ADDRESSES_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "1952:17:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 964, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1891:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1891:88:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 971, + "nodeType": "ExpressionStatement", + "src": "1891:88:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 973, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 962, + "src": "2071:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2071:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2092:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2071:22:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 977, + "name": "QUANTITES_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 953, + "src": "2107:17:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2050:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2050:84:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 979, + "nodeType": "ExpressionStatement", + "src": "2050:84:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 981, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "2231:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2231:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 983, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 962, + "src": "2257:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2257:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2231:44:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 986, + "name": "BATCH_INPUT_MISMATCH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "2289:20:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 980, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2210:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2210:109:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 988, + "nodeType": "ExpressionStatement", + "src": "2210:109:6" + }, + { + "id": 989, + "nodeType": "PlaceholderStatement", + "src": "2329:1:6" + } + ] + }, + "documentation": null, + "id": 991, + "name": "isValidBatchTransaction", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 963, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 959, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 991, + "src": "1775:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 957, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1775:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 958, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1775:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 962, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 991, + "src": "1802:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 960, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1802:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 961, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1802:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1774:47:6" + }, + "src": "1742:595:6", + "visibility": "internal" + }, + { + "body": { + "id": 1026, + "nodeType": "Block", + "src": "2878:246:6", + "statements": [ + { + "body": { + "id": 1024, + "nodeType": "Block", + "src": "3004:114:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1016, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "3043:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1018, + "indexExpression": { + "argumentTypes": null, + "id": 1017, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "3059:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3043:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1019, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 997, + "src": "3079:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 1021, + "indexExpression": { + "argumentTypes": null, + "id": 1020, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "3091:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3079:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1015, + "name": "deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1096, + "src": "3018:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3018:89:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1023, + "nodeType": "ExpressionStatement", + "src": "3018:89:6" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1008, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2971:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1009, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "2975:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2975:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2971:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1025, + "initializationExpression": { + "assignments": [ + 1005 + ], + "declarations": [ + { + "constant": false, + "id": 1005, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1027, + "src": "2959:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1004, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2959:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1007, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2968:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2959:10:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2999:3:6", + "subExpression": { + "argumentTypes": null, + "id": 1012, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2999:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "2999:3:6" + }, + "nodeType": "ForStatement", + "src": "2954:164:6" + } + ] + }, + "documentation": "Deposit multiple tokens to the vault. Quantities should be in the\norder of the addresses of the tokens being deposited.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to deposit", + "id": 1027, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1000, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "2844:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1001, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 997, + "src": "2861:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "id": 1002, + "modifierName": { + "argumentTypes": null, + "id": 999, + "name": "isValidBatchTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 991, + "src": "2820:23:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "modifier (address[] memory,uint256[] memory)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2820:53:6" + } + ], + "name": "batchDeposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 994, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 1027, + "src": "2735:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 992, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2735:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 993, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2735:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 997, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 1027, + "src": "2770:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 995, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2770:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 996, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2770:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2725:69:6" + }, + "payable": false, + "returnParameters": { + "id": 1003, + "nodeType": "ParameterList", + "parameters": [], + "src": "2878:0:6" + }, + "scope": 1127, + "src": "2704:420:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1062, + "nodeType": "Block", + "src": "3618:248:6", + "statements": [ + { + "body": { + "id": 1060, + "nodeType": "Block", + "src": "3745:115:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1052, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "3785:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1054, + "indexExpression": { + "argumentTypes": null, + "id": 1053, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3801:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3785:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1055, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "3821:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 1057, + "indexExpression": { + "argumentTypes": null, + "id": 1056, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3833:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3821:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1051, + "name": "withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "3759:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3759:90:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1059, + "nodeType": "ExpressionStatement", + "src": "3759:90:6" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1044, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3712:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1045, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "3716:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3716:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3712:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1061, + "initializationExpression": { + "assignments": [ + 1041 + ], + "declarations": [ + { + "constant": false, + "id": 1041, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "3700:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1040, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3700:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1043, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3709:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3700:10:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3740:3:6", + "subExpression": { + "argumentTypes": null, + "id": 1048, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3740:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1050, + "nodeType": "ExpressionStatement", + "src": "3740:3:6" + }, + "nodeType": "ForStatement", + "src": "3695:165:6" + } + ] + }, + "documentation": "Withdraw multiple tokens from the vault. Quantities should be in the\norder of the addresses of the tokens being withdrawn.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to withdraw", + "id": 1063, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1036, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "3584:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1037, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "3601:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "id": 1038, + "modifierName": { + "argumentTypes": null, + "id": 1035, + "name": "isValidBatchTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 991, + "src": "3560:23:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "modifier (address[] memory,uint256[] memory)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3560:53:6" + } + ], + "name": "batchWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1030, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "3475:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3475:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1029, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3475:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1033, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "3510:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1031, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3510:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1032, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3510:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3465:69:6" + }, + "payable": false, + "returnParameters": { + "id": 1039, + "nodeType": "ParameterList", + "parameters": [], + "src": "3618:0:6" + }, + "scope": 1127, + "src": "3443:423:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1095, + "nodeType": "Block", + "src": "4211:441:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1078, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4365:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4365:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1080, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "4389:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1081, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "4416:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1074, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4308:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1075, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "4308:26:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1073, + "name": "ITransferProxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "4293:14:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ITransferProxy_$2516_$", + "typeString": "type(contract ITransferProxy)" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4293:42:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITransferProxy_$2516", + "typeString": "contract ITransferProxy" + } + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferToVault", + "nodeType": "MemberAccess", + "referencedDeclaration": 2515, + "src": "4293:58:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4293:142:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1083, + "nodeType": "ExpressionStatement", + "src": "4293:142:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1089, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4575:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4575:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1091, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "4599:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1092, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "4626:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1085, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4522:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1086, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "4522:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1084, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4515:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4515:26:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "incrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2536, + "src": "4515:46:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4515:130:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1094, + "nodeType": "ExpressionStatement", + "src": "4515:130:6" + } + ] + }, + "documentation": "Deposit any quantity of tokens into the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to deposit", + "id": 1096, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1070, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "4196:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1071, + "modifierName": { + "argumentTypes": null, + "id": 1069, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "4177:18:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4177:29:6" + } + ], + "name": "deposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1068, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1096, + "src": "4102:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4102:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1096, + "src": "4133:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4133:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4092:61:6" + }, + "payable": false, + "returnParameters": { + "id": 1072, + "nodeType": "ParameterList", + "parameters": [], + "src": "4211:0:6" + }, + "scope": 1127, + "src": "4076:576:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1125, + "nodeType": "Block", + "src": "4960:400:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1108, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5091:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5091:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1110, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1098, + "src": "5115:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1111, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1100, + "src": "5142:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1104, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5038:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1105, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5038:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1103, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5031:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5031:26:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "5031:46:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5031:130:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1113, + "nodeType": "ExpressionStatement", + "src": "5031:130:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1119, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1098, + "src": "5283:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1120, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5310:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5310:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1122, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1100, + "src": "5334:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1115, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5239:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1116, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5239:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1114, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5232:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5232:26:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "5232:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5232:121:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1124, + "nodeType": "ExpressionStatement", + "src": "5232:121:6" + } + ] + }, + "documentation": "Withdraw a quantity of tokens from the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to withdraw", + "id": 1126, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1098, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1126, + "src": "4889:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1097, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4889:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1100, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1126, + "src": "4920:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1099, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4920:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4879:61:6" + }, + "payable": false, + "returnParameters": { + "id": 1102, + "nodeType": "ParameterList", + "parameters": [], + "src": "4960:0:6" + }, + "scope": 1127, + "src": "4862:498:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1128, + "src": "1113:4249:6" + } + ], + "src": "597:4766:6" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreAccounting.sol", + "exportedSymbols": { + "CoreAccounting": [ + 1127 + ] + }, + "id": 1128, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 927, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:6" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 929, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 4739, + "src": "622:73:6", + "symbolAliases": [ + { + "foreign": 928, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 931, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2639, + "src": "696:63:6", + "symbolAliases": [ + { + "foreign": 930, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 933, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2752, + "src": "760:49:6", + "symbolAliases": [ + { + "foreign": 932, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ITransferProxy.sol", + "file": "../interfaces/ITransferProxy.sol", + "id": 935, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2517, + "src": "810:66:6", + "symbolAliases": [ + { + "foreign": 934, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IVault.sol", + "file": "../interfaces/IVault.sol", + "id": 937, + "nodeType": "ImportDirective", + "scope": 1128, + "sourceUnit": 2556, + "src": "877:50:6", + "symbolAliases": [ + { + "foreign": 936, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 938, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1144:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 939, + "nodeType": "InheritanceSpecifier", + "src": "1144:9:6" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 940, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1159:13:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 941, + "nodeType": "InheritanceSpecifier", + "src": "1159:13:6" + } + ], + "contractDependencies": [ + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Accounting\n@author Set Protocol\n * The CoreAccounting contract interfaces with the vault and transfer transfer proxies\nfor storage of tokenized assets", + "fullyImplemented": true, + "id": 1127, + "linearizedBaseContracts": [ + 1127, + 2638, + 2751 + ], + "name": "CoreAccounting", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 944, + "libraryName": { + "contractScope": null, + "id": 942, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1240:8:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1234:27:6", + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1253:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 947, + "name": "ADDRESSES_MISSING", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1314:66:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 945, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1314:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "416464726573736573206d757374206e6f7420626520656d7074792e", + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1350:30:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d4a195b4cf9e73a77ea63711a903227f3150e3627941a137d172dc797b82cd84", + "typeString": "literal_string \"Addresses must not be empty.\"" + }, + "value": "Addresses must not be empty." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 950, + "name": "BATCH_INPUT_MISMATCH", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1386:90:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 948, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1386:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "41646472657373657320616e64207175616e746974696573206d757374206265207468652073616d65206c656e6774682e", + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1425:51:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_318e95b0e08a378091697c889a887ce37fc37d71fa98e0de98a8e0acdda536f1", + "typeString": "literal_string \"Addresses and quantities must be the same length.\"" + }, + "value": "Addresses and quantities must be the same length." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 953, + "name": "QUANTITES_MISSING", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1482:67:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 951, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1482:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e746974696573206d757374206e6f7420626520656d7074792e", + "id": 952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1518:31:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7fd703fbbd234863ddc498f6ccb7e69d3003879a21aabd2ddb6d2773c3639cf0", + "typeString": "literal_string \"Quantities must not be empty.\"" + }, + "value": "Quantities must not be empty." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 956, + "name": "ZERO_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "1555:69:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 954, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1555:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d7573742062652067726561746572207468616e207a65726f2e", + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1587:37:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3da6978e12ad268e4eb66f4a79840b60e48f93e78540f7911187ddd7f0f6f2c7", + "typeString": "literal_string \"Quantity must be greater than zero.\"" + }, + "value": "Quantity must be greater than zero." + }, + "visibility": "internal" + }, + { + "body": { + "id": 990, + "nodeType": "Block", + "src": "1822:515:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 965, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "1912:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1912:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1937:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1912:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 969, + "name": "ADDRESSES_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "1952:17:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 964, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1891:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1891:88:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 971, + "nodeType": "ExpressionStatement", + "src": "1891:88:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 973, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 962, + "src": "2071:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2071:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2092:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2071:22:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 977, + "name": "QUANTITES_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 953, + "src": "2107:17:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2050:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2050:84:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 979, + "nodeType": "ExpressionStatement", + "src": "2050:84:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 981, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "2231:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2231:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 983, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 962, + "src": "2257:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2257:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2231:44:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 986, + "name": "BATCH_INPUT_MISMATCH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "2289:20:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 980, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2210:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2210:109:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 988, + "nodeType": "ExpressionStatement", + "src": "2210:109:6" + }, + { + "id": 989, + "nodeType": "PlaceholderStatement", + "src": "2329:1:6" + } + ] + }, + "documentation": null, + "id": 991, + "name": "isValidBatchTransaction", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 963, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 959, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 991, + "src": "1775:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 957, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1775:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 958, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1775:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 962, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 991, + "src": "1802:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 960, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1802:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 961, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1802:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1774:47:6" + }, + "src": "1742:595:6", + "visibility": "internal" + }, + { + "body": { + "id": 1026, + "nodeType": "Block", + "src": "2878:246:6", + "statements": [ + { + "body": { + "id": 1024, + "nodeType": "Block", + "src": "3004:114:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1016, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "3043:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1018, + "indexExpression": { + "argumentTypes": null, + "id": 1017, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "3059:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3043:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1019, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 997, + "src": "3079:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 1021, + "indexExpression": { + "argumentTypes": null, + "id": 1020, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "3091:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3079:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1015, + "name": "deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1096, + "src": "3018:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3018:89:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1023, + "nodeType": "ExpressionStatement", + "src": "3018:89:6" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1008, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2971:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1009, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "2975:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2975:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2971:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1025, + "initializationExpression": { + "assignments": [ + 1005 + ], + "declarations": [ + { + "constant": false, + "id": 1005, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1027, + "src": "2959:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1004, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2959:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1007, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2968:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2959:10:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2999:3:6", + "subExpression": { + "argumentTypes": null, + "id": 1012, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1005, + "src": "2999:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "2999:3:6" + }, + "nodeType": "ForStatement", + "src": "2954:164:6" + } + ] + }, + "documentation": "Deposit multiple tokens to the vault. Quantities should be in the\norder of the addresses of the tokens being deposited.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to deposit", + "id": 1027, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1000, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "2844:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1001, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 997, + "src": "2861:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "id": 1002, + "modifierName": { + "argumentTypes": null, + "id": 999, + "name": "isValidBatchTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 991, + "src": "2820:23:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "modifier (address[] memory,uint256[] memory)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2820:53:6" + } + ], + "name": "batchDeposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 994, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 1027, + "src": "2735:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 992, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2735:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 993, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2735:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 997, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 1027, + "src": "2770:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 995, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2770:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 996, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2770:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2725:69:6" + }, + "payable": false, + "returnParameters": { + "id": 1003, + "nodeType": "ParameterList", + "parameters": [], + "src": "2878:0:6" + }, + "scope": 1127, + "src": "2704:420:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1062, + "nodeType": "Block", + "src": "3618:248:6", + "statements": [ + { + "body": { + "id": 1060, + "nodeType": "Block", + "src": "3745:115:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1052, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "3785:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1054, + "indexExpression": { + "argumentTypes": null, + "id": 1053, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3801:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3785:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1055, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "3821:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 1057, + "indexExpression": { + "argumentTypes": null, + "id": 1056, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3833:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3821:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1051, + "name": "withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "3759:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3759:90:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1059, + "nodeType": "ExpressionStatement", + "src": "3759:90:6" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1044, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3712:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1045, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "3716:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3716:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3712:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1061, + "initializationExpression": { + "assignments": [ + 1041 + ], + "declarations": [ + { + "constant": false, + "id": 1041, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "3700:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1040, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3700:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1043, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3709:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3700:10:6" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3740:3:6", + "subExpression": { + "argumentTypes": null, + "id": 1048, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "3740:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1050, + "nodeType": "ExpressionStatement", + "src": "3740:3:6" + }, + "nodeType": "ForStatement", + "src": "3695:165:6" + } + ] + }, + "documentation": "Withdraw multiple tokens from the vault. Quantities should be in the\norder of the addresses of the tokens being withdrawn.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to withdraw", + "id": 1063, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1036, + "name": "_tokenAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "3584:15:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1037, + "name": "_quantities", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "3601:11:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "id": 1038, + "modifierName": { + "argumentTypes": null, + "id": 1035, + "name": "isValidBatchTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 991, + "src": "3560:23:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "modifier (address[] memory,uint256[] memory)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3560:53:6" + } + ], + "name": "batchWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1030, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "3475:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3475:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1029, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3475:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1033, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 1063, + "src": "3510:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1031, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3510:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1032, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3510:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3465:69:6" + }, + "payable": false, + "returnParameters": { + "id": 1039, + "nodeType": "ParameterList", + "parameters": [], + "src": "3618:0:6" + }, + "scope": 1127, + "src": "3443:423:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1095, + "nodeType": "Block", + "src": "4211:441:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1078, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4365:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4365:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1080, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "4389:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1081, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "4416:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1074, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4308:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1075, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "4308:26:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1073, + "name": "ITransferProxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "4293:14:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ITransferProxy_$2516_$", + "typeString": "type(contract ITransferProxy)" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4293:42:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITransferProxy_$2516", + "typeString": "contract ITransferProxy" + } + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferToVault", + "nodeType": "MemberAccess", + "referencedDeclaration": 2515, + "src": "4293:58:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4293:142:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1083, + "nodeType": "ExpressionStatement", + "src": "4293:142:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1089, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4575:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4575:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1091, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "4599:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1092, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "4626:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1085, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4522:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1086, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "4522:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1084, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4515:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4515:26:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "incrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2536, + "src": "4515:46:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4515:130:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1094, + "nodeType": "ExpressionStatement", + "src": "4515:130:6" + } + ] + }, + "documentation": "Deposit any quantity of tokens into the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to deposit", + "id": 1096, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1070, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "4196:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1071, + "modifierName": { + "argumentTypes": null, + "id": 1069, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "4177:18:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4177:29:6" + } + ], + "name": "deposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1068, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1096, + "src": "4102:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4102:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1096, + "src": "4133:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4133:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4092:61:6" + }, + "payable": false, + "returnParameters": { + "id": 1072, + "nodeType": "ParameterList", + "parameters": [], + "src": "4211:0:6" + }, + "scope": 1127, + "src": "4076:576:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1125, + "nodeType": "Block", + "src": "4960:400:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1108, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5091:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5091:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1110, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1098, + "src": "5115:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1111, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1100, + "src": "5142:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1104, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5038:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1105, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5038:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1103, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5031:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5031:26:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "5031:46:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5031:130:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1113, + "nodeType": "ExpressionStatement", + "src": "5031:130:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1119, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1098, + "src": "5283:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1120, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5310:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5310:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1122, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1100, + "src": "5334:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1115, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5239:5:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1116, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5239:18:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1114, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5232:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5232:26:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "5232:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5232:121:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1124, + "nodeType": "ExpressionStatement", + "src": "5232:121:6" + } + ] + }, + "documentation": "Withdraw a quantity of tokens from the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to withdraw", + "id": 1126, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1098, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1126, + "src": "4889:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1097, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4889:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1100, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1126, + "src": "4920:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1099, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4920:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4879:61:6" + }, + "payable": false, + "returnParameters": { + "id": 1102, + "nodeType": "ParameterList", + "parameters": [], + "src": "4960:0:6" + }, + "scope": 1127, + "src": "4862:498:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1128, + "src": "1113:4249:6" + } + ], + "src": "597:4766:6" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.893Z" +} \ No newline at end of file diff --git a/artifacts/ts/CoreExchangeDispatcher.ts b/artifacts/ts/CoreExchangeDispatcher.ts new file mode 100644 index 000000000..db6b42cdf --- /dev/null +++ b/artifacts/ts/CoreExchangeDispatcher.ts @@ -0,0 +1,1163 @@ +export const CoreExchangeDispatcher = +{ + "contractName": "CoreExchangeDispatcher", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_exchangeId", + "type": "uint8" + }, + { + "indexed": false, + "name": "_exchange", + "type": "address" + } + ], + "name": "ExchangeRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + }, + { + "name": "_exchange", + "type": "address" + } + ], + "name": "registerExchange", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a7a806100536000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100bf5780631e912bd61461011a5780633e3d13b21461015f578063430bf08a146101af578063715018a6146102065780638ca4daf91461021d5780638da5cb5b14610274578063a003e069146102cb578063c19d93fb1461033b578063f2fde38b146103c5578063f7213db614610408578063fef3ee731461044d575b600080fd5b3480156100cb57600080fd5b50610100600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104a8565b604051808215151515815260200191505060405180910390f35b34801561012657600080fd5b506101496004803603810190808035600019169060200190929190505050610501565b6040518082815260200191505060405180910390f35b34801561016b57600080fd5b506101ad600480360381019080803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610529565b005b3480156101bb57600080fd5b506101c4610654565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021257600080fd5b5061021b610681565b005b34801561022957600080fd5b50610232610783565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028057600080fd5b506102896107af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d757600080fd5b506102f9600480360381019080803560ff1690602001909291905050506107d4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561034757600080fd5b5061035061081a565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156103d157600080fd5b50610406600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061086c565b005b34801561041457600080fd5b5061043760048036038101908080356000191690602001909291905050506108d3565b6040518082815260200191505060405180910390f35b34801561045957600080fd5b5061048e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108fb565b604051808215151515815260200191505060405180910390f35b6000600160030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160060160008360001916600019168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561058457600080fd5b80600160000160008460ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507feee2c0570205f21356a5108d71a4d6e7151682b92a84c761fca82cac87275c288282604051808360ff1660ff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b6000600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106dc57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60018060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108c757600080fd5b6108d081610954565b50565b6000600160050160008360001916600019168152602001908152602001600020549050919050565b6000600160040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561099057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058207cb176901be2e1b4e175e78de9bbbc4cb812f3d92f22fb32f958fe665f1729170029", + "deployedBytecode": "0x6080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100bf5780631e912bd61461011a5780633e3d13b21461015f578063430bf08a146101af578063715018a6146102065780638ca4daf91461021d5780638da5cb5b14610274578063a003e069146102cb578063c19d93fb1461033b578063f2fde38b146103c5578063f7213db614610408578063fef3ee731461044d575b600080fd5b3480156100cb57600080fd5b50610100600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104a8565b604051808215151515815260200191505060405180910390f35b34801561012657600080fd5b506101496004803603810190808035600019169060200190929190505050610501565b6040518082815260200191505060405180910390f35b34801561016b57600080fd5b506101ad600480360381019080803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610529565b005b3480156101bb57600080fd5b506101c4610654565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021257600080fd5b5061021b610681565b005b34801561022957600080fd5b50610232610783565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028057600080fd5b506102896107af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d757600080fd5b506102f9600480360381019080803560ff1690602001909291905050506107d4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561034757600080fd5b5061035061081a565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156103d157600080fd5b50610406600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061086c565b005b34801561041457600080fd5b5061043760048036038101908080356000191690602001909291905050506108d3565b6040518082815260200191505060405180910390f35b34801561045957600080fd5b5061048e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108fb565b604051808215151515815260200191505060405180910390f35b6000600160030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160060160008360001916600019168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561058457600080fd5b80600160000160008460ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507feee2c0570205f21356a5108d71a4d6e7151682b92a84c761fca82cac87275c288282604051808360ff1660ff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b6000600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106dc57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60018060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108c757600080fd5b6108d081610954565b50565b6000600160050160008360001916600019168152602001908152602001600020549050919050565b6000600160040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561099057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058207cb176901be2e1b4e175e78de9bbbc4cb812f3d92f22fb32f958fe665f1729170029", + "sourceMap": "970:860:7:-;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;970:860:7;;;;;;", + "deployedSourceMap": "970:860:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1456:372:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1456:372:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:39;;;;;;1809:139:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;2529:::-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;1456:372:7:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1671:9:7;1640:5;:15;;:28;1656:11;1640:28;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1745:76;1777:11;1802:9;1745:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1456:372;;:::o;1954:123:22:-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;827:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;1809:139:22:-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;238:20:39:-;;;;;;;;;;;;;:::o;1656:147:22:-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1100:103:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;2377:146:22:-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o;1338:171:39:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { Ownable } from \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport { CoreState } from \"../lib/CoreState.sol\";\n\n\n/**\n * @title Core Exchange Dispatcher\n * @author Set Protocol\n *\n * The CoreExchangeDispatcher factilitates updating permissible exchanges\n * that are used in filling issuance orders. See CoreState.State.exchanges\n */\ncontract CoreExchangeDispatcher is\n Ownable,\n CoreState\n{\n\n /* ============ Events ============ */\n\n // Logs registration of new exchange\n event ExchangeRegistered(\n uint8 _exchangeId,\n address _exchange\n );\n\n /* ============ Setter Functions ============ */\n\n /**\n * Register exchange address into mapping of exchanges \n *\n * @param _exchangeId Enumeration of exchange\n * @param _exchange Exchange address to set\n */\n function registerExchange(\n uint8 _exchangeId,\n address _exchange\n )\n external\n onlyOwner\n {\n // Add asset proxy and log registration.\n state.exchanges[_exchangeId] = _exchange;\n\n // Add asset proxy and log registration.\n emit ExchangeRegistered(\n _exchangeId,\n _exchange\n );\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreExchangeDispatcher.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreExchangeDispatcher.sol", + "exportedSymbols": { + "CoreExchangeDispatcher": [ + 1167 + ] + }, + "id": 1168, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1129, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:7" + }, + { + "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 1131, + "nodeType": "ImportDirective", + "scope": 1168, + "sourceUnit": 4825, + "src": "622:76:7", + "symbolAliases": [ + { + "foreign": 1130, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1133, + "nodeType": "ImportDirective", + "scope": 1168, + "sourceUnit": 2752, + "src": "699:49:7", + "symbolAliases": [ + { + "foreign": 1132, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1134, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4824, + "src": "1009:7:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$4824", + "typeString": "contract Ownable" + } + }, + "id": 1135, + "nodeType": "InheritanceSpecifier", + "src": "1009:7:7" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1136, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1022:9:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1137, + "nodeType": "InheritanceSpecifier", + "src": "1022:9:7" + } + ], + "contractDependencies": [ + 2751, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Core Exchange Dispatcher\n@author Set Protocol\n * The CoreExchangeDispatcher factilitates updating permissible exchanges\nthat are used in filling issuance orders. See CoreState.State.exchanges", + "fullyImplemented": true, + "id": 1167, + "linearizedBaseContracts": [ + 1167, + 2751, + 4824 + ], + "name": "CoreExchangeDispatcher", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 1143, + "name": "ExchangeRegistered", + "nodeType": "EventDefinition", + "parameters": { + "id": 1142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1139, + "indexed": false, + "name": "_exchangeId", + "nodeType": "VariableDeclaration", + "scope": 1143, + "src": "1158:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1138, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1158:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1141, + "indexed": false, + "name": "_exchange", + "nodeType": "VariableDeclaration", + "scope": 1143, + "src": "1185:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1140, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1185:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1148:60:7" + }, + "src": "1124:85:7" + }, + { + "body": { + "id": 1165, + "nodeType": "Block", + "src": "1581:247:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1152, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1640:5:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1155, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchanges", + "nodeType": "MemberAccess", + "referencedDeclaration": 2644, + "src": "1640:15:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 1156, + "indexExpression": { + "argumentTypes": null, + "id": 1154, + "name": "_exchangeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "1656:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1640:28:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1157, + "name": "_exchange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "1671:9:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1640:40:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1159, + "nodeType": "ExpressionStatement", + "src": "1640:40:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1161, + "name": "_exchangeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "1777:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 1162, + "name": "_exchange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "1802:9:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1160, + "name": "ExchangeRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1143, + "src": "1745:18:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_address_$returns$__$", + "typeString": "function (uint8,address)" + } + }, + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1745:76:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1164, + "nodeType": "EmitStatement", + "src": "1740:81:7" + } + ] + }, + "documentation": "Register exchange address into mapping of exchanges \n * @param _exchangeId Enumeration of exchange\n@param _exchange Exchange address to set", + "id": 1166, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1150, + "modifierName": { + "argumentTypes": null, + "id": 1149, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1567:9:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1567:9:7" + } + ], + "name": "registerExchange", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1145, + "name": "_exchangeId", + "nodeType": "VariableDeclaration", + "scope": 1166, + "src": "1491:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1144, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1491:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1147, + "name": "_exchange", + "nodeType": "VariableDeclaration", + "scope": 1166, + "src": "1518:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1146, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1518:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1481:60:7" + }, + "payable": false, + "returnParameters": { + "id": 1151, + "nodeType": "ParameterList", + "parameters": [], + "src": "1581:0:7" + }, + "scope": 1167, + "src": "1456:372:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 1168, + "src": "970:860:7" + } + ], + "src": "597:1234:7" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreExchangeDispatcher.sol", + "exportedSymbols": { + "CoreExchangeDispatcher": [ + 1167 + ] + }, + "id": 1168, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1129, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:7" + }, + { + "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 1131, + "nodeType": "ImportDirective", + "scope": 1168, + "sourceUnit": 4825, + "src": "622:76:7", + "symbolAliases": [ + { + "foreign": 1130, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1133, + "nodeType": "ImportDirective", + "scope": 1168, + "sourceUnit": 2752, + "src": "699:49:7", + "symbolAliases": [ + { + "foreign": 1132, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1134, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4824, + "src": "1009:7:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$4824", + "typeString": "contract Ownable" + } + }, + "id": 1135, + "nodeType": "InheritanceSpecifier", + "src": "1009:7:7" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1136, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1022:9:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1137, + "nodeType": "InheritanceSpecifier", + "src": "1022:9:7" + } + ], + "contractDependencies": [ + 2751, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Core Exchange Dispatcher\n@author Set Protocol\n * The CoreExchangeDispatcher factilitates updating permissible exchanges\nthat are used in filling issuance orders. See CoreState.State.exchanges", + "fullyImplemented": true, + "id": 1167, + "linearizedBaseContracts": [ + 1167, + 2751, + 4824 + ], + "name": "CoreExchangeDispatcher", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 1143, + "name": "ExchangeRegistered", + "nodeType": "EventDefinition", + "parameters": { + "id": 1142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1139, + "indexed": false, + "name": "_exchangeId", + "nodeType": "VariableDeclaration", + "scope": 1143, + "src": "1158:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1138, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1158:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1141, + "indexed": false, + "name": "_exchange", + "nodeType": "VariableDeclaration", + "scope": 1143, + "src": "1185:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1140, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1185:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1148:60:7" + }, + "src": "1124:85:7" + }, + { + "body": { + "id": 1165, + "nodeType": "Block", + "src": "1581:247:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1152, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1640:5:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1155, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchanges", + "nodeType": "MemberAccess", + "referencedDeclaration": 2644, + "src": "1640:15:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 1156, + "indexExpression": { + "argumentTypes": null, + "id": 1154, + "name": "_exchangeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "1656:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1640:28:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1157, + "name": "_exchange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "1671:9:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1640:40:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1159, + "nodeType": "ExpressionStatement", + "src": "1640:40:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1161, + "name": "_exchangeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1145, + "src": "1777:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 1162, + "name": "_exchange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "1802:9:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1160, + "name": "ExchangeRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1143, + "src": "1745:18:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_address_$returns$__$", + "typeString": "function (uint8,address)" + } + }, + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1745:76:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1164, + "nodeType": "EmitStatement", + "src": "1740:81:7" + } + ] + }, + "documentation": "Register exchange address into mapping of exchanges \n * @param _exchangeId Enumeration of exchange\n@param _exchange Exchange address to set", + "id": 1166, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1150, + "modifierName": { + "argumentTypes": null, + "id": 1149, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1567:9:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1567:9:7" + } + ], + "name": "registerExchange", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1145, + "name": "_exchangeId", + "nodeType": "VariableDeclaration", + "scope": 1166, + "src": "1491:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1144, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1491:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1147, + "name": "_exchange", + "nodeType": "VariableDeclaration", + "scope": 1166, + "src": "1518:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1146, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1518:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1481:60:7" + }, + "payable": false, + "returnParameters": { + "id": 1151, + "nodeType": "ParameterList", + "parameters": [], + "src": "1581:0:7" + }, + "scope": 1167, + "src": "1456:372:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 1168, + "src": "970:860:7" + } + ], + "src": "597:1234:7" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.896Z" +} \ No newline at end of file diff --git a/artifacts/ts/CoreFactory.ts b/artifacts/ts/CoreFactory.ts new file mode 100644 index 000000000..5fe8c34c4 --- /dev/null +++ b/artifacts/ts/CoreFactory.ts @@ -0,0 +1,2615 @@ +export const CoreFactory = +{ + "contractName": "CoreFactory", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_setTokenAddress", + "type": "address" + }, + { + "indexed": false, + "name": "_factoryAddress", + "type": "address" + }, + { + "indexed": false, + "name": "_components", + "type": "address[]" + }, + { + "indexed": false, + "name": "_units", + "type": "uint256[]" + }, + { + "indexed": false, + "name": "_naturalUnit", + "type": "uint256" + }, + { + "indexed": false, + "name": "_name", + "type": "string" + }, + { + "indexed": false, + "name": "_symbol", + "type": "string" + } + ], + "name": "SetTokenCreated", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + }, + { + "name": "_components", + "type": "address[]" + }, + { + "name": "_units", + "type": "uint256[]" + }, + { + "name": "_naturalUnit", + "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + } + ], + "name": "create", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610a9e806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d41461009e5780631e912bd6146100f9578063430bf08a1461013e57806352904449146101955780638ca4daf914610282578063a003e069146102d9578063c19d93fb14610349578063f7213db6146103d3578063fef3ee7314610418575b600080fd5b3480156100aa57600080fd5b506100df600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610473565b604051808215151515815260200191505060405180910390f35b34801561010557600080fd5b5061012860048036038101908080356000191690602001909291905050506104cb565b6040518082815260200191505060405180910390f35b34801561014a57600080fd5b506101536104f2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101a157600080fd5b50610240600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035906020019092919080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028e57600080fd5b50610297610930565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e557600080fd5b50610307600480360381019080803560ff16906020019092919050505061095c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035557600080fd5b5061035e6109a1565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156103df57600080fd5b5061040260048036038101908080356000191690602001909291905050506109f3565b6040518082815260200191505060405180910390f35b34801561042457600080fd5b50610459600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a1a565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808b600060030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e0000000000000000000000000000000000000000000000000000815250901515610677576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561063c578082015181840152602081019050610621565b50505050905090810190601f1680156106695780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff1663110a25c28d8d8d8d8d8d8d8d8d6040518a63ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509d5050505050505050505050505050602060405180830381600087803b15801561077557600080fd5b505af1158015610789573d6000803e3d6000fd5b505050506040513d602081101561079f57600080fd5b810190808051906020019092919050505091506001600060040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f388b9bd51ec792eb7ce238581b3f844072709011b2a20260c428451e07d764a88e8e8e8e8e8e8e8e8e8e604051808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509e50505050505050505050505050505060405180910390a281925050509a9950505050505050505050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a7230582093423643a0a281e59095b437c750135c5ab6d4aed73aec7f0e5607d38609d4b10029", + "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d41461009e5780631e912bd6146100f9578063430bf08a1461013e57806352904449146101955780638ca4daf914610282578063a003e069146102d9578063c19d93fb14610349578063f7213db6146103d3578063fef3ee7314610418575b600080fd5b3480156100aa57600080fd5b506100df600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610473565b604051808215151515815260200191505060405180910390f35b34801561010557600080fd5b5061012860048036038101908080356000191690602001909291905050506104cb565b6040518082815260200191505060405180910390f35b34801561014a57600080fd5b506101536104f2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101a157600080fd5b50610240600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035906020019092919080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028e57600080fd5b50610297610930565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e557600080fd5b50610307600480360381019080803560ff16906020019092919050505061095c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035557600080fd5b5061035e6109a1565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156103df57600080fd5b5061040260048036038101908080356000191690602001909291905050506109f3565b6040518082815260200191505060405180910390f35b34801561042457600080fd5b50610459600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a1a565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808b600060030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e0000000000000000000000000000000000000000000000000000815250901515610677576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561063c578082015181840152602081019050610621565b50505050905090810190601f1680156106695780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff1663110a25c28d8d8d8d8d8d8d8d8d6040518a63ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509d5050505050505050505050505050602060405180830381600087803b15801561077557600080fd5b505af1158015610789573d6000803e3d6000fd5b505050506040513d602081101561079f57600080fd5b810190808051906020019092919050505091506001600060040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f388b9bd51ec792eb7ce238581b3f844072709011b2a20260c428451e07d764a88e8e8e8e8e8e8e8e8e8e604051808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509e50505050505050505050505050505060405180910390a281925050509a9950505050505050505050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a7230582093423643a0a281e59095b437c750135c5ab6d4aed73aec7f0e5607d38609d4b10029", + "sourceMap": "995:2108:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;995:2108:8;;;;;;;", + "deployedSourceMap": "995:2108:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;2255:846:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2255:846:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:139:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;2529:::-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;1954:123::-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;2255:846:8:-;2511:7;2560:26;2477:15;1709:5:21;:20;;:37;1730:15;1709:37;;;;;;;;;;;;;;;;;;;;;;;;;1760:15;;;;;;;;;;;;;;;;;;;;;;;1688:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1688:97:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2601:15:8;2589:35;;;2638:11;;2663:6;;2683:12;2709:5;;2728:7;;2589:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2589:156:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2589:156:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2589:156:8;;;;;;;;;;;;;;;;2560:185;;2841:4;2803:5;:15;;:35;2819:18;2803:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;2890:18;2861:197;;;2922:15;2951:11;;2976:6;;2996:12;3022:5;;3041:7;;2861:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3076:18;3069:25;;2255:846;;;;;;;;;;;;;;:::o;1809:139:22:-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;1656:147::-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2377:146::-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { CoreModifiers } from \"../lib/CoreSharedModifiers.sol\";\nimport { CoreState } from \"../lib/CoreState.sol\";\nimport { ISetFactory } from \"../interfaces/ISetFactory.sol\";\n\n\n/**\n * @title Core Factory\n * @author Set Protocol\n *\n * The CoreCreate contract contains public set token operations\n */\ncontract CoreFactory is\n CoreState,\n CoreModifiers\n{\n // Use SafeMath library for all uint256 arithmetic\n using SafeMath for uint256;\n\n /* ============ Constants ============ */\n\n string constant INVALID_FACTORY = \"Factory is disabled or does not exist.\";\n\n /* ============ Events ============ */\n\n event SetTokenCreated(\n address indexed _setTokenAddress,\n address _factoryAddress,\n address[] _components,\n uint[] _units,\n uint _naturalUnit,\n string _name,\n string _symbol\n );\n\n\n /* ============ Public Functions ============ */\n\n /**\n * Deploys a new Set Token and adds it to the valid list of SetTokens\n *\n * @param _factoryAddress address The address of the Factory to create from\n * @param _components address[] The address of component tokens\n * @param _units uint[] The units of each component token\n * @param _naturalUnit uint The minimum unit to be issued or redeemed\n * @param _name string The name of the new Set\n * @param _symbol string The symbol of the new Set\n * @return setTokenAddress address The address of the new Set\n */\n function create(\n address _factoryAddress,\n address[] _components,\n uint[] _units,\n uint _naturalUnit,\n string _name,\n string _symbol\n )\n external\n isValidFactory(_factoryAddress)\n returns (address)\n {\n // Create the Set\n address newSetTokenAddress = ISetFactory(_factoryAddress).create(\n _components,\n _units,\n _naturalUnit,\n _name,\n _symbol\n );\n\n // Add Set to the list of tracked Sets\n state.validSets[newSetTokenAddress] = true;\n\n emit SetTokenCreated(\n newSetTokenAddress,\n _factoryAddress,\n _components,\n _units,\n _naturalUnit,\n _name,\n _symbol\n );\n\n return newSetTokenAddress;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreFactory.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreFactory.sol", + "exportedSymbols": { + "CoreFactory": [ + 1262 + ] + }, + "id": 1263, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1169, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:8" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 1171, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 4739, + "src": "622:73:8", + "symbolAliases": [ + { + "foreign": 1170, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1173, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 2639, + "src": "696:63:8", + "symbolAliases": [ + { + "foreign": 1172, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1175, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 2752, + "src": "760:49:8", + "symbolAliases": [ + { + "foreign": 1174, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", + "file": "../interfaces/ISetFactory.sol", + "id": 1177, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 2471, + "src": "810:60:8", + "symbolAliases": [ + { + "foreign": 1176, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1178, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1023:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1179, + "nodeType": "InheritanceSpecifier", + "src": "1023:9:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1180, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1038:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1181, + "nodeType": "InheritanceSpecifier", + "src": "1038:13:8" + } + ], + "contractDependencies": [ + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Factory\n@author Set Protocol\n * The CoreCreate contract contains public set token operations", + "fullyImplemented": true, + "id": 1262, + "linearizedBaseContracts": [ + 1262, + 2638, + 2751 + ], + "name": "CoreFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1184, + "libraryName": { + "contractScope": null, + "id": 1182, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1119:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1113:27:8", + "typeName": { + "id": 1183, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1132:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 1187, + "name": "INVALID_FACTORY", + "nodeType": "VariableDeclaration", + "scope": 1262, + "src": "1193:74:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1185, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1193:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "466163746f72792069732064697361626c6564206f7220646f6573206e6f742065786973742e", + "id": 1186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1227:40:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ff40c07bf4b1e4d2220e3a6d57631493105b5007aba10b5d8cf1630effb33df5", + "typeString": "literal_string \"Factory is disabled or does not exist.\"" + }, + "value": "Factory is disabled or does not exist." + }, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 1205, + "name": "SetTokenCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 1204, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1189, + "indexed": true, + "name": "_setTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1349:32:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1188, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1349:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1191, + "indexed": false, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1391:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1391:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1194, + "indexed": false, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1424:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1424:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1193, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1424:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1197, + "indexed": false, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1455:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1195, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1455:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1196, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1455:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1199, + "indexed": false, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1478:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1198, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1478:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1201, + "indexed": false, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1505:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1200, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1505:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1203, + "indexed": false, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1527:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1202, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1527:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1339:208:8" + }, + "src": "1318:230:8" + }, + { + "body": { + "id": 1260, + "nodeType": "Block", + "src": "2524:577:8", + "statements": [ + { + "assignments": [ + 1228 + ], + "declarations": [ + { + "constant": false, + "id": 1228, + "name": "newSetTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2560:26:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2560:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1239, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1233, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "2638:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1234, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1213, + "src": "2663:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1235, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1215, + "src": "2683:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1236, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1217, + "src": "2709:5:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 1237, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "2728:7:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1230, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "2601:15:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1229, + "name": "ISetFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2470, + "src": "2589:11:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetFactory_$2470_$", + "typeString": "type(contract ISetFactory)" + } + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2589:28:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetFactory_$2470", + "typeString": "contract ISetFactory" + } + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "create", + "nodeType": "MemberAccess", + "referencedDeclaration": 2469, + "src": "2589:35:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_address_$", + "typeString": "function (address[] memory,uint256[] memory,uint256,string memory,string memory) external returns (address)" + } + }, + "id": 1238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2589:156:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2560:185:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 1246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1240, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2803:5:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "2803:15:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1244, + "indexExpression": { + "argumentTypes": null, + "id": 1242, + "name": "newSetTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "2819:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2803:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2841:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2803:42:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1247, + "nodeType": "ExpressionStatement", + "src": "2803:42:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1249, + "name": "newSetTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "2890:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1250, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "2922:15:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1251, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "2951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1252, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1213, + "src": "2976:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1253, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1215, + "src": "2996:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1254, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1217, + "src": "3022:5:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 1255, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "3041:7:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "id": 1248, + "name": "SetTokenCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1205, + "src": "2861:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,address,address[] memory,uint256[] memory,uint256,string memory,string memory)" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2861:197:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1257, + "nodeType": "EmitStatement", + "src": "2856:202:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 1258, + "name": "newSetTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "3076:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1226, + "id": 1259, + "nodeType": "Return", + "src": "3069:25:8" + } + ] + }, + "documentation": "Deploys a new Set Token and adds it to the valid list of SetTokens\n * @param _factoryAddress address The address of the Factory to create from\n@param _components address[] The address of component tokens\n@param _units uint[] The units of each component token\n@param _naturalUnit uint The minimum unit to be issued or redeemed\n@param _name string The name of the new Set\n@param _symbol string The symbol of the new Set\n@return setTokenAddress address The address of the new Set", + "id": 1261, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1222, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "2477:15:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1223, + "modifierName": { + "argumentTypes": null, + "id": 1221, + "name": "isValidFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "2462:14:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2462:31:8" + } + ], + "name": "create", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1207, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2280:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2280:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2313:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2313:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1209, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2313:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1213, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2344:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1211, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2344:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1212, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2344:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1215, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2367:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1214, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2367:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1217, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2394:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1216, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1219, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2416:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1218, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2416:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2270:166:8" + }, + "payable": false, + "returnParameters": { + "id": 1226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1225, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2511:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2511:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2510:9:8" + }, + "scope": 1262, + "src": "2255:846:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 1263, + "src": "995:2108:8" + } + ], + "src": "597:2507:8" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreFactory.sol", + "exportedSymbols": { + "CoreFactory": [ + 1262 + ] + }, + "id": 1263, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1169, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:8" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 1171, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 4739, + "src": "622:73:8", + "symbolAliases": [ + { + "foreign": 1170, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1173, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 2639, + "src": "696:63:8", + "symbolAliases": [ + { + "foreign": 1172, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1175, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 2752, + "src": "760:49:8", + "symbolAliases": [ + { + "foreign": 1174, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", + "file": "../interfaces/ISetFactory.sol", + "id": 1177, + "nodeType": "ImportDirective", + "scope": 1263, + "sourceUnit": 2471, + "src": "810:60:8", + "symbolAliases": [ + { + "foreign": 1176, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1178, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1023:9:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1179, + "nodeType": "InheritanceSpecifier", + "src": "1023:9:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1180, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1038:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1181, + "nodeType": "InheritanceSpecifier", + "src": "1038:13:8" + } + ], + "contractDependencies": [ + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Factory\n@author Set Protocol\n * The CoreCreate contract contains public set token operations", + "fullyImplemented": true, + "id": 1262, + "linearizedBaseContracts": [ + 1262, + 2638, + 2751 + ], + "name": "CoreFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1184, + "libraryName": { + "contractScope": null, + "id": 1182, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1119:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1113:27:8", + "typeName": { + "id": 1183, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1132:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 1187, + "name": "INVALID_FACTORY", + "nodeType": "VariableDeclaration", + "scope": 1262, + "src": "1193:74:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1185, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1193:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "466163746f72792069732064697361626c6564206f7220646f6573206e6f742065786973742e", + "id": 1186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1227:40:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ff40c07bf4b1e4d2220e3a6d57631493105b5007aba10b5d8cf1630effb33df5", + "typeString": "literal_string \"Factory is disabled or does not exist.\"" + }, + "value": "Factory is disabled or does not exist." + }, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 1205, + "name": "SetTokenCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 1204, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1189, + "indexed": true, + "name": "_setTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1349:32:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1188, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1349:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1191, + "indexed": false, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1391:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1391:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1194, + "indexed": false, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1424:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1424:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1193, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1424:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1197, + "indexed": false, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1455:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1195, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1455:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1196, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1455:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1199, + "indexed": false, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1478:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1198, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1478:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1201, + "indexed": false, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1505:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1200, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1505:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1203, + "indexed": false, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "1527:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1202, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1527:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1339:208:8" + }, + "src": "1318:230:8" + }, + { + "body": { + "id": 1260, + "nodeType": "Block", + "src": "2524:577:8", + "statements": [ + { + "assignments": [ + 1228 + ], + "declarations": [ + { + "constant": false, + "id": 1228, + "name": "newSetTokenAddress", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2560:26:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2560:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1239, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1233, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "2638:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1234, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1213, + "src": "2663:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1235, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1215, + "src": "2683:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1236, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1217, + "src": "2709:5:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 1237, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "2728:7:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1230, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "2601:15:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1229, + "name": "ISetFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2470, + "src": "2589:11:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetFactory_$2470_$", + "typeString": "type(contract ISetFactory)" + } + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2589:28:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetFactory_$2470", + "typeString": "contract ISetFactory" + } + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "create", + "nodeType": "MemberAccess", + "referencedDeclaration": 2469, + "src": "2589:35:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_address_$", + "typeString": "function (address[] memory,uint256[] memory,uint256,string memory,string memory) external returns (address)" + } + }, + "id": 1238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2589:156:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2560:185:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 1246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1240, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2803:5:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "2803:15:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1244, + "indexExpression": { + "argumentTypes": null, + "id": 1242, + "name": "newSetTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "2819:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2803:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2841:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2803:42:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1247, + "nodeType": "ExpressionStatement", + "src": "2803:42:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1249, + "name": "newSetTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "2890:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1250, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "2922:15:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1251, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "2951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1252, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1213, + "src": "2976:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + { + "argumentTypes": null, + "id": 1253, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1215, + "src": "2996:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1254, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1217, + "src": "3022:5:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 1255, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "3041:7:8", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "id": 1248, + "name": "SetTokenCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1205, + "src": "2861:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,address,address[] memory,uint256[] memory,uint256,string memory,string memory)" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2861:197:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1257, + "nodeType": "EmitStatement", + "src": "2856:202:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 1258, + "name": "newSetTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "3076:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1226, + "id": 1259, + "nodeType": "Return", + "src": "3069:25:8" + } + ] + }, + "documentation": "Deploys a new Set Token and adds it to the valid list of SetTokens\n * @param _factoryAddress address The address of the Factory to create from\n@param _components address[] The address of component tokens\n@param _units uint[] The units of each component token\n@param _naturalUnit uint The minimum unit to be issued or redeemed\n@param _name string The name of the new Set\n@param _symbol string The symbol of the new Set\n@return setTokenAddress address The address of the new Set", + "id": 1261, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1222, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "2477:15:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1223, + "modifierName": { + "argumentTypes": null, + "id": 1221, + "name": "isValidFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "2462:14:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2462:31:8" + } + ], + "name": "create", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1207, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2280:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2280:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2313:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2313:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1209, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2313:9:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1213, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2344:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1211, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2344:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1212, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2344:6:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1215, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2367:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1214, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2367:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1217, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2394:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1216, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1219, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2416:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1218, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2416:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2270:166:8" + }, + "payable": false, + "returnParameters": { + "id": 1226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1225, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1261, + "src": "2511:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2511:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2510:9:8" + }, + "scope": 1262, + "src": "2255:846:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 1263, + "src": "995:2108:8" + } + ], + "src": "597:2507:8" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.896Z" +} \ No newline at end of file diff --git a/artifacts/ts/CoreInternal.ts b/artifacts/ts/CoreInternal.ts new file mode 100644 index 000000000..155da72b6 --- /dev/null +++ b/artifacts/ts/CoreInternal.ts @@ -0,0 +1,2360 @@ +export const CoreInternal = +{ + "contractName": "CoreInternal", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_vaultAddress", + "type": "address" + } + ], + "name": "setVaultAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_transferProxyAddress", + "type": "address" + } + ], + "name": "setTransferProxyAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + } + ], + "name": "enableFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + } + ], + "name": "disableFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + } + ], + "name": "disableSet", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611097806100536000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100eb578063124cfd78146101465780631a1f2b3e146101895780631e912bd6146101cc578063430bf08a14610211578063715018a61461026857806377274ff01461027f57806385535cc5146102c25780638ca4daf9146103055780638da5cb5b1461035c5780639f80ee88146103b3578063a003e069146103f6578063c19d93fb14610466578063f2fde38b146104f0578063f7213db614610533578063fef3ee7314610578575b600080fd5b3480156100f757600080fd5b5061012c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105d3565b604051808215151515815260200191505060405180910390f35b34801561015257600080fd5b50610187600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061062c565b005b34801561019557600080fd5b506101ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106cd565b005b3480156101d857600080fd5b506101fb60048036038101908080356000191690602001909291905050506108de565b6040518082815260200191505060405180910390f35b34801561021d57600080fd5b50610226610906565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027457600080fd5b5061027d610933565b005b34801561028b57600080fd5b506102c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a35565b005b3480156102ce57600080fd5b50610303600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c46565b005b34801561031157600080fd5b5061031a610ce8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036857600080fd5b50610371610d14565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103bf57600080fd5b506103f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d39565b005b34801561040257600080fd5b50610424600480360381019080803560ff169060200190929190505050610df1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047257600080fd5b5061047b610e37565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156104fc57600080fd5b50610531600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e89565b005b34801561053f57600080fd5b506105626004803603810190808035600019169060200190929190505050610ef0565b6040518082815260200191505060405180910390f35b34801561058457600080fd5b506105b9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f18565b604051808215151515815260200191505060405180910390f35b6000600160030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561068757600080fd5b806001800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561072857600080fd5b80600160030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e000000000000000000000000000000000000000000000000000081525090151561087e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610843578082015181840152602081019050610828565b50505050905090810190601f1680156108705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160060160008360001916600019168152602001908152602001600020549050919050565b6000600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561098e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a9057600080fd5b80600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515610be6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bab578082015181840152602081019050610b90565b50505050905090810190601f168015610bd85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ca157600080fd5b80600160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d9457600080fd5b60018060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60018060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ee457600080fd5b610eed81610f71565b50565b6000600160050160008360001916600019168152602001908152602001600020549050919050565b6000600160040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610fad57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058203a07ee04db3857991326aee51dbc20d19a3fdfd01755305281ed8218f31a25470029", + "deployedBytecode": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100eb578063124cfd78146101465780631a1f2b3e146101895780631e912bd6146101cc578063430bf08a14610211578063715018a61461026857806377274ff01461027f57806385535cc5146102c25780638ca4daf9146103055780638da5cb5b1461035c5780639f80ee88146103b3578063a003e069146103f6578063c19d93fb14610466578063f2fde38b146104f0578063f7213db614610533578063fef3ee7314610578575b600080fd5b3480156100f757600080fd5b5061012c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105d3565b604051808215151515815260200191505060405180910390f35b34801561015257600080fd5b50610187600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061062c565b005b34801561019557600080fd5b506101ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106cd565b005b3480156101d857600080fd5b506101fb60048036038101908080356000191690602001909291905050506108de565b6040518082815260200191505060405180910390f35b34801561021d57600080fd5b50610226610906565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027457600080fd5b5061027d610933565b005b34801561028b57600080fd5b506102c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a35565b005b3480156102ce57600080fd5b50610303600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c46565b005b34801561031157600080fd5b5061031a610ce8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036857600080fd5b50610371610d14565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103bf57600080fd5b506103f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d39565b005b34801561040257600080fd5b50610424600480360381019080803560ff169060200190929190505050610df1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047257600080fd5b5061047b610e37565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156104fc57600080fd5b50610531600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e89565b005b34801561053f57600080fd5b506105626004803603810190808035600019169060200190929190505050610ef0565b6040518082815260200191505060405180910390f35b34801561058457600080fd5b506105b9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f18565b604051808215151515815260200191505060405180910390f35b6000600160030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561068757600080fd5b806001800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561072857600080fd5b80600160030160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602681526020017f466163746f72792069732064697361626c6564206f7220646f6573206e6f742081526020017f65786973742e000000000000000000000000000000000000000000000000000081525090151561087e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610843578082015181840152602081019050610828565b50505050905090810190601f1680156108705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600160060160008360001916600019168152602001908152602001600020549050919050565b6000600160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561098e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a9057600080fd5b80600160040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515610be6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bab578082015181840152602081019050610b90565b50505050905090810190601f168015610bd85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ca157600080fd5b80600160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006001800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d9457600080fd5b60018060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60018060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ee457600080fd5b610eed81610f71565b50565b6000600160050160008360001916600019168152602001908152602001600020549050919050565b6000600160040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610fad57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058203a07ee04db3857991326aee51dbc20d19a3fdfd01755305281ed8218f31a25470029", + "sourceMap": "1002:1952:9:-;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;1002:1952:9;;;;;;", + "deployedSourceMap": "1002:1952:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1655:256:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1655:256:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2408:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2408:204:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:39;;;;;;2773:179:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2773:179:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1271:216;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1271:216:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:139:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;2076:162:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2076:162:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;1655:256:9:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1883:21:9;1854:5;:26;;;:50;;;;;;;;;;;;;;;;;;1655:256;:::o;2408:204::-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2529:15:9;1709:5:21;:20;;:37;1730:15;1709:37;;;;;;;;;;;;;;;;;;;;;;;;;1760:15;;;;;;;;;;;;;;;;;;;;;;;1688:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1688:97:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2600:5:9;2560;:20;;:37;2581:15;2560:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;731:1:39;2408:204:9;:::o;2529:150:22:-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;1954:123::-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;827:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;2773:179:9:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2882:11:9;1934:5:21;:15;;:28;1950:11;1934:28;;;;;;;;;;;;;;;;;;;;;;;;;1976:11;;;;;;;;;;;;;;;;;;;;;;;1913:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:84:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2940:5:9;2909;:15;;:28;2925:11;2909:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;731:1:39;2773:179:9;:::o;1271:216::-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1467:13:9;1446:5;:18;;;:34;;;;;;;;;;;;;;;;;;1271:216;:::o;1809:139:22:-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;238:20:39:-;;;;;;;;;;;;;:::o;2076:162:9:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2227:4:9;2187:5;:20;;:37;2208:15;2187:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2076:162;:::o;1656:147:22:-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1100:103:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;2377:146:22:-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o;1338:171:39:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { Ownable } from \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport { CoreModifiers } from \"../lib/CoreSharedModifiers.sol\";\nimport { CoreState } from \"../lib/CoreState.sol\";\n\n\n/**\n * @title Core Internal\n * @author Set Protocol\n *\n * The CoreInternal contract contains methods to alter state that tracks contract\n * addresses that need to interact with Core.\n */\ncontract CoreInternal is\n Ownable,\n CoreState,\n CoreModifiers\n{\n /* ============ Setter Functions ============ */\n\n /**\n * Set vaultAddress. Can only be set by owner of Core.\n *\n * @param _vaultAddress The address of the Vault\n */\n function setVaultAddress(\n address _vaultAddress\n )\n external\n onlyOwner\n {\n // Commit passed address to vaultAddress state variable\n state.vaultAddress = _vaultAddress;\n }\n\n /**\n * Set transferProxyAddress. Can only be set by owner of Core.\n *\n * @param _transferProxyAddress The address of the TransferProxy\n */\n function setTransferProxyAddress(\n address _transferProxyAddress\n )\n external\n onlyOwner\n {\n // Commit passed address to transferProxyAddress state variable\n state.transferProxyAddress = _transferProxyAddress;\n }\n\n /**\n * Add a factory to the mapping of tracked factories.\n *\n * @param _factoryAddress The address of the SetTokenFactory to enable\n */\n function enableFactory(\n address _factoryAddress\n )\n external\n onlyOwner\n {\n state.validFactories[_factoryAddress] = true;\n }\n\n /**\n * Disable a factory in the mapping of tracked factories.\n *\n * @param _factoryAddress The address of the SetTokenFactory to disable\n */\n function disableFactory(\n address _factoryAddress\n )\n external\n onlyOwner\n isValidFactory(_factoryAddress)\n {\n state.validFactories[_factoryAddress] = false;\n }\n\n /**\n * Disable a set token in the mapping of tracked set tokens.\n *\n * @param _setAddress The address of the SetToken to remove\n */\n function disableSet(\n address _setAddress\n )\n external\n onlyOwner\n isValidSet(_setAddress)\n {\n state.validSets[_setAddress] = false;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreInternal.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreInternal.sol", + "exportedSymbols": { + "CoreInternal": [ + 1359 + ] + }, + "id": 1360, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1264, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:9" + }, + { + "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 1266, + "nodeType": "ImportDirective", + "scope": 1360, + "sourceUnit": 4825, + "src": "622:76:9", + "symbolAliases": [ + { + "foreign": 1265, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1268, + "nodeType": "ImportDirective", + "scope": 1360, + "sourceUnit": 2639, + "src": "699:63:9", + "symbolAliases": [ + { + "foreign": 1267, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1270, + "nodeType": "ImportDirective", + "scope": 1360, + "sourceUnit": 2752, + "src": "763:49:9", + "symbolAliases": [ + { + "foreign": 1269, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1271, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4824, + "src": "1031:7:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$4824", + "typeString": "contract Ownable" + } + }, + "id": 1272, + "nodeType": "InheritanceSpecifier", + "src": "1031:7:9" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1273, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1044:9:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1274, + "nodeType": "InheritanceSpecifier", + "src": "1044:9:9" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1275, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1059:13:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1276, + "nodeType": "InheritanceSpecifier", + "src": "1059:13:9" + } + ], + "contractDependencies": [ + 2638, + 2751, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Core Internal\n@author Set Protocol\n * The CoreInternal contract contains methods to alter state that tracks contract\naddresses that need to interact with Core.", + "fullyImplemented": true, + "id": 1359, + "linearizedBaseContracts": [ + 1359, + 2638, + 2751, + 4824 + ], + "name": "CoreInternal", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1289, + "nodeType": "Block", + "src": "1372:115:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1283, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1446:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "1446:18:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1286, + "name": "_vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "1467:13:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1446:34:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1288, + "nodeType": "ExpressionStatement", + "src": "1446:34:9" + } + ] + }, + "documentation": "Set vaultAddress. Can only be set by owner of Core.\n * @param _vaultAddress The address of the Vault", + "id": 1290, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1281, + "modifierName": { + "argumentTypes": null, + "id": 1280, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1358:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1358:9:9" + } + ], + "name": "setVaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1278, + "name": "_vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 1290, + "src": "1305:21:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1277, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1305:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1295:37:9" + }, + "payable": false, + "returnParameters": { + "id": 1282, + "nodeType": "ParameterList", + "parameters": [], + "src": "1372:0:9" + }, + "scope": 1359, + "src": "1271:216:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1303, + "nodeType": "Block", + "src": "1772:139:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1297, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1854:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1299, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "1854:26:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1300, + "name": "_transferProxyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1292, + "src": "1883:21:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1854:50:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1302, + "nodeType": "ExpressionStatement", + "src": "1854:50:9" + } + ] + }, + "documentation": "Set transferProxyAddress. Can only be set by owner of Core.\n * @param _transferProxyAddress The address of the TransferProxy", + "id": 1304, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1295, + "modifierName": { + "argumentTypes": null, + "id": 1294, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1758:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1758:9:9" + } + ], + "name": "setTransferProxyAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1292, + "name": "_transferProxyAddress", + "nodeType": "VariableDeclaration", + "scope": 1304, + "src": "1697:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1697:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1687:45:9" + }, + "payable": false, + "returnParameters": { + "id": 1296, + "nodeType": "ParameterList", + "parameters": [], + "src": "1772:0:9" + }, + "scope": 1359, + "src": "1655:256:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1319, + "nodeType": "Block", + "src": "2177:61:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1311, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2187:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1314, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "2187:20:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1315, + "indexExpression": { + "argumentTypes": null, + "id": 1313, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1306, + "src": "2208:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2187:37:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2227:4:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2187:44:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1318, + "nodeType": "ExpressionStatement", + "src": "2187:44:9" + } + ] + }, + "documentation": "Add a factory to the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to enable", + "id": 1320, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1309, + "modifierName": { + "argumentTypes": null, + "id": 1308, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "2163:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2163:9:9" + } + ], + "name": "enableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1306, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1320, + "src": "2108:23:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1305, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2108:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2098:39:9" + }, + "payable": false, + "returnParameters": { + "id": 1310, + "nodeType": "ParameterList", + "parameters": [], + "src": "2177:0:9" + }, + "scope": 1359, + "src": "2076:162:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1338, + "nodeType": "Block", + "src": "2550:62:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1330, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2560:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1333, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "2560:20:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1334, + "indexExpression": { + "argumentTypes": null, + "id": 1332, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1322, + "src": "2581:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2560:37:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2600:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2560:45:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1337, + "nodeType": "ExpressionStatement", + "src": "2560:45:9" + } + ] + }, + "documentation": "Disable a factory in the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to disable", + "id": 1339, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1325, + "modifierName": { + "argumentTypes": null, + "id": 1324, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "2496:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2496:9:9" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1327, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1322, + "src": "2529:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1328, + "modifierName": { + "argumentTypes": null, + "id": 1326, + "name": "isValidFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "2514:14:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2514:31:9" + } + ], + "name": "disableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1339, + "src": "2441:23:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2441:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2431:39:9" + }, + "payable": false, + "returnParameters": { + "id": 1329, + "nodeType": "ParameterList", + "parameters": [], + "src": "2550:0:9" + }, + "scope": 1359, + "src": "2408:204:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1357, + "nodeType": "Block", + "src": "2899:53:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1349, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2909:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1352, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "2909:15:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1353, + "indexExpression": { + "argumentTypes": null, + "id": 1351, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "2925:11:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2909:28:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2940:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2909:36:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1356, + "nodeType": "ExpressionStatement", + "src": "2909:36:9" + } + ] + }, + "documentation": "Disable a set token in the mapping of tracked set tokens.\n * @param _setAddress The address of the SetToken to remove", + "id": 1358, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1344, + "modifierName": { + "argumentTypes": null, + "id": 1343, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "2853:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2853:9:9" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1346, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "2882:11:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1347, + "modifierName": { + "argumentTypes": null, + "id": 1345, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "2871:10:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2871:23:9" + } + ], + "name": "disableSet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1341, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1358, + "src": "2802:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1340, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2802:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2792:35:9" + }, + "payable": false, + "returnParameters": { + "id": 1348, + "nodeType": "ParameterList", + "parameters": [], + "src": "2899:0:9" + }, + "scope": 1359, + "src": "2773:179:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 1360, + "src": "1002:1952:9" + } + ], + "src": "597:2358:9" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreInternal.sol", + "exportedSymbols": { + "CoreInternal": [ + 1359 + ] + }, + "id": 1360, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1264, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:9" + }, + { + "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 1266, + "nodeType": "ImportDirective", + "scope": 1360, + "sourceUnit": 4825, + "src": "622:76:9", + "symbolAliases": [ + { + "foreign": 1265, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1268, + "nodeType": "ImportDirective", + "scope": 1360, + "sourceUnit": 2639, + "src": "699:63:9", + "symbolAliases": [ + { + "foreign": 1267, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1270, + "nodeType": "ImportDirective", + "scope": 1360, + "sourceUnit": 2752, + "src": "763:49:9", + "symbolAliases": [ + { + "foreign": 1269, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1271, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4824, + "src": "1031:7:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$4824", + "typeString": "contract Ownable" + } + }, + "id": 1272, + "nodeType": "InheritanceSpecifier", + "src": "1031:7:9" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1273, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1044:9:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1274, + "nodeType": "InheritanceSpecifier", + "src": "1044:9:9" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1275, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1059:13:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1276, + "nodeType": "InheritanceSpecifier", + "src": "1059:13:9" + } + ], + "contractDependencies": [ + 2638, + 2751, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Core Internal\n@author Set Protocol\n * The CoreInternal contract contains methods to alter state that tracks contract\naddresses that need to interact with Core.", + "fullyImplemented": true, + "id": 1359, + "linearizedBaseContracts": [ + 1359, + 2638, + 2751, + 4824 + ], + "name": "CoreInternal", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1289, + "nodeType": "Block", + "src": "1372:115:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1283, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1446:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "1446:18:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1286, + "name": "_vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "1467:13:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1446:34:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1288, + "nodeType": "ExpressionStatement", + "src": "1446:34:9" + } + ] + }, + "documentation": "Set vaultAddress. Can only be set by owner of Core.\n * @param _vaultAddress The address of the Vault", + "id": 1290, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1281, + "modifierName": { + "argumentTypes": null, + "id": 1280, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1358:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1358:9:9" + } + ], + "name": "setVaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1278, + "name": "_vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 1290, + "src": "1305:21:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1277, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1305:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1295:37:9" + }, + "payable": false, + "returnParameters": { + "id": 1282, + "nodeType": "ParameterList", + "parameters": [], + "src": "1372:0:9" + }, + "scope": 1359, + "src": "1271:216:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1303, + "nodeType": "Block", + "src": "1772:139:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1297, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1854:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1299, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "1854:26:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1300, + "name": "_transferProxyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1292, + "src": "1883:21:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1854:50:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1302, + "nodeType": "ExpressionStatement", + "src": "1854:50:9" + } + ] + }, + "documentation": "Set transferProxyAddress. Can only be set by owner of Core.\n * @param _transferProxyAddress The address of the TransferProxy", + "id": 1304, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1295, + "modifierName": { + "argumentTypes": null, + "id": 1294, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1758:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1758:9:9" + } + ], + "name": "setTransferProxyAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1292, + "name": "_transferProxyAddress", + "nodeType": "VariableDeclaration", + "scope": 1304, + "src": "1697:29:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1697:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1687:45:9" + }, + "payable": false, + "returnParameters": { + "id": 1296, + "nodeType": "ParameterList", + "parameters": [], + "src": "1772:0:9" + }, + "scope": 1359, + "src": "1655:256:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1319, + "nodeType": "Block", + "src": "2177:61:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1311, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2187:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1314, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "2187:20:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1315, + "indexExpression": { + "argumentTypes": null, + "id": 1313, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1306, + "src": "2208:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2187:37:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2227:4:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2187:44:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1318, + "nodeType": "ExpressionStatement", + "src": "2187:44:9" + } + ] + }, + "documentation": "Add a factory to the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to enable", + "id": 1320, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1309, + "modifierName": { + "argumentTypes": null, + "id": 1308, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "2163:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2163:9:9" + } + ], + "name": "enableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1306, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1320, + "src": "2108:23:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1305, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2108:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2098:39:9" + }, + "payable": false, + "returnParameters": { + "id": 1310, + "nodeType": "ParameterList", + "parameters": [], + "src": "2177:0:9" + }, + "scope": 1359, + "src": "2076:162:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1338, + "nodeType": "Block", + "src": "2550:62:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1330, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2560:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1333, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "2560:20:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1334, + "indexExpression": { + "argumentTypes": null, + "id": 1332, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1322, + "src": "2581:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2560:37:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2600:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2560:45:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1337, + "nodeType": "ExpressionStatement", + "src": "2560:45:9" + } + ] + }, + "documentation": "Disable a factory in the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to disable", + "id": 1339, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1325, + "modifierName": { + "argumentTypes": null, + "id": 1324, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "2496:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2496:9:9" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1327, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1322, + "src": "2529:15:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1328, + "modifierName": { + "argumentTypes": null, + "id": 1326, + "name": "isValidFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "2514:14:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2514:31:9" + } + ], + "name": "disableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 1339, + "src": "2441:23:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2441:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2431:39:9" + }, + "payable": false, + "returnParameters": { + "id": 1329, + "nodeType": "ParameterList", + "parameters": [], + "src": "2550:0:9" + }, + "scope": 1359, + "src": "2408:204:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1357, + "nodeType": "Block", + "src": "2899:53:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1349, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2909:5:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1352, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "2909:15:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1353, + "indexExpression": { + "argumentTypes": null, + "id": 1351, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "2925:11:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2909:28:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2940:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2909:36:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1356, + "nodeType": "ExpressionStatement", + "src": "2909:36:9" + } + ] + }, + "documentation": "Disable a set token in the mapping of tracked set tokens.\n * @param _setAddress The address of the SetToken to remove", + "id": 1358, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 1344, + "modifierName": { + "argumentTypes": null, + "id": 1343, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "2853:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2853:9:9" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1346, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "2882:11:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1347, + "modifierName": { + "argumentTypes": null, + "id": 1345, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "2871:10:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2871:23:9" + } + ], + "name": "disableSet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1341, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1358, + "src": "2802:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1340, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2802:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2792:35:9" + }, + "payable": false, + "returnParameters": { + "id": 1348, + "nodeType": "ParameterList", + "parameters": [], + "src": "2899:0:9" + }, + "scope": 1359, + "src": "2773:179:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 1360, + "src": "1002:1952:9" + } + ], + "src": "597:2358:9" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.897Z" +} \ No newline at end of file diff --git a/artifacts/ts/CoreIssuance.ts b/artifacts/ts/CoreIssuance.ts new file mode 100644 index 000000000..e1bcf5168 --- /dev/null +++ b/artifacts/ts/CoreIssuance.ts @@ -0,0 +1,9218 @@ +export const CoreIssuance = +{ + "contractName": "CoreIssuance", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_setToken", + "type": "address" + }, + { + "indexed": true, + "name": "_component", + "type": "address" + }, + { + "indexed": false, + "name": "_quantity", + "type": "uint256" + } + ], + "name": "IssuanceComponentDeposited", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "issue", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "redeem", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50611efe806100206000396000f3006080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100a95780631e912bd6146101045780631e9a695014610149578063430bf08a14610196578063867904b4146101ed5780638ca4daf91461023a578063a003e06914610291578063c19d93fb14610301578063f7213db61461038b578063fef3ee73146103d0575b600080fd5b3480156100b557600080fd5b506100ea600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061042b565b604051808215151515815260200191505060405180910390f35b34801561011057600080fd5b506101336004803603810190808035600019169060200190929190505050610483565b6040518082815260200191505060405180910390f35b34801561015557600080fd5b50610194600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104aa565b005b3480156101a257600080fd5b506101ab610eb5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f957600080fd5b50610238600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee1565b005b34801561024657600080fd5b5061024f61130b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561029d57600080fd5b506102bf600480360381019080803560ff169060200190929190505050611337565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561030d57600080fd5b5061031661137c565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b34801561039757600080fd5b506103ba60048036038101908080356000191690602001909291905050506113ce565b6040518082815260200191505060405180910390f35b3480156103dc57600080fd5b50610411600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113f5565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b600060608060008060008088600060040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e00000000000000000000000000000000000000000000000081525090151561060b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105d05780820151818401526020810190506105b5565b50505050905090810190601f1680156105fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508860008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515610716576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106db5780820151818401526020810190506106c0565b50505050905090810190601f1680156107085780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50898b60008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561077f57600080fd5b505af1158015610793573d6000803e3d6000fd5b505050506040513d60208110156107a957600080fd5b8101908080519060200190929190505050838115156107c457fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e000000000000008152509015156108cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610890578082015181840152602081019050610875565b50505050905090810190601f1680156108bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff16639dc29fac338e6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561096f57600080fd5b505af1158015610983573d6000803e3d6000fd5b505050508c73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156109eb57600080fd5b505af11580156109ff573d6000803e3d6000fd5b505050506040513d6020811015610a1557600080fd5b81019080805190602001909291905050509a508c73ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015610a8c57600080fd5b505af1158015610aa0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610aca57600080fd5b810190808051640100000000811115610ae257600080fd5b82810190506020810184811115610af857600080fd5b8151856020820283011164010000000082111715610b1557600080fd5b505092919050505099508c73ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015610b8357600080fd5b505af1158015610b97573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610bc157600080fd5b810190808051640100000000811115610bd957600080fd5b82810190506020810184811115610bef57600080fd5b8151856020820283011164010000000082111715610c0c57600080fd5b50509291905050509850600097505b89518861ffff161015610ea657898861ffff16815181101515610c3a57fe5b906020019060200201519650888861ffff16815181101515610c5857fe5b906020019060200201519550610c6f868c8e61144d565b9450600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308e89886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610d6d57600080fd5b505af1158015610d81573d6000803e3d6000fd5b50505050600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263389886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610e8157600080fd5b505af1158015610e95573d6000803e3d6000fd5b505050508780600101985050610c1b565b50505050505050505050505050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b81600060040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515611037576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ffc578082015181840152602081019050610fe1565b50505050905090810190601f1680156110295780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508160008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515611142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111075780820151818401526020810190506110ec565b50505050905090810190601f1680156111345780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50828460008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156111ab57600080fd5b505af11580156111bf573d6000803e3d6000fd5b505050506040513d60208110156111d557600080fd5b8101908080519060200190929190505050838115156111f057fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e000000000000008152509015156112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112bc5780820151818401526020810190506112a1565b50505050905090810190601f1680156112e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061130333878761147d565b505050505050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611474846114668585611e6b90919063ffffffff16565b611e8190919063ffffffff16565b90509392505050565b6060806000806000806000808973ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561152b57600080fd5b81019080805164010000000081111561154357600080fd5b8281019050602081018481111561155957600080fd5b815185602082028301116401000000008211171561157657600080fd5b505092919050505097508973ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156115e457600080fd5b505af11580156115f8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561162257600080fd5b81019080805164010000000081111561163a57600080fd5b8281019050602081018481111561165057600080fd5b815185602082028301116401000000008211171561166d57600080fd5b50509291905050509650600095505b87518661ffff161015611da357878661ffff1681518110151561169b57fe5b906020019060200201519450868661ffff168151811015156116b957fe5b90602001906020020151935061176e848b73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561172d57600080fd5b505af1158015611741573d6000803e3d6000fd5b505050506040513d602081101561175757600080fd5b81019080805190602001909291905050508b61144d565b9250600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f98ade38c876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561186457600080fd5b505af1158015611878573d6000803e3d6000fd5b505050506040513d602081101561188e57600080fd5b8101908080519060200190929190505050915082821015156119c357600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156119a657600080fd5b505af11580156119ba573d6000803e3d6000fd5b50505050611c82565b6000821115611ae157600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611ac857600080fd5b505af1158015611adc573d6000803e3d6000fd5b505050505b611af48284611eb990919063ffffffff16565b9050600060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22958c87611b4c8688611eb990919063ffffffff16565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611c0457600080fd5b505af1158015611c18573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fced8518610cf00c97309551834addd978c595341eda2066dbd52f9e990489573836040518082815260200191505060405180910390a35b600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57268b87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611d7e57600080fd5b505af1158015611d92573d6000803e3d6000fd5b50505050858060010196505061167c565b8973ffffffffffffffffffffffffffffffffffffffff166340c10f198c8b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611e4657600080fd5b505af1158015611e5a573d6000803e3d6000fd5b505050505050505050505050505050565b60008183811515611e7857fe5b04905092915050565b600080831415611e945760009050611eb3565b8183029050818382811515611ea557fe5b04141515611eaf57fe5b8090505b92915050565b6000828211151515611ec757fe5b8183039050929150505600a165627a7a723058205b6259574f07feb246edb1ad2e9108735a81ca495a44899f8593fcb71a7f08510029", + "deployedBytecode": "0x6080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100a95780631e912bd6146101045780631e9a695014610149578063430bf08a14610196578063867904b4146101ed5780638ca4daf91461023a578063a003e06914610291578063c19d93fb14610301578063f7213db61461038b578063fef3ee73146103d0575b600080fd5b3480156100b557600080fd5b506100ea600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061042b565b604051808215151515815260200191505060405180910390f35b34801561011057600080fd5b506101336004803603810190808035600019169060200190929190505050610483565b6040518082815260200191505060405180910390f35b34801561015557600080fd5b50610194600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104aa565b005b3480156101a257600080fd5b506101ab610eb5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f957600080fd5b50610238600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee1565b005b34801561024657600080fd5b5061024f61130b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561029d57600080fd5b506102bf600480360381019080803560ff169060200190929190505050611337565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561030d57600080fd5b5061031661137c565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b34801561039757600080fd5b506103ba60048036038101908080356000191690602001909291905050506113ce565b6040518082815260200191505060405180910390f35b3480156103dc57600080fd5b50610411600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113f5565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b600060608060008060008088600060040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e00000000000000000000000000000000000000000000000081525090151561060b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105d05780820151818401526020810190506105b5565b50505050905090810190601f1680156105fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508860008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515610716576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106db5780820151818401526020810190506106c0565b50505050905090810190601f1680156107085780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50898b60008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561077f57600080fd5b505af1158015610793573d6000803e3d6000fd5b505050506040513d60208110156107a957600080fd5b8101908080519060200190929190505050838115156107c457fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e000000000000008152509015156108cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610890578082015181840152602081019050610875565b50505050905090810190601f1680156108bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508c73ffffffffffffffffffffffffffffffffffffffff16639dc29fac338e6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561096f57600080fd5b505af1158015610983573d6000803e3d6000fd5b505050508c73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156109eb57600080fd5b505af11580156109ff573d6000803e3d6000fd5b505050506040513d6020811015610a1557600080fd5b81019080805190602001909291905050509a508c73ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015610a8c57600080fd5b505af1158015610aa0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610aca57600080fd5b810190808051640100000000811115610ae257600080fd5b82810190506020810184811115610af857600080fd5b8151856020820283011164010000000082111715610b1557600080fd5b505092919050505099508c73ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015610b8357600080fd5b505af1158015610b97573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610bc157600080fd5b810190808051640100000000811115610bd957600080fd5b82810190506020810184811115610bef57600080fd5b8151856020820283011164010000000082111715610c0c57600080fd5b50509291905050509850600097505b89518861ffff161015610ea657898861ffff16815181101515610c3a57fe5b906020019060200201519650888861ffff16815181101515610c5857fe5b906020019060200201519550610c6f868c8e61144d565b9450600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308e89886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610d6d57600080fd5b505af1158015610d81573d6000803e3d6000fd5b50505050600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57263389886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610e8157600080fd5b505af1158015610e95573d6000803e3d6000fd5b505050508780600101985050610c1b565b50505050505050505050505050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b81600060040160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602881526020017f53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f81526020017f742065786973742e000000000000000000000000000000000000000000000000815250901515611037576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ffc578082015181840152602081019050610fe1565b50505050905090810190601f1680156110295780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508160008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e0000000000000000000000000000000000000000000000000000000000815250901515611142576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111075780820151818401526020810190506110ec565b50505050905090810190601f1680156111345780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50828460008173ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156111ab57600080fd5b505af11580156111bf573d6000803e3d6000fd5b505050506040513d60208110156111d557600080fd5b8101908080519060200190929190505050838115156111f057fe5b0614606060405190810160405280603981526020017f5175616e74697479206d757374206265206d756c7469706c65206f662074686581526020017f206e61747572616c20756e6974206f6620746865207365742e000000000000008152509015156112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112bc5780820151818401526020810190506112a1565b50505050905090810190601f1680156112e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061130333878761147d565b505050505050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611474846114668585611e6b90919063ffffffff16565b611e8190919063ffffffff16565b90509392505050565b6060806000806000806000808973ffffffffffffffffffffffffffffffffffffffff166399d50d5d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156114ed57600080fd5b505af1158015611501573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561152b57600080fd5b81019080805164010000000081111561154357600080fd5b8281019050602081018481111561155957600080fd5b815185602082028301116401000000008211171561157657600080fd5b505092919050505097508973ffffffffffffffffffffffffffffffffffffffff1663027aa9f56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1580156115e457600080fd5b505af11580156115f8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561162257600080fd5b81019080805164010000000081111561163a57600080fd5b8281019050602081018481111561165057600080fd5b815185602082028301116401000000008211171561166d57600080fd5b50509291905050509650600095505b87518661ffff161015611da357878661ffff1681518110151561169b57fe5b906020019060200201519450868661ffff168151811015156116b957fe5b90602001906020020151935061176e848b73ffffffffffffffffffffffffffffffffffffffff166342a7cfd56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561172d57600080fd5b505af1158015611741573d6000803e3d6000fd5b505050506040513d602081101561175757600080fd5b81019080805190602001909291905050508b61144d565b9250600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f98ade38c876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561186457600080fd5b505af1158015611878573d6000803e3d6000fd5b505050506040513d602081101561188e57600080fd5b8101908080519060200190929190505050915082821015156119c357600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156119a657600080fd5b505af11580156119ba573d6000803e3d6000fd5b50505050611c82565b6000821115611ae157600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166380ddda308c87856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611ac857600080fd5b505af1158015611adc573d6000803e3d6000fd5b505050505b611af48284611eb990919063ffffffff16565b9050600060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303ee22958c87611b4c8688611eb990919063ffffffff16565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611c0457600080fd5b505af1158015611c18573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fced8518610cf00c97309551834addd978c595341eda2066dbd52f9e990489573836040518082815260200191505060405180910390a35b600060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bada57268b87866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015611d7e57600080fd5b505af1158015611d92573d6000803e3d6000fd5b50505050858060010196505061167c565b8973ffffffffffffffffffffffffffffffffffffffff166340c10f198c8b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611e4657600080fd5b505af1158015611e5a573d6000803e3d6000fd5b505050505050505050505050505050565b60008183811515611e7857fe5b04905092915050565b600080831415611e945760009050611eb3565b8183029050818382811515611ea557fe5b04141515611eaf57fe5b8090505b92915050565b6000828211151515611ec757fe5b8183039050929150505600a165627a7a723058205b6259574f07feb246edb1ad2e9108735a81ca495a44899f8593fcb71a7f08510029", + "sourceMap": "1112:6050:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1112:6050:10;;;;;;;", + "deployedSourceMap": "1112:6050:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2199:1382:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2199:1382:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:314:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1675:314:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:139:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;2529:::-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;2199:1382:10:-;2564:16;2708:27;2786:19;2856:8;2912:24;2966:16;3008:15;2310:11;1934:5:21;:15;;:28;1950:11;1934:28;;;;;;;;;;;;;;;;;;;;;;;;;1976:11;;;;;;;;;;;;;;;;;;;;;;;1913:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:84:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2350:9:10;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2391:9:10;2402:11;2221:1:21;2193:9;2183:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:34:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2183:34:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2183:34:21;;;;;;;;;;;;;;;;2171:9;:46;;;;;;;;:51;2236:16;;;;;;;;;;;;;;;;;;;;;;;2150:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2150:112:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2513:11:10;2503:27;;;2531:10;2543:9;2503:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2503:50:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2503:50:10;;;;2593:11;2583:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2583:36:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:36:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2583:36:10;;;;;;;;;;;;;;;;2564:55;;2748:11;2738:36;;;:38;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2738:38:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2738:38:10;;;;;;39:16:-1;36:1;17:17;2:54;2738:38:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2738:38:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;2738:38:10;;;;;;2708:68;;2818:11;2808:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2808:33:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2808:33:10;;;;;;39:16:-1;36:1;17:17;2:54;2808:33:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2808:33:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;2808:33:10;;;;;;2786:55;;2867:1;2856:12;;2851:724;2874:10;:17;2870:1;:21;;;2851:724;;;2939:10;2950:1;2939:13;;;;;;;;;;;;;;;;;;;;2912:40;;2985:5;2991:1;2985:8;;;;;;;;;;;;;;;;;;;;2966:27;;3026:121;3066:11;3095;3124:9;3026:22;:121::i;:::-;3008:139;;3209:5;:18;;;;;;;;;;;;3202:46;;;3266:11;3295:16;3329:10;3202:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3202:151:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3202:151:10;;;;3421:5;:18;;;;;;;;;;;;3414:46;;;3478:10;3506:16;3540:10;3414:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3414:150:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3414:150:10;;;;2893:3;;;;;;;2851:724;;;1575:1:21;;2007;2199:1382:10;;;;;;;;;;:::o;1954:123:22:-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;1675:314:10:-;1785:11;1934:5:21;:15;;:28;1950:11;1934:28;;;;;;;;;;;;;;;;;;;;;;;;;1976:11;;;;;;;;;;;;;;;;;;;;;;;1913:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:84:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1825:9:10;1527:1:21;1515:9;:13;1542;;;;;;;;;;;;;;;;;;;;;;;1494:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1494:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1866:9:10;1877:11;2221:1:21;2193:9;2183:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:34:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2183:34:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2183:34:21;;;;;;;;;;;;;;;;2171:9;:46;;;;;;;;:51;2236:16;;;;;;;;;;;;;;;;;;;;;;;2150:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2150:112:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1933:49:10;1947:10;1959:11;1972:9;1933:13;:49::i;:::-;1575:1:21;;2007;1675:314:10;;;:::o;1809:139:22:-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;1656:147::-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2377:146::-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o;3947:247:10:-;4112:4;4139:48;4171:15;4139:27;4153:12;4139:9;:13;;:27;;;;:::i;:::-;:31;;:48;;;;:::i;:::-;4132:55;;3947:247;;;;;:::o;4503:2657::-;4678:27;4799:19;4927:8;4983:17;5030:9;5118:30;5354:17;6196:20;4718:11;4708:36;;;:38;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4708:38:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4708:38:10;;;;;;39:16:-1;36:1;17:17;2:54;4708:38:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4708:38:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;4708:38:10;;;;;;4678:68;;4831:11;4821:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4821:33:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4821:33:10;;;;;;39:16:-1;36:1;17:17;2:54;4821:33:10;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4821:33:10;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;4821:33:10;;;;;;4799:55;;4938:1;4927:12;;4922:2148;4945:10;:17;4941:1;:21;;;4922:2148;;;5003:10;5014:1;5003:13;;;;;;;;;;;;;;;;;;;;4983:33;;5042:5;5048:1;5042:8;;;;;;;;;;;;;;;;;;;;5030:20;;5151:139;5191:4;5223:11;5213:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5213:36:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5213:36:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5213:36:10;;;;;;;;;;;;;;;;5267:9;5151:22;:139::i;:::-;5118:172;;5381:5;:18;;;;;;;;;;;;5374:42;;;5417:6;5425:9;5374:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5374:61:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5374:61:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5374:61:10;;;;;;;;;;;;;;;;5354:81;;5469:25;5453:12;:41;;5449:1359;;;5599:5;:18;;;;;;;;;;;;5592:46;;;5660:6;5688:9;5719:25;5592:170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5592:170:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5592:170:10;;;;5449:1359;;;5911:1;5896:12;:16;5892:236;;;5943:5;:18;;;;;;;;;;;;5936:46;;;6008:6;6040:9;6075:12;5936:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5936:173:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5936:173:10;;;;5892:236;6219:43;6249:12;6219:25;:29;;:43;;;;:::i;:::-;6196:66;;6375:5;:26;;;;;;;;;;;;6360:58;;;6440:6;6468:9;6499:43;6529:12;6499:25;:29;;:43;;;;:::i;:::-;6360:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6360:200:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6360:200:10;;;;6729:9;6648:145;;6696:11;6648:145;;;6760:15;6648:145;;;;;;;;;;;;;;;;;;5449:1359;6907:5;:18;;;;;;;;;;;;6900:46;;;6964:11;6993:9;7020:25;6900:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6900:159:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6900:159:10;;;;4964:3;;;;;;;4922:2148;;;7117:11;7107:27;;;7135:6;7143:9;7107:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7107:46:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7107:46:10;;;;4503:2657;;;;;;;;;;;:::o;658:272:38:-;716:7;924:1;920;:5;;;;;;;;913:12;;658:272;;;;:::o;203:373::-;261:9;492:1;487;:6;483:35;;;510:1;503:8;;;;483:35;532:1;528;:5;524:9;;555:1;550;546;:5;;;;;;;;:10;539:18;;;;;;570:1;563:8;;203:373;;;;;:::o;1042:110::-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { CoreModifiers } from \"../lib/CoreSharedModifiers.sol\";\nimport { CoreState } from \"../lib/CoreState.sol\";\nimport { ISetToken } from \"../interfaces/ISetToken.sol\";\nimport { ITransferProxy } from \"../interfaces/ITransferProxy.sol\";\nimport { IVault } from \"../interfaces/IVault.sol\";\n\n\n/**\n * @title Core Issuance\n * @author Set Protocol\n *\n * The CoreIssuance contract contains public set token operations\n */\ncontract CoreIssuance is\n CoreState,\n CoreModifiers\n{\n // Use SafeMath library for all uint256 arithmetic\n using SafeMath for uint256;\n\n /* ============ Events ============ */\n\n event IssuanceComponentDeposited(\n address indexed _setToken,\n address indexed _component,\n uint _quantity\n );\n\n /* ============ Public Functions ============ */\n\n /**\n * Exchanges components for Set Tokens\n *\n * @param _setAddress Address of set to issue\n * @param _quantity Quantity of set to issue\n */\n function issue(\n address _setAddress,\n uint _quantity\n )\n external\n isValidSet(_setAddress)\n isPositiveQuantity(_quantity)\n isNaturalUnitMultiple(_quantity, _setAddress)\n {\n // Run issueInternal\n issueInternal(msg.sender, _setAddress, _quantity);\n }\n\n /**\n * Function to convert Set Tokens into underlying components\n *\n * @param _setAddress The address of the Set token\n * @param _quantity The number of tokens to redeem\n */\n function redeem(\n address _setAddress,\n uint _quantity\n )\n external\n isValidSet(_setAddress)\n isPositiveQuantity(_quantity)\n isNaturalUnitMultiple(_quantity, _setAddress)\n {\n // Burn the Set token (thereby decrementing the SetToken balance)\n ISetToken(_setAddress).burn(msg.sender, _quantity);\n\n uint naturalUnit = ISetToken(_setAddress).naturalUnit();\n\n // Transfer the underlying tokens to the corresponding token balances\n address[] memory components = ISetToken(_setAddress).getComponents();\n uint[] memory units = ISetToken(_setAddress).getUnits();\n for (uint16 i = 0; i < components.length; i++) {\n address currentComponent = components[i];\n uint currentUnit = units[i];\n\n uint tokenValue = calculateTransferValue(\n currentUnit,\n naturalUnit,\n _quantity\n );\n\n // Decrement the Set amount\n IVault(state.vaultAddress).decrementTokenOwner(\n _setAddress,\n currentComponent,\n tokenValue\n );\n\n // Increment the component amount\n IVault(state.vaultAddress).incrementTokenOwner(\n msg.sender,\n currentComponent,\n tokenValue\n );\n }\n }\n\n /* ============ Private Functions ============ */\n\n /**\n * Function to calculate the transfer value of a component given quantity of Set\n *\n * @param _componentUnits The units of the component token\n * @param _naturalUnit The natural unit of the Set token\n * @param _quantity The number of tokens being redeem\n */\n function calculateTransferValue(\n uint _componentUnits,\n uint _naturalUnit,\n uint _quantity\n )\n pure\n internal\n returns(uint)\n {\n return _quantity.div(_naturalUnit).mul(_componentUnits);\n }\n\n /* ============ Internal Functions ============ */\n\n /**\n * Exchanges components for Set Tokens, accepting any owner\n *\n * @param _owner Address to issue set to\n * @param _setAddress Address of set to issue\n * @param _quantity Quantity of set to issue\n */\n function issueInternal(\n address _owner,\n address _setAddress,\n uint _quantity\n )\n internal\n {\n // Fetch set token components\n address[] memory components = ISetToken(_setAddress).getComponents();\n // Fetch set token component units\n uint[] memory units = ISetToken(_setAddress).getUnits();\n\n // Inspect vault for required component quantity\n for (uint16 i = 0; i < components.length; i++) {\n address component = components[i];\n uint unit = units[i];\n\n // Calculate required component quantity\n uint requiredComponentQuantity = calculateTransferValue(\n unit,\n ISetToken(_setAddress).naturalUnit(),\n _quantity\n );\n\n // Fetch component quantity in vault\n uint vaultBalance = IVault(state.vaultAddress).getOwnerBalance(_owner, component);\n if (vaultBalance >= requiredComponentQuantity) {\n // Decrement vault balance by the required component quantity\n IVault(state.vaultAddress).decrementTokenOwner(\n _owner,\n component,\n requiredComponentQuantity\n );\n } else {\n // User has less than required amount, decrement the vault by full balance\n if (vaultBalance > 0) {\n IVault(state.vaultAddress).decrementTokenOwner(\n _owner,\n component,\n vaultBalance\n );\n }\n\n // Calculate remainder to deposit\n uint amountToDeposit = requiredComponentQuantity.sub(vaultBalance);\n\n // Transfer the remainder component quantity required to vault\n ITransferProxy(state.transferProxyAddress).transferToVault(\n _owner,\n component,\n requiredComponentQuantity.sub(vaultBalance)\n );\n\n // Log transfer of component from issuer waller\n emit IssuanceComponentDeposited(\n _setAddress,\n component,\n amountToDeposit\n );\n }\n\n // Increment the vault balance of the set token for the component\n IVault(state.vaultAddress).incrementTokenOwner(\n _setAddress,\n component,\n requiredComponentQuantity\n );\n }\n\n // Issue set token\n ISetToken(_setAddress).mint(_owner, _quantity);\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuance.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuance.sol", + "exportedSymbols": { + "CoreIssuance": [ + 1696 + ] + }, + "id": 1697, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1361, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:10" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 1363, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 4739, + "src": "622:73:10", + "symbolAliases": [ + { + "foreign": 1362, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1365, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2639, + "src": "696:63:10", + "symbolAliases": [ + { + "foreign": 1364, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1367, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2752, + "src": "760:49:10", + "symbolAliases": [ + { + "foreign": 1366, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", + "file": "../interfaces/ISetToken.sol", + "id": 1369, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2505, + "src": "810:56:10", + "symbolAliases": [ + { + "foreign": 1368, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ITransferProxy.sol", + "file": "../interfaces/ITransferProxy.sol", + "id": 1371, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2517, + "src": "867:66:10", + "symbolAliases": [ + { + "foreign": 1370, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IVault.sol", + "file": "../interfaces/IVault.sol", + "id": 1373, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2556, + "src": "934:50:10", + "symbolAliases": [ + { + "foreign": 1372, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1374, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1141:9:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1375, + "nodeType": "InheritanceSpecifier", + "src": "1141:9:10" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1376, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1156:13:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1377, + "nodeType": "InheritanceSpecifier", + "src": "1156:13:10" + } + ], + "contractDependencies": [ + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Issuance\n@author Set Protocol\n * The CoreIssuance contract contains public set token operations", + "fullyImplemented": true, + "id": 1696, + "linearizedBaseContracts": [ + 1696, + 2638, + 2751 + ], + "name": "CoreIssuance", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1380, + "libraryName": { + "contractScope": null, + "id": 1378, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1237:8:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1231:27:10", + "typeName": { + "id": 1379, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1250:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 1388, + "name": "IssuanceComponentDeposited", + "nodeType": "EventDefinition", + "parameters": { + "id": 1387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1382, + "indexed": true, + "name": "_setToken", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "1350:25:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1381, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1350:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1384, + "indexed": true, + "name": "_component", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "1385:26:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1385:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "indexed": false, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "1421:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1385, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1421:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1340:101:10" + }, + "src": "1308:134:10" + }, + { + "body": { + "id": 1412, + "nodeType": "Block", + "src": "1894:95:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1406, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1947:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1947:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1408, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1959:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1409, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "1972:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1405, + "name": "issueInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1695, + "src": "1933:13:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1933:49:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1411, + "nodeType": "ExpressionStatement", + "src": "1933:49:10" + } + ] + }, + "documentation": "Exchanges components for Set Tokens\n * @param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue", + "id": 1413, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1395, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1785:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1396, + "modifierName": { + "argumentTypes": null, + "id": 1394, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "1774:10:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1774:23:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1398, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "1825:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1399, + "modifierName": { + "argumentTypes": null, + "id": 1397, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "1806:18:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1806:29:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1401, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "1866:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1402, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1877:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1403, + "modifierName": { + "argumentTypes": null, + "id": 1400, + "name": "isNaturalUnitMultiple", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2637, + "src": "1844:21:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1844:45:10" + } + ], + "name": "issue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1390, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1413, + "src": "1699:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1699:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1392, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1413, + "src": "1728:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1391, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1728:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1689:59:10" + }, + "payable": false, + "returnParameters": { + "id": 1404, + "nodeType": "ParameterList", + "parameters": [], + "src": "1894:0:10" + }, + "scope": 1696, + "src": "1675:314:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1521, + "nodeType": "Block", + "src": "2419:1162:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1434, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2531:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2531:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1436, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2543:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1431, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2513:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1430, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2503:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2503:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 2503, + "src": "2503:27:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2503:50:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1438, + "nodeType": "ExpressionStatement", + "src": "2503:50:10" + }, + { + "assignments": [ + 1440 + ], + "declarations": [ + { + "constant": false, + "id": 1440, + "name": "naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2564:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1439, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2564:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1446, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1442, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2593:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1441, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2583:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2583:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "naturalUnit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "2583:34:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2583:36:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2564:55:10" + }, + { + "assignments": [ + 1450 + ], + "declarations": [ + { + "constant": false, + "id": 1450, + "name": "components", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2708:27:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1448, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2708:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1449, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2708:9:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1456, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1452, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2748:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1451, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2738:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2738:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getComponents", + "nodeType": "MemberAccess", + "referencedDeclaration": 2483, + "src": "2738:36:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function () external returns (address[] memory)" + } + }, + "id": 1455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2738:38:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2708:68:10" + }, + { + "assignments": [ + 1460 + ], + "declarations": [ + { + "constant": false, + "id": 1460, + "name": "units", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2786:19:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1458, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2786:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1459, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2786:6:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1466, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1462, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2818:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1461, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2808:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2808:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUnits", + "nodeType": "MemberAccess", + "referencedDeclaration": 2489, + "src": "2808:31:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function () external returns (uint256[] memory)" + } + }, + "id": 1465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2808:33:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2786:55:10" + }, + { + "body": { + "id": 1519, + "nodeType": "Block", + "src": "2898:677:10", + "statements": [ + { + "assignments": [ + 1479 + ], + "declarations": [ + { + "constant": false, + "id": 1479, + "name": "currentComponent", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2912:24:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1478, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2912:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1483, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1480, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "2939:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1482, + "indexExpression": { + "argumentTypes": null, + "id": 1481, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2950:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2939:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2912:40:10" + }, + { + "assignments": [ + 1485 + ], + "declarations": [ + { + "constant": false, + "id": 1485, + "name": "currentUnit", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2966:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1484, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2966:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1489, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1486, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "2985:5:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1488, + "indexExpression": { + "argumentTypes": null, + "id": 1487, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2991:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2985:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2966:27:10" + }, + { + "assignments": [ + 1491 + ], + "declarations": [ + { + "constant": false, + "id": 1491, + "name": "tokenValue", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "3008:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1490, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3008:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1493, + "name": "currentUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1485, + "src": "3066:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1494, + "name": "naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1440, + "src": "3095:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1495, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "3124:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1492, + "name": "calculateTransferValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "3026:22:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3026:121:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3008:139:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1503, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "3266:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1504, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "3295:16:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1505, + "name": "tokenValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "3329:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1499, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "3209:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1500, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "3209:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1498, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3202:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3202:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "3202:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3202:151:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1507, + "nodeType": "ExpressionStatement", + "src": "3202:151:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1513, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "3478:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3478:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1515, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "3506:16:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1516, + "name": "tokenValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "3540:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1509, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "3421:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "3421:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1508, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3414:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "incrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2536, + "src": "3414:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:150:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1518, + "nodeType": "ExpressionStatement", + "src": "3414:150:10" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1471, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2870:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1472, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "2874:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2874:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2870:21:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1520, + "initializationExpression": { + "assignments": [ + 1468 + ], + "declarations": [ + { + "constant": false, + "id": 1468, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2856:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1467, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2856:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1470, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2867:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2856:12:10" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2893:3:10", + "subExpression": { + "argumentTypes": null, + "id": 1475, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2893:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 1477, + "nodeType": "ExpressionStatement", + "src": "2893:3:10" + }, + "nodeType": "ForStatement", + "src": "2851:724:10" + } + ] + }, + "documentation": "Function to convert Set Tokens into underlying components\n * @param _setAddress The address of the Set token\n@param _quantity The number of tokens to redeem", + "id": 1522, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1420, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2310:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1421, + "modifierName": { + "argumentTypes": null, + "id": 1419, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "2299:10:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2299:23:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1423, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2350:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1424, + "modifierName": { + "argumentTypes": null, + "id": 1422, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "2331:18:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2331:29:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1426, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2391:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1427, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2402:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1428, + "modifierName": { + "argumentTypes": null, + "id": 1425, + "name": "isNaturalUnitMultiple", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2637, + "src": "2369:21:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2369:45:10" + } + ], + "name": "redeem", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1415, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2224:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2224:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1417, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2253:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1416, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2253:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2214:59:10" + }, + "payable": false, + "returnParameters": { + "id": 1429, + "nodeType": "ParameterList", + "parameters": [], + "src": "2419:0:10" + }, + "scope": 1696, + "src": "2199:1382:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1541, + "nodeType": "Block", + "src": "4122:72:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1538, + "name": "_componentUnits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1524, + "src": "4171:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1535, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1526, + "src": "4153:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1533, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1528, + "src": "4139:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 4693, + "src": "4139:13:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4139:27:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4679, + "src": "4139:31:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4139:48:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1532, + "id": 1540, + "nodeType": "Return", + "src": "4132:55:10" + } + ] + }, + "documentation": "Function to calculate the transfer value of a component given quantity of Set\n * @param _componentUnits The units of the component token\n@param _naturalUnit The natural unit of the Set token\n@param _quantity The number of tokens being redeem", + "id": 1542, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "calculateTransferValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1524, + "name": "_componentUnits", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "3988:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3988:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1526, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "4018:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1525, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4018:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1528, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "4045:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1527, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4045:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:87:10" + }, + "payable": false, + "returnParameters": { + "id": 1532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1531, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "4112:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1530, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4112:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4111:6:10" + }, + "scope": 1696, + "src": "3947:247:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1694, + "nodeType": "Block", + "src": "4630:2530:10", + "statements": [ + { + "assignments": [ + 1554 + ], + "declarations": [ + { + "constant": false, + "id": 1554, + "name": "components", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4678:27:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1552, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4678:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1553, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4678:9:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1560, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1556, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "4718:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1555, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "4708:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4708:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getComponents", + "nodeType": "MemberAccess", + "referencedDeclaration": 2483, + "src": "4708:36:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function () external returns (address[] memory)" + } + }, + "id": 1559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4708:38:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4678:68:10" + }, + { + "assignments": [ + 1564 + ], + "declarations": [ + { + "constant": false, + "id": 1564, + "name": "units", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4799:19:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1562, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4799:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1563, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4799:6:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1570, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1566, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "4831:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1565, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "4821:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4821:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUnits", + "nodeType": "MemberAccess", + "referencedDeclaration": 2489, + "src": "4821:31:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function () external returns (uint256[] memory)" + } + }, + "id": 1569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4821:33:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4799:55:10" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "4969:2101:10", + "statements": [ + { + "assignments": [ + 1583 + ], + "declarations": [ + { + "constant": false, + "id": 1583, + "name": "component", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4983:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1582, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4983:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1587, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1584, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "5003:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1586, + "indexExpression": { + "argumentTypes": null, + "id": 1585, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "5014:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5003:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4983:33:10" + }, + { + "assignments": [ + 1589 + ], + "declarations": [ + { + "constant": false, + "id": 1589, + "name": "unit", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "5030:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1588, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5030:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1593, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1590, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "5042:5:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1592, + "indexExpression": { + "argumentTypes": null, + "id": 1591, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "5048:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5042:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5030:20:10" + }, + { + "assignments": [ + 1595 + ], + "declarations": [ + { + "constant": false, + "id": 1595, + "name": "requiredComponentQuantity", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "5118:30:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1594, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5118:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1605, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1597, + "name": "unit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1589, + "src": "5191:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1599, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "5223:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1598, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "5213:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5213:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "naturalUnit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "5213:34:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 1602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5213:36:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1603, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1548, + "src": "5267:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1596, + "name": "calculateTransferValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "5151:22:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5151:139:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5118:172:10" + }, + { + "assignments": [ + 1607 + ], + "declarations": [ + { + "constant": false, + "id": 1607, + "name": "vaultBalance", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "5354:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1606, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5354:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1616, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1613, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "5417:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1614, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "5425:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1609, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5381:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1610, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5381:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1608, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5374:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5374:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getOwnerBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2554, + "src": "5374:42:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) external returns (uint256)" + } + }, + "id": 1615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5374:61:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5354:81:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1617, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "5453:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1618, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "5469:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5453:41:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1672, + "nodeType": "Block", + "src": "5783:1025:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1631, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "5896:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5911:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5896:16:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1645, + "nodeType": "IfStatement", + "src": "5892:236:10", + "trueBody": { + "id": 1644, + "nodeType": "Block", + "src": "5914:214:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1639, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "6008:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1640, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6040:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1641, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "6075:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1635, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5943:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1636, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5943:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1634, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5936:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5936:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "5936:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5936:173:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1643, + "nodeType": "ExpressionStatement", + "src": "5936:173:10" + } + ] + } + }, + { + "assignments": [ + 1647 + ], + "declarations": [ + { + "constant": false, + "id": 1647, + "name": "amountToDeposit", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "6196:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1646, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6196:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1652, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1650, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "6249:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1648, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "6219:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "6219:29:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6219:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6196:66:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1658, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "6440:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1659, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6468:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1662, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "6529:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1660, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "6499:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "6499:29:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6499:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1654, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "6375:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "6375:26:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1653, + "name": "ITransferProxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "6360:14:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ITransferProxy_$2516_$", + "typeString": "type(contract ITransferProxy)" + } + }, + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6360:42:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITransferProxy_$2516", + "typeString": "contract ITransferProxy" + } + }, + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferToVault", + "nodeType": "MemberAccess", + "referencedDeclaration": 2515, + "src": "6360:58:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6360:200:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1665, + "nodeType": "ExpressionStatement", + "src": "6360:200:10" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1667, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "6696:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1668, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6729:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1669, + "name": "amountToDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1647, + "src": "6760:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1666, + "name": "IssuanceComponentDeposited", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1388, + "src": "6648:26:10", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6648:145:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1671, + "nodeType": "EmitStatement", + "src": "6643:150:10" + } + ] + }, + "id": 1673, + "nodeType": "IfStatement", + "src": "5449:1359:10", + "trueBody": { + "id": 1630, + "nodeType": "Block", + "src": "5496:281:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1625, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "5660:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1626, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "5688:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1627, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "5719:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1621, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5599:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1622, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5599:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1620, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5592:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5592:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "5592:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5592:170:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1629, + "nodeType": "ExpressionStatement", + "src": "5592:170:10" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1679, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "6964:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1680, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6993:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1681, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "7020:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1675, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "6907:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1676, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "6907:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1674, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "6900:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6900:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "incrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2536, + "src": "6900:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6900:159:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1683, + "nodeType": "ExpressionStatement", + "src": "6900:159:10" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1575, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "4941:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1576, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "4945:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4945:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4941:21:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1685, + "initializationExpression": { + "assignments": [ + 1572 + ], + "declarations": [ + { + "constant": false, + "id": 1572, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4927:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1571, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4927:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1574, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4938:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4927:12:10" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4964:3:10", + "subExpression": { + "argumentTypes": null, + "id": 1579, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "4964:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 1581, + "nodeType": "ExpressionStatement", + "src": "4964:3:10" + }, + "nodeType": "ForStatement", + "src": "4922:2148:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1690, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "7135:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1691, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1548, + "src": "7143:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1687, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "7117:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1686, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "7107:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7107:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 2496, + "src": "7107:27:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7107:46:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1693, + "nodeType": "ExpressionStatement", + "src": "7107:46:10" + } + ] + }, + "documentation": "Exchanges components for Set Tokens, accepting any owner\n * @param _owner Address to issue set to\n@param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue", + "id": 1695, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "issueInternal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1544, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4535:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1543, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4535:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1546, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4559:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4559:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1548, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4588:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1547, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4588:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4525:83:10" + }, + "payable": false, + "returnParameters": { + "id": 1550, + "nodeType": "ParameterList", + "parameters": [], + "src": "4630:0:10" + }, + "scope": 1696, + "src": "4503:2657:10", + "stateMutability": "nonpayable", + "superFunction": 2434, + "visibility": "internal" + } + ], + "scope": 1697, + "src": "1112:6050:10" + } + ], + "src": "597:6566:10" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuance.sol", + "exportedSymbols": { + "CoreIssuance": [ + 1696 + ] + }, + "id": 1697, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1361, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:10" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 1363, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 4739, + "src": "622:73:10", + "symbolAliases": [ + { + "foreign": 1362, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1365, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2639, + "src": "696:63:10", + "symbolAliases": [ + { + "foreign": 1364, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1367, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2752, + "src": "760:49:10", + "symbolAliases": [ + { + "foreign": 1366, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", + "file": "../interfaces/ISetToken.sol", + "id": 1369, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2505, + "src": "810:56:10", + "symbolAliases": [ + { + "foreign": 1368, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ITransferProxy.sol", + "file": "../interfaces/ITransferProxy.sol", + "id": 1371, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2517, + "src": "867:66:10", + "symbolAliases": [ + { + "foreign": 1370, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IVault.sol", + "file": "../interfaces/IVault.sol", + "id": 1373, + "nodeType": "ImportDirective", + "scope": 1697, + "sourceUnit": 2556, + "src": "934:50:10", + "symbolAliases": [ + { + "foreign": 1372, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1374, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1141:9:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1375, + "nodeType": "InheritanceSpecifier", + "src": "1141:9:10" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1376, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1156:13:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1377, + "nodeType": "InheritanceSpecifier", + "src": "1156:13:10" + } + ], + "contractDependencies": [ + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Issuance\n@author Set Protocol\n * The CoreIssuance contract contains public set token operations", + "fullyImplemented": true, + "id": 1696, + "linearizedBaseContracts": [ + 1696, + 2638, + 2751 + ], + "name": "CoreIssuance", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1380, + "libraryName": { + "contractScope": null, + "id": 1378, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1237:8:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1231:27:10", + "typeName": { + "id": 1379, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1250:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 1388, + "name": "IssuanceComponentDeposited", + "nodeType": "EventDefinition", + "parameters": { + "id": 1387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1382, + "indexed": true, + "name": "_setToken", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "1350:25:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1381, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1350:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1384, + "indexed": true, + "name": "_component", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "1385:26:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1385:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "indexed": false, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "1421:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1385, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1421:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1340:101:10" + }, + "src": "1308:134:10" + }, + { + "body": { + "id": 1412, + "nodeType": "Block", + "src": "1894:95:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1406, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1947:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1947:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1408, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1959:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1409, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "1972:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1405, + "name": "issueInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1695, + "src": "1933:13:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1933:49:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1411, + "nodeType": "ExpressionStatement", + "src": "1933:49:10" + } + ] + }, + "documentation": "Exchanges components for Set Tokens\n * @param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue", + "id": 1413, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1395, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1785:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1396, + "modifierName": { + "argumentTypes": null, + "id": 1394, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "1774:10:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1774:23:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1398, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "1825:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1399, + "modifierName": { + "argumentTypes": null, + "id": 1397, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "1806:18:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1806:29:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1401, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "1866:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1402, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1877:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1403, + "modifierName": { + "argumentTypes": null, + "id": 1400, + "name": "isNaturalUnitMultiple", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2637, + "src": "1844:21:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1844:45:10" + } + ], + "name": "issue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1390, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1413, + "src": "1699:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1699:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1392, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1413, + "src": "1728:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1391, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1728:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1689:59:10" + }, + "payable": false, + "returnParameters": { + "id": 1404, + "nodeType": "ParameterList", + "parameters": [], + "src": "1894:0:10" + }, + "scope": 1696, + "src": "1675:314:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1521, + "nodeType": "Block", + "src": "2419:1162:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1434, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2531:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2531:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1436, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2543:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1431, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2513:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1430, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2503:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2503:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 2503, + "src": "2503:27:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2503:50:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1438, + "nodeType": "ExpressionStatement", + "src": "2503:50:10" + }, + { + "assignments": [ + 1440 + ], + "declarations": [ + { + "constant": false, + "id": 1440, + "name": "naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2564:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1439, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2564:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1446, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1442, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2593:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1441, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2583:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2583:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "naturalUnit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "2583:34:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2583:36:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2564:55:10" + }, + { + "assignments": [ + 1450 + ], + "declarations": [ + { + "constant": false, + "id": 1450, + "name": "components", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2708:27:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1448, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2708:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1449, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2708:9:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1456, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1452, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2748:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1451, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2738:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2738:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getComponents", + "nodeType": "MemberAccess", + "referencedDeclaration": 2483, + "src": "2738:36:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function () external returns (address[] memory)" + } + }, + "id": 1455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2738:38:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2708:68:10" + }, + { + "assignments": [ + 1460 + ], + "declarations": [ + { + "constant": false, + "id": 1460, + "name": "units", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2786:19:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1458, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2786:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1459, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2786:6:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1466, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1462, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2818:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1461, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2808:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2808:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUnits", + "nodeType": "MemberAccess", + "referencedDeclaration": 2489, + "src": "2808:31:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function () external returns (uint256[] memory)" + } + }, + "id": 1465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2808:33:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2786:55:10" + }, + { + "body": { + "id": 1519, + "nodeType": "Block", + "src": "2898:677:10", + "statements": [ + { + "assignments": [ + 1479 + ], + "declarations": [ + { + "constant": false, + "id": 1479, + "name": "currentComponent", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2912:24:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1478, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2912:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1483, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1480, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "2939:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1482, + "indexExpression": { + "argumentTypes": null, + "id": 1481, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2950:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2939:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2912:40:10" + }, + { + "assignments": [ + 1485 + ], + "declarations": [ + { + "constant": false, + "id": 1485, + "name": "currentUnit", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2966:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1484, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2966:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1489, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1486, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "2985:5:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1488, + "indexExpression": { + "argumentTypes": null, + "id": 1487, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2991:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2985:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2966:27:10" + }, + { + "assignments": [ + 1491 + ], + "declarations": [ + { + "constant": false, + "id": 1491, + "name": "tokenValue", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "3008:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1490, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3008:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1493, + "name": "currentUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1485, + "src": "3066:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1494, + "name": "naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1440, + "src": "3095:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1495, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "3124:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1492, + "name": "calculateTransferValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "3026:22:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3026:121:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3008:139:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1503, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "3266:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1504, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "3295:16:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1505, + "name": "tokenValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "3329:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1499, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "3209:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1500, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "3209:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1498, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3202:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3202:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "3202:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3202:151:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1507, + "nodeType": "ExpressionStatement", + "src": "3202:151:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1513, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "3478:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3478:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1515, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "3506:16:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1516, + "name": "tokenValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1491, + "src": "3540:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1509, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "3421:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "3421:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1508, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3414:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "incrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2536, + "src": "3414:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:150:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1518, + "nodeType": "ExpressionStatement", + "src": "3414:150:10" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1471, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2870:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1472, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "2874:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2874:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2870:21:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1520, + "initializationExpression": { + "assignments": [ + 1468 + ], + "declarations": [ + { + "constant": false, + "id": 1468, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2856:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1467, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2856:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1470, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2867:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2856:12:10" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2893:3:10", + "subExpression": { + "argumentTypes": null, + "id": 1475, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "2893:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 1477, + "nodeType": "ExpressionStatement", + "src": "2893:3:10" + }, + "nodeType": "ForStatement", + "src": "2851:724:10" + } + ] + }, + "documentation": "Function to convert Set Tokens into underlying components\n * @param _setAddress The address of the Set token\n@param _quantity The number of tokens to redeem", + "id": 1522, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1420, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2310:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1421, + "modifierName": { + "argumentTypes": null, + "id": 1419, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "2299:10:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2299:23:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1423, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2350:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1424, + "modifierName": { + "argumentTypes": null, + "id": 1422, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "2331:18:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2331:29:10" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1426, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2391:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1427, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "2402:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1428, + "modifierName": { + "argumentTypes": null, + "id": 1425, + "name": "isNaturalUnitMultiple", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2637, + "src": "2369:21:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2369:45:10" + } + ], + "name": "redeem", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1415, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2224:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2224:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1417, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1522, + "src": "2253:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1416, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2253:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2214:59:10" + }, + "payable": false, + "returnParameters": { + "id": 1429, + "nodeType": "ParameterList", + "parameters": [], + "src": "2419:0:10" + }, + "scope": 1696, + "src": "2199:1382:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1541, + "nodeType": "Block", + "src": "4122:72:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1538, + "name": "_componentUnits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1524, + "src": "4171:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1535, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1526, + "src": "4153:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1533, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1528, + "src": "4139:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 4693, + "src": "4139:13:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4139:27:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4679, + "src": "4139:31:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4139:48:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1532, + "id": 1540, + "nodeType": "Return", + "src": "4132:55:10" + } + ] + }, + "documentation": "Function to calculate the transfer value of a component given quantity of Set\n * @param _componentUnits The units of the component token\n@param _naturalUnit The natural unit of the Set token\n@param _quantity The number of tokens being redeem", + "id": 1542, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "calculateTransferValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1524, + "name": "_componentUnits", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "3988:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3988:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1526, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "4018:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1525, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4018:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1528, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "4045:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1527, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4045:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:87:10" + }, + "payable": false, + "returnParameters": { + "id": 1532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1531, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1542, + "src": "4112:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1530, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4112:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4111:6:10" + }, + "scope": 1696, + "src": "3947:247:10", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1694, + "nodeType": "Block", + "src": "4630:2530:10", + "statements": [ + { + "assignments": [ + 1554 + ], + "declarations": [ + { + "constant": false, + "id": 1554, + "name": "components", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4678:27:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1552, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4678:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1553, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4678:9:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1560, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1556, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "4718:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1555, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "4708:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4708:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getComponents", + "nodeType": "MemberAccess", + "referencedDeclaration": 2483, + "src": "4708:36:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function () external returns (address[] memory)" + } + }, + "id": 1559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4708:38:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4678:68:10" + }, + { + "assignments": [ + 1564 + ], + "declarations": [ + { + "constant": false, + "id": 1564, + "name": "units", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4799:19:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1562, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4799:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1563, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4799:6:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1570, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1566, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "4831:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1565, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "4821:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4821:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUnits", + "nodeType": "MemberAccess", + "referencedDeclaration": 2489, + "src": "4821:31:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function () external returns (uint256[] memory)" + } + }, + "id": 1569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4821:33:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4799:55:10" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "4969:2101:10", + "statements": [ + { + "assignments": [ + 1583 + ], + "declarations": [ + { + "constant": false, + "id": 1583, + "name": "component", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4983:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1582, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4983:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1587, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1584, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "5003:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1586, + "indexExpression": { + "argumentTypes": null, + "id": 1585, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "5014:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5003:13:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4983:33:10" + }, + { + "assignments": [ + 1589 + ], + "declarations": [ + { + "constant": false, + "id": 1589, + "name": "unit", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "5030:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1588, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5030:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1593, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1590, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "5042:5:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1592, + "indexExpression": { + "argumentTypes": null, + "id": 1591, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "5048:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5042:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5030:20:10" + }, + { + "assignments": [ + 1595 + ], + "declarations": [ + { + "constant": false, + "id": 1595, + "name": "requiredComponentQuantity", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "5118:30:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1594, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5118:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1605, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1597, + "name": "unit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1589, + "src": "5191:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1599, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "5223:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1598, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "5213:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5213:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "naturalUnit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "5213:34:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 1602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5213:36:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1603, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1548, + "src": "5267:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1596, + "name": "calculateTransferValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "5151:22:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5151:139:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5118:172:10" + }, + { + "assignments": [ + 1607 + ], + "declarations": [ + { + "constant": false, + "id": 1607, + "name": "vaultBalance", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "5354:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1606, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5354:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1616, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1613, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "5417:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1614, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "5425:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1609, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5381:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1610, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5381:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1608, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5374:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5374:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getOwnerBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2554, + "src": "5374:42:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) external returns (uint256)" + } + }, + "id": 1615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5374:61:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5354:81:10" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1617, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "5453:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1618, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "5469:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5453:41:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1672, + "nodeType": "Block", + "src": "5783:1025:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1631, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "5896:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5911:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5896:16:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1645, + "nodeType": "IfStatement", + "src": "5892:236:10", + "trueBody": { + "id": 1644, + "nodeType": "Block", + "src": "5914:214:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1639, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "6008:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1640, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6040:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1641, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "6075:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1635, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5943:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1636, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5943:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1634, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5936:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5936:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "5936:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5936:173:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1643, + "nodeType": "ExpressionStatement", + "src": "5936:173:10" + } + ] + } + }, + { + "assignments": [ + 1647 + ], + "declarations": [ + { + "constant": false, + "id": 1647, + "name": "amountToDeposit", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "6196:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1646, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6196:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1652, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1650, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "6249:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1648, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "6219:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "6219:29:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6219:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6196:66:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1658, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "6440:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1659, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6468:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1662, + "name": "vaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1607, + "src": "6529:12:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1660, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "6499:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "6499:29:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6499:43:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1654, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "6375:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "6375:26:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1653, + "name": "ITransferProxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "6360:14:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ITransferProxy_$2516_$", + "typeString": "type(contract ITransferProxy)" + } + }, + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6360:42:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITransferProxy_$2516", + "typeString": "contract ITransferProxy" + } + }, + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferToVault", + "nodeType": "MemberAccess", + "referencedDeclaration": 2515, + "src": "6360:58:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6360:200:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1665, + "nodeType": "ExpressionStatement", + "src": "6360:200:10" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1667, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "6696:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1668, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6729:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1669, + "name": "amountToDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1647, + "src": "6760:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1666, + "name": "IssuanceComponentDeposited", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1388, + "src": "6648:26:10", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6648:145:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1671, + "nodeType": "EmitStatement", + "src": "6643:150:10" + } + ] + }, + "id": 1673, + "nodeType": "IfStatement", + "src": "5449:1359:10", + "trueBody": { + "id": 1630, + "nodeType": "Block", + "src": "5496:281:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1625, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "5660:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1626, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "5688:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1627, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "5719:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1621, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5599:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1622, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "5599:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1620, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "5592:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5592:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2545, + "src": "5592:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5592:170:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1629, + "nodeType": "ExpressionStatement", + "src": "5592:170:10" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1679, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "6964:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1680, + "name": "component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "6993:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1681, + "name": "requiredComponentQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "7020:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1675, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "6907:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1676, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "6907:18:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1674, + "name": "IVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "6900:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IVault_$2555_$", + "typeString": "type(contract IVault)" + } + }, + "id": 1677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6900:26:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IVault_$2555", + "typeString": "contract IVault" + } + }, + "id": 1678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "incrementTokenOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2536, + "src": "6900:46:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6900:159:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1683, + "nodeType": "ExpressionStatement", + "src": "6900:159:10" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1575, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "4941:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1576, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "4945:10:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 1577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4945:17:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4941:21:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1685, + "initializationExpression": { + "assignments": [ + 1572 + ], + "declarations": [ + { + "constant": false, + "id": 1572, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4927:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1571, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4927:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1574, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4938:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4927:12:10" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4964:3:10", + "subExpression": { + "argumentTypes": null, + "id": 1579, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1572, + "src": "4964:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 1581, + "nodeType": "ExpressionStatement", + "src": "4964:3:10" + }, + "nodeType": "ForStatement", + "src": "4922:2148:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1690, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1544, + "src": "7135:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1691, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1548, + "src": "7143:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1687, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "7117:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1686, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "7107:9:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7107:22:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 1689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 2496, + "src": "7107:27:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7107:46:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1693, + "nodeType": "ExpressionStatement", + "src": "7107:46:10" + } + ] + }, + "documentation": "Exchanges components for Set Tokens, accepting any owner\n * @param _owner Address to issue set to\n@param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue", + "id": 1695, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "issueInternal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1544, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4535:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1543, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4535:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1546, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4559:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4559:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1548, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 1695, + "src": "4588:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1547, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4588:4:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4525:83:10" + }, + "payable": false, + "returnParameters": { + "id": 1550, + "nodeType": "ParameterList", + "parameters": [], + "src": "4630:0:10" + }, + "scope": 1696, + "src": "4503:2657:10", + "stateMutability": "nonpayable", + "superFunction": 2434, + "visibility": "internal" + } + ], + "scope": 1697, + "src": "1112:6050:10" + } + ], + "src": "597:6566:10" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.897Z" +} \ No newline at end of file diff --git a/artifacts/ts/CoreIssuanceOrder.ts b/artifacts/ts/CoreIssuanceOrder.ts new file mode 100644 index 000000000..bb47ccca6 --- /dev/null +++ b/artifacts/ts/CoreIssuanceOrder.ts @@ -0,0 +1,10316 @@ +export const CoreIssuanceOrder = +{ + "contractName": "CoreIssuanceOrder", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_addresses", + "type": "address[4]" + }, + { + "name": "_values", + "type": "uint256[5]" + }, + { + "name": "_fillQuantity", + "type": "uint256" + }, + { + "name": "_v", + "type": "uint8" + }, + { + "name": "_r", + "type": "bytes32" + }, + { + "name": "_s", + "type": "bytes32" + }, + { + "name": "_orderData", + "type": "bytes" + } + ], + "name": "fillOrder", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_addresses", + "type": "address[4]" + }, + { + "name": "_values", + "type": "uint256[5]" + }, + { + "name": "_cancelQuantity", + "type": "uint256" + } + ], + "name": "cancelOrder", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\npragma experimental \"ABIEncoderV2\";\n\n\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { CoreModifiers } from \"../lib/CoreSharedModifiers.sol\";\nimport { CoreState } from \"../lib/CoreState.sol\";\nimport { ExchangeHandler } from \"../lib/ExchangeHandler.sol\";\nimport { ICoreIssuance } from \"../interfaces/ICoreIssuance.sol\";\nimport { LibBytes } from \"../../external/LibBytes.sol\";\nimport { OrderLibrary } from \"../lib/OrderLibrary.sol\";\n\n\n/**\n * @title CoreIssuanceOrder\n * @author Set Protocol\n *\n * The Core Issuance Order extension houses all functions related to the filling and\n * canceling issuance orders.\n *\n */\ncontract CoreIssuanceOrder is\n ICoreIssuance,\n CoreState,\n CoreModifiers\n{\n using SafeMath for uint256;\n\n /* ============ Constants ============ */\n\n uint256 constant HEADER_LENGTH = 64;\n\n string constant INVALID_EXCHANGE = \"Exchange does not exist.\";\n string constant INVALID_CANCEL_ORDER = \"Only maker can cancel order.\";\n string constant INVALID_SIGNATURE = \"Invalid order signature.\";\n string constant INVALID_TOKEN_AMOUNTS = \"Quantity and makerTokenAmount should be greater than 0.\";\n string constant ORDER_EXPIRED = \"This order has expired.\";\n\n /* ============ External Functions ============ */\n\n /**\n * Fill an issuance order\n *\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n * @param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]\n * @param _fillQuantity Quantity of set to be filled\n * @param _v v element of ECDSA signature\n * @param _r r element of ECDSA signature\n * @param _s s element of ECDSA signature\n * @param _orderData Bytes array containing the exchange orders to execute\n */\n function fillOrder(\n address[4] _addresses,\n uint[5] _values,\n uint _fillQuantity,\n uint8 _v,\n bytes32 _r,\n bytes32 _s,\n bytes _orderData\n )\n external\n isValidSet(_addresses[0])\n isPositiveQuantity(_fillQuantity)\n isNaturalUnitMultiple(_fillQuantity, _addresses[0])\n {\n OrderLibrary.IssuanceOrder memory order = OrderLibrary.IssuanceOrder({\n setAddress: _addresses[0],\n quantity: _values[0],\n makerAddress: _addresses[1],\n makerToken: _addresses[2],\n makerTokenAmount: _values[1],\n expiration: _values[2],\n relayerToken: _addresses[3],\n relayerTokenAmount: _values[3],\n salt: _values[4],\n orderHash: OrderLibrary.generateOrderHash(\n _addresses,\n _values\n )\n });\n\n // Verify order is valid and return amount to be filled\n validateOrder(\n order,\n _fillQuantity\n );\n\n // Verify signature is authentic\n require(\n OrderLibrary.validateSignature(\n order.orderHash,\n order.makerAddress,\n _v,\n _r,\n _s\n ),\n INVALID_SIGNATURE\n );\n\n // Execute exchange orders\n executeExchangeOrders(_orderData);\n\n // TO DO: When openOrder amount functionality added these must change\n // Tally fill in orderFills mapping\n state.orderFills[order.orderHash] = state.orderFills[order.orderHash].add(_fillQuantity);\n\n //Issue Set\n issueInternal(\n order.makerAddress,\n order.setAddress,\n _fillQuantity\n );\n }\n\n /**\n * Cancel an issuance order\n *\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n * @param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]\n * @param _cancelQuantity Quantity of set to be filled\n */\n function cancelOrder(\n address[4] _addresses,\n uint[5] _values,\n uint _cancelQuantity\n )\n external\n isPositiveQuantity(_cancelQuantity)\n {\n OrderLibrary.IssuanceOrder memory order = OrderLibrary.IssuanceOrder({\n setAddress: _addresses[0],\n quantity: _values[0],\n makerAddress: _addresses[1],\n makerToken: _addresses[2],\n makerTokenAmount: _values[1],\n expiration: _values[2],\n relayerToken: _addresses[3],\n relayerTokenAmount: _values[3],\n salt: _values[4],\n orderHash: OrderLibrary.generateOrderHash(\n _addresses,\n _values\n )\n });\n\n // Make sure cancel order comes from maker\n require(order.makerAddress == msg.sender, INVALID_CANCEL_ORDER);\n\n // Verify order is valid and return amount to be cancelled\n validateOrder(\n order,\n _cancelQuantity\n );\n\n // TO DO: When openOrder amount functionality added these must change\n // Tally cancel in orderCancels mapping\n state.orderCancels[order.orderHash] = state.orderCancels[order.orderHash].add(_cancelQuantity);\n }\n\n /* ============ Private Functions ============ */\n\n /**\n * Execute the exchange orders by parsing the order data and facilitating the transfers\n *\n * @param _orderData Bytes array containing the exchange orders to execute\n */\n function executeExchangeOrders(\n bytes _orderData\n )\n private\n {\n uint256 scannedBytes;\n while (scannedBytes < _orderData.length) {\n // Read the next exchange order header\n bytes memory headerData = LibBytes.slice(\n _orderData,\n scannedBytes,\n scannedBytes.add(HEADER_LENGTH)\n );\n ExchangeHandler.OrderHeader memory header = ExchangeHandler.parseOrderHeader(\n headerData\n );\n\n // Get exchange address from state mapping based on header exchange info\n address exchange = state.exchanges[header.exchange];\n\n // Verify exchange address is registered\n require(\n exchange != address(0),\n INVALID_EXCHANGE\n );\n\n // Read the order body based on header order length info\n uint256 orderLength = header.orderLength.add(HEADER_LENGTH);\n bytes memory orderBody = LibBytes.slice(\n _orderData,\n scannedBytes.add(HEADER_LENGTH),\n scannedBytes.add(orderLength)\n );\n\n // TODO: Call Exchange\n\n // Update scanned bytes with header and body lengths\n scannedBytes = scannedBytes.add(orderLength);\n }\n }\n\n /**\n * Validate order params are still valid\n *\n * @param _order IssuanceOrder object containing order params\n * @param _fillQuantity Quantity of Set to be filled\n */\n function validateOrder(\n OrderLibrary.IssuanceOrder _order,\n uint _fillQuantity\n )\n private\n view\n {\n // Make sure makerTokenAmount and Set Token to issue is greater than 0.\n require(\n _order.makerTokenAmount > 0 && _order.quantity > 0,\n INVALID_TOKEN_AMOUNTS\n );\n // Make sure the order hasn't expired\n require(\n block.timestamp <= _order.expiration,\n ORDER_EXPIRED\n );\n // TO DO: Check to make sure quantity is multiple of natural unit\n // TO DO: Check to see if filled\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuanceOrder.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuanceOrder.sol", + "exportedSymbols": { + "CoreIssuanceOrder": [ + 2064 + ] + }, + "id": 2065, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1698, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:11" + }, + { + "id": 1699, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:11" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 1701, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 4739, + "src": "659:73:11", + "symbolAliases": [ + { + "foreign": 1700, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1703, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2639, + "src": "733:63:11", + "symbolAliases": [ + { + "foreign": 1702, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1705, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2752, + "src": "797:49:11", + "symbolAliases": [ + { + "foreign": 1704, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ExchangeHandler.sol", + "file": "../lib/ExchangeHandler.sol", + "id": 1707, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2869, + "src": "847:61:11", + "symbolAliases": [ + { + "foreign": 1706, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICoreIssuance.sol", + "file": "../interfaces/ICoreIssuance.sol", + "id": 1709, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2436, + "src": "909:64:11", + "symbolAliases": [ + { + "foreign": 1708, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "file": "../../external/LibBytes.sol", + "id": 1711, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 3108, + "src": "974:55:11", + "symbolAliases": [ + { + "foreign": 1710, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/OrderLibrary.sol", + "file": "../lib/OrderLibrary.sol", + "id": 1713, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2982, + "src": "1030:55:11", + "symbolAliases": [ + { + "foreign": 1712, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1714, + "name": "ICoreIssuance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2435, + "src": "1303:13:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICoreIssuance_$2435", + "typeString": "contract ICoreIssuance" + } + }, + "id": 1715, + "nodeType": "InheritanceSpecifier", + "src": "1303:13:11" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1716, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1322:9:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1717, + "nodeType": "InheritanceSpecifier", + "src": "1322:9:11" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1718, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1337:13:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1719, + "nodeType": "InheritanceSpecifier", + "src": "1337:13:11" + } + ], + "contractDependencies": [ + 2435, + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title CoreIssuanceOrder\n@author Set Protocol\n * The Core Issuance Order extension houses all functions related to the filling and\ncanceling issuance orders.\n ", + "fullyImplemented": false, + "id": 2064, + "linearizedBaseContracts": [ + 2064, + 2638, + 2751, + 2435 + ], + "name": "CoreIssuanceOrder", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1722, + "libraryName": { + "contractScope": null, + "id": 1720, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1363:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1357:27:11", + "typeName": { + "id": 1721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1376:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 1725, + "name": "HEADER_LENGTH", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1437:35:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1723, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3634", + "id": 1724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1470:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1728, + "name": "INVALID_EXCHANGE", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1479:61:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1726, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1479:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "45786368616e676520646f6573206e6f742065786973742e", + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1514:26:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10f19557f33751b7359fb90801bc276162b3bec07df01ad819ebdc88cb6b9ba9", + "typeString": "literal_string \"Exchange does not exist.\"" + }, + "value": "Exchange does not exist." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1731, + "name": "INVALID_CANCEL_ORDER", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1546:69:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1729, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1546:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "4f6e6c79206d616b65722063616e2063616e63656c206f726465722e", + "id": 1730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1585:30:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_20dfea250c19728ad7708562ddd39d1aeb6ed3c7b91b9fcf939ae806695fbec0", + "typeString": "literal_string \"Only maker can cancel order.\"" + }, + "value": "Only maker can cancel order." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1734, + "name": "INVALID_SIGNATURE", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1621:62:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1732, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1621:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "496e76616c6964206f72646572207369676e61747572652e", + "id": 1733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1657:26:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0bd9264828df20222816a7b62c45b8acdadb1a4d88a71d7b8927310b19371298", + "typeString": "literal_string \"Invalid order signature.\"" + }, + "value": "Invalid order signature." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1737, + "name": "INVALID_TOKEN_AMOUNTS", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1689:97:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1735, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1689:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e7469747920616e64206d616b6572546f6b656e416d6f756e742073686f756c642062652067726561746572207468616e20302e", + "id": 1736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1729:57:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1257ba6c150a3f09d68043a4396003cea2846a7fb783030e7fe366f0b3057763", + "typeString": "literal_string \"Quantity and makerTokenAmount should be greater than 0.\"" + }, + "value": "Quantity and makerTokenAmount should be greater than 0." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1740, + "name": "ORDER_EXPIRED", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1792:57:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1792:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "54686973206f726465722068617320657870697265642e", + "id": 1739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1824:25:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f81dc39ed5b9833b941e5d3d7c8154be2e213143256d344f6e98febd45c490c6", + "typeString": "literal_string \"This order has expired.\"" + }, + "value": "This order has expired." + }, + "visibility": "internal" + }, + { + "body": { + "id": 1862, + "nodeType": "Block", + "src": "2822:1439:11", + "statements": [ + { + "assignments": [ + 1778 + ], + "declarations": [ + { + "constant": false, + "id": 1778, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2832:39:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + }, + "typeName": { + "contractScope": null, + "id": 1777, + "name": "OrderLibrary.IssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2891, + "src": "2832:26:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_storage_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1814, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1781, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "2927:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1783, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2938:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2927:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1784, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "2964:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1786, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2972:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2964:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1787, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3002:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1789, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3013:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3002:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1790, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3041:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1792, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3052:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3041:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1793, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3086:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1795, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3094:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3086:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1796, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3122:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1798, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3130:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3122:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1799, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3160:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1801, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3171:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3160:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1802, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3207:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1804, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1803, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3215:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3207:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1805, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3237:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1807, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 1806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3245:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3237:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1810, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3320:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + { + "argumentTypes": null, + "id": 1811, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3348:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + ], + "expression": { + "argumentTypes": null, + "id": 1808, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "3272:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "generateOrderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2938, + "src": "3272:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$5_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address[4] memory,uint256[5] memory) pure returns (bytes32)" + } + }, + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3272:97:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1779, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "2874:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "IssuanceOrder", + "nodeType": "MemberAccess", + "referencedDeclaration": 2891, + "src": "2874:26:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_IssuanceOrder_$2891_storage_ptr_$", + "typeString": "type(struct OrderLibrary.IssuanceOrder storage pointer)" + } + }, + "id": 1813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "setAddress", + "quantity", + "makerAddress", + "makerToken", + "makerTokenAmount", + "expiration", + "relayerToken", + "relayerTokenAmount", + "salt", + "orderHash" + ], + "nodeType": "FunctionCall", + "src": "2874:506:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2832:548:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1816, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "3482:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + { + "argumentTypes": null, + "id": 1817, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "3501:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1815, + "name": "validateOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2063, + "src": "3455:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_IssuanceOrder_$2891_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct OrderLibrary.IssuanceOrder memory,uint256) view" + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3455:69:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1819, + "nodeType": "ExpressionStatement", + "src": "3455:69:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1823, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "3645:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1824, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "3645:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1825, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "3678:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2876, + "src": "3678:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1827, + "name": "_v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "3714:2:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 1828, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1754, + "src": "3734:2:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1829, + "name": "_s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1756, + "src": "3754:2:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 1821, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "3597:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "validateSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 2980, + "src": "3597:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32,address,uint8,bytes32,bytes32) pure returns (bool)" + } + }, + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3597:173:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1831, + "name": "INVALID_SIGNATURE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "3784:17:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 1820, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "3576:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3576:235:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1833, + "nodeType": "ExpressionStatement", + "src": "3576:235:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1835, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1758, + "src": "3879:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "id": 1834, + "name": "executeExchangeOrders", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "3857:21:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" + } + }, + "id": 1836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3857:33:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1837, + "nodeType": "ExpressionStatement", + "src": "3857:33:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1838, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4023:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderFills", + "nodeType": "MemberAccess", + "referencedDeclaration": 2660, + "src": "4023:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1843, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1840, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4040:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1841, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "4040:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4023:33:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1850, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "4097:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1844, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4059:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1845, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderFills", + "nodeType": "MemberAccess", + "referencedDeclaration": 2660, + "src": "4059:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1848, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1846, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4076:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1847, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "4076:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4059:33:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4059:37:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4059:52:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4023:88:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1853, + "nodeType": "ExpressionStatement", + "src": "4023:88:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1855, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4169:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1856, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2876, + "src": "4169:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1857, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4201:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "setAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2872, + "src": "4201:16:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1859, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "4231:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1854, + "name": "issueInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2434, + "src": "4142:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4142:112:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1861, + "nodeType": "ExpressionStatement", + "src": "4142:112:11" + } + ] + }, + "documentation": "Fill an issuance order\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n@param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]\n@param _fillQuantity Quantity of set to be filled\n@param _v v element of ECDSA signature\n@param _r r element of ECDSA signature\n@param _s s element of ECDSA signature\n@param _orderData Bytes array containing the exchange orders to execute", + "id": 1863, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1761, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "2701:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1763, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2712:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2701:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1764, + "modifierName": { + "argumentTypes": null, + "id": 1760, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "2690:10:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2690:25:11" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1766, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "2743:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1767, + "modifierName": { + "argumentTypes": null, + "id": 1765, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "2724:18:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2724:33:11" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1769, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "2788:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1770, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "2803:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1772, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2814:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2803:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1773, + "modifierName": { + "argumentTypes": null, + "id": 1768, + "name": "isNaturalUnitMultiple", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2637, + "src": "2766:21:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2766:51:11" + } + ], + "name": "fillOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1759, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1744, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2500:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 1741, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2500:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1743, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 1742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2508:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "2500:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1748, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2531:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 1745, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2531:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1747, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2536:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "2531:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1750, + "name": "_fillQuantity", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2556:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1749, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2556:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1752, + "name": "_v", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2584:8:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1751, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2584:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1754, + "name": "_r", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2602:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1753, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2602:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1756, + "name": "_s", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2622:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1755, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2622:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1758, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2642:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1757, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2642:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2490:174:11" + }, + "payable": false, + "returnParameters": { + "id": 1774, + "nodeType": "ParameterList", + "parameters": [], + "src": "2822:0:11" + }, + "scope": 2064, + "src": "2472:1789:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1949, + "nodeType": "Block", + "src": "4742:1070:11", + "statements": [ + { + "assignments": [ + 1882 + ], + "declarations": [ + { + "constant": false, + "id": 1882, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4752:39:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + }, + "typeName": { + "contractScope": null, + "id": 1881, + "name": "OrderLibrary.IssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2891, + "src": "4752:26:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_storage_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1918, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1885, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "4847:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1887, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4858:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4847:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1888, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "4884:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1890, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4892:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4884:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1891, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "4922:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1893, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4933:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4922:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1894, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "4961:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1896, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4972:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4961:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1897, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5006:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1899, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5014:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5006:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1900, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5042:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1902, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1901, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5050:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5042:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1903, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "5080:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1905, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5091:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5080:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1906, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5127:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1908, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5135:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5127:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1909, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5157:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1911, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5165:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5157:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1914, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "5240:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + { + "argumentTypes": null, + "id": 1915, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5268:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + ], + "expression": { + "argumentTypes": null, + "id": 1912, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "5192:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "generateOrderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2938, + "src": "5192:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$5_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address[4] memory,uint256[5] memory) pure returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5192:97:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1883, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "4794:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "IssuanceOrder", + "nodeType": "MemberAccess", + "referencedDeclaration": 2891, + "src": "4794:26:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_IssuanceOrder_$2891_storage_ptr_$", + "typeString": "type(struct OrderLibrary.IssuanceOrder storage pointer)" + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "setAddress", + "quantity", + "makerAddress", + "makerToken", + "makerTokenAmount", + "expiration", + "relayerToken", + "relayerTokenAmount", + "salt", + "orderHash" + ], + "nodeType": "FunctionCall", + "src": "4794:506:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4752:548:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1920, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5370:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1921, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2876, + "src": "5370:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1922, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5392:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5392:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5370:32:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1925, + "name": "INVALID_CANCEL_ORDER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "5404:20:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 1919, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "5362:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5362:63:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1927, + "nodeType": "ExpressionStatement", + "src": "5362:63:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1929, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5530:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + { + "argumentTypes": null, + "id": 1930, + "name": "_cancelQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "5549:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1928, + "name": "validateOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2063, + "src": "5503:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_IssuanceOrder_$2891_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct OrderLibrary.IssuanceOrder memory,uint256) view" + } + }, + "id": 1931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5503:71:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1932, + "nodeType": "ExpressionStatement", + "src": "5503:71:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1933, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5711:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1937, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderCancels", + "nodeType": "MemberAccess", + "referencedDeclaration": 2664, + "src": "5711:18:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1938, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1935, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5730:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1936, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "5730:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5711:35:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1945, + "name": "_cancelQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "5789:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1939, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5749:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1940, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderCancels", + "nodeType": "MemberAccess", + "referencedDeclaration": 2664, + "src": "5749:18:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1943, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1941, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5768:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1942, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "5768:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5749:35:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "5749:39:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5749:56:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5711:94:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1948, + "nodeType": "ExpressionStatement", + "src": "5711:94:11" + } + ] + }, + "documentation": "Cancel an issuance order\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n@param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]\n@param _cancelQuantity Quantity of set to be filled", + "id": 1950, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1876, + "name": "_cancelQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "4721:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1877, + "modifierName": { + "argumentTypes": null, + "id": 1875, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "4702:18:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4702:35:11" + } + ], + "name": "cancelOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1867, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4594:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 1864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4594:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1866, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4602:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "4594:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4625:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 1868, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4625:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1870, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 1869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4630:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "4625:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1873, + "name": "_cancelQuantity", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4650:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1872, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4650:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4584:92:11" + }, + "payable": false, + "returnParameters": { + "id": 1878, + "nodeType": "ParameterList", + "parameters": [], + "src": "4742:0:11" + }, + "scope": 2064, + "src": "4564:1248:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2032, + "nodeType": "Block", + "src": "6152:1264:11", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 1956, + "name": "scannedBytes", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6162:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6162:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1957, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6162:20:11" + }, + { + "body": { + "id": 2030, + "nodeType": "Block", + "src": "6233:1177:11", + "statements": [ + { + "assignments": [ + 1963 + ], + "declarations": [ + { + "constant": false, + "id": 1963, + "name": "headerData", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6298:23:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1962, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6298:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1973, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1966, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1952, + "src": "6356:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 1967, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "6384:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1970, + "name": "HEADER_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "6431:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1968, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "6414:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "6414:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6414:31:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1964, + "name": "LibBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3107, + "src": "6324:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibBytes_$3107_$", + "typeString": "type(library LibBytes)" + } + }, + "id": 1965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "6324:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6324:135:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6298:161:11" + }, + { + "assignments": [ + 1977 + ], + "declarations": [ + { + "constant": false, + "id": 1977, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6473:41:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + }, + "typeName": { + "contractScope": null, + "id": 1976, + "name": "ExchangeHandler.OrderHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2853, + "src": "6473:27:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_storage_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1982, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1980, + "name": "headerData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1963, + "src": "6567:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1978, + "name": "ExchangeHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2868, + "src": "6517:15:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ExchangeHandler_$2868_$", + "typeString": "type(library ExchangeHandler)" + } + }, + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseOrderHeader", + "nodeType": "MemberAccess", + "referencedDeclaration": 2867, + "src": "6517:32:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_OrderHeader_$2853_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ExchangeHandler.OrderHeader memory)" + } + }, + "id": 1981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6517:74:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6473:118:11" + }, + { + "assignments": [ + 1984 + ], + "declarations": [ + { + "constant": false, + "id": 1984, + "name": "exchange", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6691:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1983, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6691:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1990, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1985, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "6710:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1986, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchanges", + "nodeType": "MemberAccess", + "referencedDeclaration": 2644, + "src": "6710:15:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 1989, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1987, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1977, + "src": "6726:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "id": 1988, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchange", + "nodeType": "MemberAccess", + "referencedDeclaration": 2850, + "src": "6726:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6710:32:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6691:51:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1992, + "name": "exchange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1984, + "src": "6835:8:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6855:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6847:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6847:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6835:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1997, + "name": "INVALID_EXCHANGE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1728, + "src": "6875:16:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 1991, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "6810:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6810:95:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1999, + "nodeType": "ExpressionStatement", + "src": "6810:95:11" + }, + { + "assignments": [ + 2001 + ], + "declarations": [ + { + "constant": false, + "id": 2001, + "name": "orderLength", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6989:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6989:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2007, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2005, + "name": "HEADER_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "7034:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2002, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1977, + "src": "7011:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "id": 2003, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2852, + "src": "7011:18:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7011:22:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7011:37:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6989:59:11" + }, + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "name": "orderBody", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "7062:22:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2008, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7062:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2022, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2012, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1952, + "src": "7119:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2015, + "name": "HEADER_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "7164:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2013, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7147:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7147:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7147:31:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2019, + "name": "orderLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "7213:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2017, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7196:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7196:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7196:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2010, + "name": "LibBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3107, + "src": "7087:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibBytes_$3107_$", + "typeString": "type(library LibBytes)" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "7087:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7087:152:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7062:177:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2023, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7355:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2026, + "name": "orderLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "7387:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2024, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7370:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7370:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7370:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7355:44:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2029, + "nodeType": "ExpressionStatement", + "src": "7355:44:11" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1958, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "6199:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1959, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1952, + "src": "6214:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6214:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6199:32:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2031, + "nodeType": "WhileStatement", + "src": "6192:1218:11" + } + ] + }, + "documentation": "Execute the exchange orders by parsing the order data and facilitating the transfers\n * @param _orderData Bytes array containing the exchange orders to execute", + "id": 2033, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "executeExchangeOrders", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1953, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1952, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6109:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1951, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6109:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6099:32:11" + }, + "payable": false, + "returnParameters": { + "id": 1954, + "nodeType": "ParameterList", + "parameters": [], + "src": "6152:0:11" + }, + "scope": 2064, + "src": "6069:1347:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 2062, + "nodeType": "Block", + "src": "7761:478:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2041, + "name": "_order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "7872:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerTokenAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2880, + "src": "7872:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7898:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7872:27:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2045, + "name": "_order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "7903:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 2046, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "quantity", + "nodeType": "MemberAccess", + "referencedDeclaration": 2874, + "src": "7903:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7921:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7903:19:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7872:50:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2050, + "name": "INVALID_TOKEN_AMOUNTS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "7936:21:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2040, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "7851:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7851:116:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2052, + "nodeType": "ExpressionStatement", + "src": "7851:116:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2054, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "8044:5:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8044:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2056, + "name": "_order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "8063:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 2057, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 2882, + "src": "8063:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8044:36:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2059, + "name": "ORDER_EXPIRED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1740, + "src": "8094:13:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2053, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "8023:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8023:94:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2061, + "nodeType": "ExpressionStatement", + "src": "8023:94:11" + } + ] + }, + "documentation": "Validate order params are still valid\n * @param _order IssuanceOrder object containing order params\n@param _fillQuantity Quantity of Set to be filled", + "id": 2063, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validateOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2035, + "name": "_order", + "nodeType": "VariableDeclaration", + "scope": 2063, + "src": "7660:33:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + }, + "typeName": { + "contractScope": null, + "id": 2034, + "name": "OrderLibrary.IssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2891, + "src": "7660:26:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_storage_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2037, + "name": "_fillQuantity", + "nodeType": "VariableDeclaration", + "scope": 2063, + "src": "7703:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2036, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7703:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7650:77:11" + }, + "payable": false, + "returnParameters": { + "id": 2039, + "nodeType": "ParameterList", + "parameters": [], + "src": "7761:0:11" + }, + "scope": 2064, + "src": "7628:611:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 2065, + "src": "1269:6972:11" + } + ], + "src": "597:7645:11" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/extensions/CoreIssuanceOrder.sol", + "exportedSymbols": { + "CoreIssuanceOrder": [ + 2064 + ] + }, + "id": 2065, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1698, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:11" + }, + { + "id": 1699, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:11" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 1701, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 4739, + "src": "659:73:11", + "symbolAliases": [ + { + "foreign": 1700, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "file": "../lib/CoreSharedModifiers.sol", + "id": 1703, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2639, + "src": "733:63:11", + "symbolAliases": [ + { + "foreign": 1702, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "../lib/CoreState.sol", + "id": 1705, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2752, + "src": "797:49:11", + "symbolAliases": [ + { + "foreign": 1704, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ExchangeHandler.sol", + "file": "../lib/ExchangeHandler.sol", + "id": 1707, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2869, + "src": "847:61:11", + "symbolAliases": [ + { + "foreign": 1706, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICoreIssuance.sol", + "file": "../interfaces/ICoreIssuance.sol", + "id": 1709, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2436, + "src": "909:64:11", + "symbolAliases": [ + { + "foreign": 1708, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "file": "../../external/LibBytes.sol", + "id": 1711, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 3108, + "src": "974:55:11", + "symbolAliases": [ + { + "foreign": 1710, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/OrderLibrary.sol", + "file": "../lib/OrderLibrary.sol", + "id": 1713, + "nodeType": "ImportDirective", + "scope": 2065, + "sourceUnit": 2982, + "src": "1030:55:11", + "symbolAliases": [ + { + "foreign": 1712, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1714, + "name": "ICoreIssuance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2435, + "src": "1303:13:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICoreIssuance_$2435", + "typeString": "contract ICoreIssuance" + } + }, + "id": 1715, + "nodeType": "InheritanceSpecifier", + "src": "1303:13:11" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1716, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "1322:9:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 1717, + "nodeType": "InheritanceSpecifier", + "src": "1322:9:11" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1718, + "name": "CoreModifiers", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2638, + "src": "1337:13:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreModifiers_$2638", + "typeString": "contract CoreModifiers" + } + }, + "id": 1719, + "nodeType": "InheritanceSpecifier", + "src": "1337:13:11" + } + ], + "contractDependencies": [ + 2435, + 2638, + 2751 + ], + "contractKind": "contract", + "documentation": "@title CoreIssuanceOrder\n@author Set Protocol\n * The Core Issuance Order extension houses all functions related to the filling and\ncanceling issuance orders.\n ", + "fullyImplemented": false, + "id": 2064, + "linearizedBaseContracts": [ + 2064, + 2638, + 2751, + 2435 + ], + "name": "CoreIssuanceOrder", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1722, + "libraryName": { + "contractScope": null, + "id": 1720, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1363:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1357:27:11", + "typeName": { + "id": 1721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1376:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 1725, + "name": "HEADER_LENGTH", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1437:35:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1723, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3634", + "id": 1724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1470:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1728, + "name": "INVALID_EXCHANGE", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1479:61:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1726, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1479:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "45786368616e676520646f6573206e6f742065786973742e", + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1514:26:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10f19557f33751b7359fb90801bc276162b3bec07df01ad819ebdc88cb6b9ba9", + "typeString": "literal_string \"Exchange does not exist.\"" + }, + "value": "Exchange does not exist." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1731, + "name": "INVALID_CANCEL_ORDER", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1546:69:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1729, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1546:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "4f6e6c79206d616b65722063616e2063616e63656c206f726465722e", + "id": 1730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1585:30:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_20dfea250c19728ad7708562ddd39d1aeb6ed3c7b91b9fcf939ae806695fbec0", + "typeString": "literal_string \"Only maker can cancel order.\"" + }, + "value": "Only maker can cancel order." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1734, + "name": "INVALID_SIGNATURE", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1621:62:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1732, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1621:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "496e76616c6964206f72646572207369676e61747572652e", + "id": 1733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1657:26:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0bd9264828df20222816a7b62c45b8acdadb1a4d88a71d7b8927310b19371298", + "typeString": "literal_string \"Invalid order signature.\"" + }, + "value": "Invalid order signature." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1737, + "name": "INVALID_TOKEN_AMOUNTS", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1689:97:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1735, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1689:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e7469747920616e64206d616b6572546f6b656e416d6f756e742073686f756c642062652067726561746572207468616e20302e", + "id": 1736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1729:57:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1257ba6c150a3f09d68043a4396003cea2846a7fb783030e7fe366f0b3057763", + "typeString": "literal_string \"Quantity and makerTokenAmount should be greater than 0.\"" + }, + "value": "Quantity and makerTokenAmount should be greater than 0." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 1740, + "name": "ORDER_EXPIRED", + "nodeType": "VariableDeclaration", + "scope": 2064, + "src": "1792:57:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 1738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1792:6:11", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "54686973206f726465722068617320657870697265642e", + "id": 1739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1824:25:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f81dc39ed5b9833b941e5d3d7c8154be2e213143256d344f6e98febd45c490c6", + "typeString": "literal_string \"This order has expired.\"" + }, + "value": "This order has expired." + }, + "visibility": "internal" + }, + { + "body": { + "id": 1862, + "nodeType": "Block", + "src": "2822:1439:11", + "statements": [ + { + "assignments": [ + 1778 + ], + "declarations": [ + { + "constant": false, + "id": 1778, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2832:39:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + }, + "typeName": { + "contractScope": null, + "id": 1777, + "name": "OrderLibrary.IssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2891, + "src": "2832:26:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_storage_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1814, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1781, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "2927:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1783, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2938:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2927:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1784, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "2964:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1786, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2972:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2964:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1787, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3002:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1789, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3013:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3002:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1790, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3041:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1792, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3052:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3041:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1793, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3086:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1795, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3094:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3086:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1796, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3122:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1798, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3130:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3122:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1799, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3160:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1801, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3171:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3160:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1802, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3207:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1804, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1803, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3215:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3207:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1805, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3237:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1807, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 1806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3245:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3237:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1810, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "3320:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + { + "argumentTypes": null, + "id": 1811, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1748, + "src": "3348:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + ], + "expression": { + "argumentTypes": null, + "id": 1808, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "3272:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "generateOrderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2938, + "src": "3272:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$5_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address[4] memory,uint256[5] memory) pure returns (bytes32)" + } + }, + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3272:97:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1779, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "2874:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "IssuanceOrder", + "nodeType": "MemberAccess", + "referencedDeclaration": 2891, + "src": "2874:26:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_IssuanceOrder_$2891_storage_ptr_$", + "typeString": "type(struct OrderLibrary.IssuanceOrder storage pointer)" + } + }, + "id": 1813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "setAddress", + "quantity", + "makerAddress", + "makerToken", + "makerTokenAmount", + "expiration", + "relayerToken", + "relayerTokenAmount", + "salt", + "orderHash" + ], + "nodeType": "FunctionCall", + "src": "2874:506:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2832:548:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1816, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "3482:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + { + "argumentTypes": null, + "id": 1817, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "3501:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1815, + "name": "validateOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2063, + "src": "3455:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_IssuanceOrder_$2891_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct OrderLibrary.IssuanceOrder memory,uint256) view" + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3455:69:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1819, + "nodeType": "ExpressionStatement", + "src": "3455:69:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1823, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "3645:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1824, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "3645:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1825, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "3678:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2876, + "src": "3678:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1827, + "name": "_v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "3714:2:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 1828, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1754, + "src": "3734:2:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1829, + "name": "_s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1756, + "src": "3754:2:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 1821, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "3597:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "validateSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 2980, + "src": "3597:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32,address,uint8,bytes32,bytes32) pure returns (bool)" + } + }, + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3597:173:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1831, + "name": "INVALID_SIGNATURE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "3784:17:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 1820, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "3576:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3576:235:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1833, + "nodeType": "ExpressionStatement", + "src": "3576:235:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1835, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1758, + "src": "3879:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "id": 1834, + "name": "executeExchangeOrders", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "3857:21:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory)" + } + }, + "id": 1836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3857:33:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1837, + "nodeType": "ExpressionStatement", + "src": "3857:33:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1838, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4023:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderFills", + "nodeType": "MemberAccess", + "referencedDeclaration": 2660, + "src": "4023:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1843, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1840, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4040:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1841, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "4040:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4023:33:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1850, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "4097:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1844, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "4059:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1845, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderFills", + "nodeType": "MemberAccess", + "referencedDeclaration": 2660, + "src": "4059:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1848, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1846, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4076:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1847, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "4076:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4059:33:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4059:37:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4059:52:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4023:88:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1853, + "nodeType": "ExpressionStatement", + "src": "4023:88:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1855, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4169:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1856, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2876, + "src": "4169:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1857, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1778, + "src": "4201:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "setAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2872, + "src": "4201:16:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1859, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "4231:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1854, + "name": "issueInternal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2434, + "src": "4142:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4142:112:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1861, + "nodeType": "ExpressionStatement", + "src": "4142:112:11" + } + ] + }, + "documentation": "Fill an issuance order\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n@param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]\n@param _fillQuantity Quantity of set to be filled\n@param _v v element of ECDSA signature\n@param _r r element of ECDSA signature\n@param _s s element of ECDSA signature\n@param _orderData Bytes array containing the exchange orders to execute", + "id": 1863, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1761, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "2701:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1763, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2712:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2701:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1764, + "modifierName": { + "argumentTypes": null, + "id": 1760, + "name": "isValidSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "2690:10:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2690:25:11" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1766, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "2743:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1767, + "modifierName": { + "argumentTypes": null, + "id": 1765, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "2724:18:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2724:33:11" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 1769, + "name": "_fillQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1750, + "src": "2788:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1770, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1744, + "src": "2803:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1772, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2814:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2803:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 1773, + "modifierName": { + "argumentTypes": null, + "id": 1768, + "name": "isNaturalUnitMultiple", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2637, + "src": "2766:21:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2766:51:11" + } + ], + "name": "fillOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1759, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1744, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2500:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 1741, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2500:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1743, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 1742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2508:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "2500:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1748, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2531:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 1745, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2531:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1747, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2536:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "2531:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1750, + "name": "_fillQuantity", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2556:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1749, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2556:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1752, + "name": "_v", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2584:8:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1751, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2584:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1754, + "name": "_r", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2602:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1753, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2602:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1756, + "name": "_s", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2622:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1755, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2622:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1758, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 1863, + "src": "2642:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1757, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2642:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2490:174:11" + }, + "payable": false, + "returnParameters": { + "id": 1774, + "nodeType": "ParameterList", + "parameters": [], + "src": "2822:0:11" + }, + "scope": 2064, + "src": "2472:1789:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 1949, + "nodeType": "Block", + "src": "4742:1070:11", + "statements": [ + { + "assignments": [ + 1882 + ], + "declarations": [ + { + "constant": false, + "id": 1882, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4752:39:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + }, + "typeName": { + "contractScope": null, + "id": 1881, + "name": "OrderLibrary.IssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2891, + "src": "4752:26:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_storage_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1918, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1885, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "4847:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1887, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4858:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4847:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1888, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "4884:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1890, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4892:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4884:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1891, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "4922:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1893, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4933:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4922:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1894, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "4961:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1896, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4972:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4961:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1897, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5006:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1899, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5014:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5006:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1900, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5042:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1902, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1901, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5050:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5042:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1903, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "5080:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + "id": 1905, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5091:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5080:13:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1906, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5127:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1908, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 1907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5135:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5127:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1909, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5157:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + }, + "id": 1911, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5165:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5157:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1914, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1867, + "src": "5240:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + } + }, + { + "argumentTypes": null, + "id": 1915, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "5268:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + ], + "expression": { + "argumentTypes": null, + "id": 1912, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "5192:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "generateOrderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2938, + "src": "5192:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$5_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address[4] memory,uint256[5] memory) pure returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5192:97:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1883, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "4794:12:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "IssuanceOrder", + "nodeType": "MemberAccess", + "referencedDeclaration": 2891, + "src": "4794:26:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_IssuanceOrder_$2891_storage_ptr_$", + "typeString": "type(struct OrderLibrary.IssuanceOrder storage pointer)" + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "setAddress", + "quantity", + "makerAddress", + "makerToken", + "makerTokenAmount", + "expiration", + "relayerToken", + "relayerTokenAmount", + "salt", + "orderHash" + ], + "nodeType": "FunctionCall", + "src": "4794:506:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4752:548:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1920, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5370:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1921, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2876, + "src": "5370:18:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1922, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5392:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5392:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5370:32:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1925, + "name": "INVALID_CANCEL_ORDER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "5404:20:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 1919, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "5362:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5362:63:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1927, + "nodeType": "ExpressionStatement", + "src": "5362:63:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1929, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5530:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + { + "argumentTypes": null, + "id": 1930, + "name": "_cancelQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "5549:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1928, + "name": "validateOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2063, + "src": "5503:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_IssuanceOrder_$2891_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct OrderLibrary.IssuanceOrder memory,uint256) view" + } + }, + "id": 1931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5503:71:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1932, + "nodeType": "ExpressionStatement", + "src": "5503:71:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1933, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5711:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1937, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderCancels", + "nodeType": "MemberAccess", + "referencedDeclaration": 2664, + "src": "5711:18:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1938, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1935, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5730:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1936, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "5730:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5711:35:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1945, + "name": "_cancelQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "5789:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1939, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "5749:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1940, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderCancels", + "nodeType": "MemberAccess", + "referencedDeclaration": 2664, + "src": "5749:18:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1943, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1941, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "5768:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 1942, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2890, + "src": "5768:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5749:35:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "5749:39:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5749:56:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5711:94:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1948, + "nodeType": "ExpressionStatement", + "src": "5711:94:11" + } + ] + }, + "documentation": "Cancel an issuance order\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n@param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]\n@param _cancelQuantity Quantity of set to be filled", + "id": 1950, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1876, + "name": "_cancelQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1873, + "src": "4721:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1877, + "modifierName": { + "argumentTypes": null, + "id": 1875, + "name": "isPositiveQuantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2588, + "src": "4702:18:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4702:35:11" + } + ], + "name": "cancelOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1867, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4594:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_calldata_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 1864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4594:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1866, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4602:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "4594:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4625:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 1868, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4625:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1870, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 1869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4630:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "4625:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1873, + "name": "_cancelQuantity", + "nodeType": "VariableDeclaration", + "scope": 1950, + "src": "4650:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1872, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4650:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4584:92:11" + }, + "payable": false, + "returnParameters": { + "id": 1878, + "nodeType": "ParameterList", + "parameters": [], + "src": "4742:0:11" + }, + "scope": 2064, + "src": "4564:1248:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2032, + "nodeType": "Block", + "src": "6152:1264:11", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 1956, + "name": "scannedBytes", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6162:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6162:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1957, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6162:20:11" + }, + { + "body": { + "id": 2030, + "nodeType": "Block", + "src": "6233:1177:11", + "statements": [ + { + "assignments": [ + 1963 + ], + "declarations": [ + { + "constant": false, + "id": 1963, + "name": "headerData", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6298:23:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1962, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6298:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1973, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1966, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1952, + "src": "6356:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 1967, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "6384:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1970, + "name": "HEADER_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "6431:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1968, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "6414:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "6414:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6414:31:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1964, + "name": "LibBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3107, + "src": "6324:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibBytes_$3107_$", + "typeString": "type(library LibBytes)" + } + }, + "id": 1965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "6324:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6324:135:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6298:161:11" + }, + { + "assignments": [ + 1977 + ], + "declarations": [ + { + "constant": false, + "id": 1977, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6473:41:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + }, + "typeName": { + "contractScope": null, + "id": 1976, + "name": "ExchangeHandler.OrderHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2853, + "src": "6473:27:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_storage_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1982, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1980, + "name": "headerData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1963, + "src": "6567:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1978, + "name": "ExchangeHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2868, + "src": "6517:15:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ExchangeHandler_$2868_$", + "typeString": "type(library ExchangeHandler)" + } + }, + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseOrderHeader", + "nodeType": "MemberAccess", + "referencedDeclaration": 2867, + "src": "6517:32:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_OrderHeader_$2853_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ExchangeHandler.OrderHeader memory)" + } + }, + "id": 1981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6517:74:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6473:118:11" + }, + { + "assignments": [ + 1984 + ], + "declarations": [ + { + "constant": false, + "id": 1984, + "name": "exchange", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6691:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1983, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6691:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1990, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1985, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "6710:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 1986, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchanges", + "nodeType": "MemberAccess", + "referencedDeclaration": 2644, + "src": "6710:15:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 1989, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1987, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1977, + "src": "6726:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "id": 1988, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchange", + "nodeType": "MemberAccess", + "referencedDeclaration": 2850, + "src": "6726:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6710:32:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6691:51:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1992, + "name": "exchange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1984, + "src": "6835:8:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6855:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6847:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6847:10:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6835:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1997, + "name": "INVALID_EXCHANGE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1728, + "src": "6875:16:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 1991, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "6810:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6810:95:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1999, + "nodeType": "ExpressionStatement", + "src": "6810:95:11" + }, + { + "assignments": [ + 2001 + ], + "declarations": [ + { + "constant": false, + "id": 2001, + "name": "orderLength", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6989:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6989:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2007, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2005, + "name": "HEADER_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "7034:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2002, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1977, + "src": "7011:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "id": 2003, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2852, + "src": "7011:18:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7011:22:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7011:37:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6989:59:11" + }, + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "name": "orderBody", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "7062:22:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2008, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7062:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2022, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2012, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1952, + "src": "7119:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2015, + "name": "HEADER_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "7164:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2013, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7147:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7147:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7147:31:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2019, + "name": "orderLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "7213:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2017, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7196:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7196:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7196:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2010, + "name": "LibBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3107, + "src": "7087:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_LibBytes_$3107_$", + "typeString": "type(library LibBytes)" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "7087:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7087:152:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7062:177:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2023, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7355:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2026, + "name": "orderLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "7387:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2024, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "7370:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7370:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7370:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7355:44:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2029, + "nodeType": "ExpressionStatement", + "src": "7355:44:11" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1958, + "name": "scannedBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "6199:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1959, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1952, + "src": "6214:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6214:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6199:32:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2031, + "nodeType": "WhileStatement", + "src": "6192:1218:11" + } + ] + }, + "documentation": "Execute the exchange orders by parsing the order data and facilitating the transfers\n * @param _orderData Bytes array containing the exchange orders to execute", + "id": 2033, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "executeExchangeOrders", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1953, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1952, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2033, + "src": "6109:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1951, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6109:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6099:32:11" + }, + "payable": false, + "returnParameters": { + "id": 1954, + "nodeType": "ParameterList", + "parameters": [], + "src": "6152:0:11" + }, + "scope": 2064, + "src": "6069:1347:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "private" + }, + { + "body": { + "id": 2062, + "nodeType": "Block", + "src": "7761:478:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2041, + "name": "_order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "7872:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerTokenAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2880, + "src": "7872:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7898:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7872:27:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2045, + "name": "_order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "7903:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 2046, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "quantity", + "nodeType": "MemberAccess", + "referencedDeclaration": 2874, + "src": "7903:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7921:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7903:19:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7872:50:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2050, + "name": "INVALID_TOKEN_AMOUNTS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "7936:21:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2040, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "7851:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7851:116:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2052, + "nodeType": "ExpressionStatement", + "src": "7851:116:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2054, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "8044:5:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8044:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2056, + "name": "_order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2035, + "src": "8063:6:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder memory" + } + }, + "id": 2057, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 2882, + "src": "8063:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8044:36:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2059, + "name": "ORDER_EXPIRED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1740, + "src": "8094:13:11", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2053, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "8023:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8023:94:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2061, + "nodeType": "ExpressionStatement", + "src": "8023:94:11" + } + ] + }, + "documentation": "Validate order params are still valid\n * @param _order IssuanceOrder object containing order params\n@param _fillQuantity Quantity of Set to be filled", + "id": 2063, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validateOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2035, + "name": "_order", + "nodeType": "VariableDeclaration", + "scope": 2063, + "src": "7660:33:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_memory_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + }, + "typeName": { + "contractScope": null, + "id": 2034, + "name": "OrderLibrary.IssuanceOrder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2891, + "src": "7660:26:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IssuanceOrder_$2891_storage_ptr", + "typeString": "struct OrderLibrary.IssuanceOrder" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2037, + "name": "_fillQuantity", + "nodeType": "VariableDeclaration", + "scope": 2063, + "src": "7703:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2036, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7703:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7650:77:11" + }, + "payable": false, + "returnParameters": { + "id": 2039, + "nodeType": "ParameterList", + "parameters": [], + "src": "7761:0:11" + }, + "scope": 2064, + "src": "7628:611:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 2065, + "src": "1269:6972:11" + } + ], + "src": "597:7645:11" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.899Z" +} \ No newline at end of file diff --git a/artifacts/ts/CoreModifiers.ts b/artifacts/ts/CoreModifiers.ts new file mode 100644 index 000000000..a629db28e --- /dev/null +++ b/artifacts/ts/CoreModifiers.ts @@ -0,0 +1,2282 @@ +export const CoreModifiers = +{ + "contractName": "CoreModifiers", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610594806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100935780631e912bd6146100ee578063430bf08a146101335780638ca4daf91461018a578063a003e069146101e1578063c19d93fb14610251578063f7213db6146102db578063fef3ee7314610320575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061037b565b604051808215151515815260200191505060405180910390f35b3480156100fa57600080fd5b5061011d60048036038101908080356000191690602001909291905050506103d3565b6040518082815260200191505060405180910390f35b34801561013f57600080fd5b506101486103fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019657600080fd5b5061019f610426565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101ed57600080fd5b5061020f600480360381019080803560ff169060200190929190505050610452565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025d57600080fd5b50610266610497565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156102e757600080fd5b5061030a60048036038101908080356000191690602001909291905050506104e9565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b50610361600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610510565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058208eb1107700fbaf0e1492bb05c25ec440a1cf01a2699c21bd5220b067c0e7adb80029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100935780631e912bd6146100ee578063430bf08a146101335780638ca4daf91461018a578063a003e069146101e1578063c19d93fb14610251578063f7213db6146102db578063fef3ee7314610320575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061037b565b604051808215151515815260200191505060405180910390f35b3480156100fa57600080fd5b5061011d60048036038101908080356000191690602001909291905050506103d3565b6040518082815260200191505060405180910390f35b34801561013f57600080fd5b506101486103fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019657600080fd5b5061019f610426565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101ed57600080fd5b5061020f600480360381019080803560ff169060200190929190505050610452565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025d57600080fd5b50610266610497565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156102e757600080fd5b5061030a60048036038101908080356000191690602001909291905050506104e9565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b50610361600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610510565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058208eb1107700fbaf0e1492bb05c25ec440a1cf01a2699c21bd5220b067c0e7adb80029", + "sourceMap": "910:1372:21:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;910:1372:21;;;;;;;", + "deployedSourceMap": "910:1372:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;2529:::-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;1954:123::-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;1809:139::-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;1656:147::-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2377:146::-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { CoreState } from \"./CoreState.sol\";\nimport { ISetToken } from \"../interfaces/ISetToken.sol\";\n\n\n/**\n * @title Core Shared Modifiers\n * @author Set Protocol\n *\n * The Core Shared Modifiers library contains the modifiers that are shared across the different\n * Core extensions.\n */\ncontract CoreModifiers is\n CoreState\n{\n\n /* ============ Constants ============ */\n\n string constant INVALID_QUANTITY = \"Quantity must be multiple of the natural unit of the set.\";\n string constant ZERO_QUANTITY = \"Quantity must be greater than zero.\";\n string constant INVALID_SET = \"Set token is disabled or does not exist.\";\n string constant INVALID_FACTORY = \"Factory is disabled or does not exist.\";\n\n /* ============ Modifiers ============ */\n\n // Check that quantity submitted is greater than 0\n modifier isPositiveQuantity(uint _quantity) {\n require(\n _quantity > 0,\n ZERO_QUANTITY\n );\n _;\n }\n\n // Verify Factory is linked to Core\n modifier isValidFactory(address _factoryAddress) {\n require(\n state.validFactories[_factoryAddress],\n INVALID_FACTORY\n );\n _;\n }\n\n // Verify set was created by core and is enabled\n modifier isValidSet(address _setAddress) {\n require(\n state.validSets[_setAddress],\n INVALID_SET\n );\n _;\n }\n\n // Validate quantity is multiple of natural unit\n modifier isNaturalUnitMultiple(uint _quantity, address _setToken) {\n require(\n _quantity % ISetToken(_setToken).naturalUnit() == 0,\n INVALID_QUANTITY\n );\n _;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "exportedSymbols": { + "CoreModifiers": [ + 2638 + ] + }, + "id": 2639, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2557, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:21" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "./CoreState.sol", + "id": 2559, + "nodeType": "ImportDirective", + "scope": 2639, + "sourceUnit": 2752, + "src": "622:44:21", + "symbolAliases": [ + { + "foreign": 2558, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", + "file": "../interfaces/ISetToken.sol", + "id": 2561, + "nodeType": "ImportDirective", + "scope": 2639, + "sourceUnit": 2505, + "src": "667:56:21", + "symbolAliases": [ + { + "foreign": 2560, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2562, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "940:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 2563, + "nodeType": "InheritanceSpecifier", + "src": "940:9:21" + } + ], + "contractDependencies": [ + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Shared Modifiers\n@author Set Protocol\n * The Core Shared Modifiers library contains the modifiers that are shared across the different\nCore extensions.", + "fullyImplemented": true, + "id": 2638, + "linearizedBaseContracts": [ + 2638, + 2751 + ], + "name": "CoreModifiers", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2566, + "name": "INVALID_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1004:94:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2564, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1004:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d757374206265206d756c7469706c65206f6620746865206e61747572616c20756e6974206f6620746865207365742e", + "id": 2565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1039:59:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d07f06b1dbcd0a898f7012f6e92da489627e9127773658e2348a0db0797b8933", + "typeString": "literal_string \"Quantity must be multiple of the natural unit of the set.\"" + }, + "value": "Quantity must be multiple of the natural unit of the set." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2569, + "name": "ZERO_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1104:69:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2567, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1104:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d7573742062652067726561746572207468616e207a65726f2e", + "id": 2568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1136:37:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3da6978e12ad268e4eb66f4a79840b60e48f93e78540f7911187ddd7f0f6f2c7", + "typeString": "literal_string \"Quantity must be greater than zero.\"" + }, + "value": "Quantity must be greater than zero." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2572, + "name": "INVALID_SET", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1179:72:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2570, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1179:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f742065786973742e", + "id": 2571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1209:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c419cd4a3f97d6566703fad16a031bef670efd2b05b54195c4db43ccea0a7e7e", + "typeString": "literal_string \"Set token is disabled or does not exist.\"" + }, + "value": "Set token is disabled or does not exist." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2575, + "name": "INVALID_FACTORY", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1257:74:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2573, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1257:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "466163746f72792069732064697361626c6564206f7220646f6573206e6f742065786973742e", + "id": 2574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1291:40:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ff40c07bf4b1e4d2220e3a6d57631493105b5007aba10b5d8cf1630effb33df5", + "typeString": "literal_string \"Factory is disabled or does not exist.\"" + }, + "value": "Factory is disabled or does not exist." + }, + "visibility": "internal" + }, + { + "body": { + "id": 2587, + "nodeType": "Block", + "src": "1484:99:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2580, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2577, + "src": "1515:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1527:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1515:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2583, + "name": "ZERO_QUANTITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2569, + "src": "1542:13:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2579, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1494:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1494:71:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2585, + "nodeType": "ExpressionStatement", + "src": "1494:71:21" + }, + { + "id": 2586, + "nodeType": "PlaceholderStatement", + "src": "1575:1:21" + } + ] + }, + "documentation": null, + "id": 2588, + "name": "isPositiveQuantity", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2577, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2588, + "src": "1468:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2576, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1468:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1467:16:21" + }, + "src": "1440:143:21", + "visibility": "internal" + }, + { + "body": { + "id": 2601, + "nodeType": "Block", + "src": "1678:125:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2593, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1709:5:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2594, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "1709:20:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2596, + "indexExpression": { + "argumentTypes": null, + "id": 2595, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2590, + "src": "1730:15:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1709:37:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2597, + "name": "INVALID_FACTORY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2575, + "src": "1760:15:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2592, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1688:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1688:97:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2599, + "nodeType": "ExpressionStatement", + "src": "1688:97:21" + }, + { + "id": 2600, + "nodeType": "PlaceholderStatement", + "src": "1795:1:21" + } + ] + }, + "documentation": null, + "id": 2602, + "name": "isValidFactory", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2590, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2602, + "src": "1653:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1652:25:21" + }, + "src": "1629:174:21", + "visibility": "internal" + }, + { + "body": { + "id": 2615, + "nodeType": "Block", + "src": "1903:112:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2607, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2608, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "1934:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2610, + "indexExpression": { + "argumentTypes": null, + "id": 2609, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "1950:11:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1934:28:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2611, + "name": "INVALID_SET", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2572, + "src": "1976:11:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2606, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1913:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1913:84:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2613, + "nodeType": "ExpressionStatement", + "src": "1913:84:21" + }, + { + "id": 2614, + "nodeType": "PlaceholderStatement", + "src": "2007:1:21" + } + ] + }, + "documentation": null, + "id": 2616, + "name": "isValidSet", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2604, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2616, + "src": "1882:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1882:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1881:21:21" + }, + "src": "1862:153:21", + "visibility": "internal" + }, + { + "body": { + "id": 2636, + "nodeType": "Block", + "src": "2140:140:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2623, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2618, + "src": "2171:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2625, + "name": "_setToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "2193:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2624, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2183:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 2626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2183:20:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "naturalUnit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "2183:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2183:34:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2171:46:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2221:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2171:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2632, + "name": "INVALID_QUANTITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2566, + "src": "2236:16:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2622, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2150:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2150:112:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2634, + "nodeType": "ExpressionStatement", + "src": "2150:112:21" + }, + { + "id": 2635, + "nodeType": "PlaceholderStatement", + "src": "2272:1:21" + } + ] + }, + "documentation": null, + "id": 2637, + "name": "isNaturalUnitMultiple", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2618, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2637, + "src": "2105:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2617, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2105:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2620, + "name": "_setToken", + "nodeType": "VariableDeclaration", + "scope": 2637, + "src": "2121:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2619, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2121:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2104:35:21" + }, + "src": "2074:206:21", + "visibility": "internal" + } + ], + "scope": 2639, + "src": "910:1372:21" + } + ], + "src": "597:1686:21" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreSharedModifiers.sol", + "exportedSymbols": { + "CoreModifiers": [ + 2638 + ] + }, + "id": 2639, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2557, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:21" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "file": "./CoreState.sol", + "id": 2559, + "nodeType": "ImportDirective", + "scope": 2639, + "sourceUnit": 2752, + "src": "622:44:21", + "symbolAliases": [ + { + "foreign": 2558, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", + "file": "../interfaces/ISetToken.sol", + "id": 2561, + "nodeType": "ImportDirective", + "scope": 2639, + "sourceUnit": 2505, + "src": "667:56:21", + "symbolAliases": [ + { + "foreign": 2560, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2562, + "name": "CoreState", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2751, + "src": "940:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CoreState_$2751", + "typeString": "contract CoreState" + } + }, + "id": 2563, + "nodeType": "InheritanceSpecifier", + "src": "940:9:21" + } + ], + "contractDependencies": [ + 2751 + ], + "contractKind": "contract", + "documentation": "@title Core Shared Modifiers\n@author Set Protocol\n * The Core Shared Modifiers library contains the modifiers that are shared across the different\nCore extensions.", + "fullyImplemented": true, + "id": 2638, + "linearizedBaseContracts": [ + 2638, + 2751 + ], + "name": "CoreModifiers", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2566, + "name": "INVALID_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1004:94:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2564, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1004:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d757374206265206d756c7469706c65206f6620746865206e61747572616c20756e6974206f6620746865207365742e", + "id": 2565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1039:59:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d07f06b1dbcd0a898f7012f6e92da489627e9127773658e2348a0db0797b8933", + "typeString": "literal_string \"Quantity must be multiple of the natural unit of the set.\"" + }, + "value": "Quantity must be multiple of the natural unit of the set." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2569, + "name": "ZERO_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1104:69:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2567, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1104:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d7573742062652067726561746572207468616e207a65726f2e", + "id": 2568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1136:37:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3da6978e12ad268e4eb66f4a79840b60e48f93e78540f7911187ddd7f0f6f2c7", + "typeString": "literal_string \"Quantity must be greater than zero.\"" + }, + "value": "Quantity must be greater than zero." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2572, + "name": "INVALID_SET", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1179:72:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2570, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1179:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53657420746f6b656e2069732064697361626c6564206f7220646f6573206e6f742065786973742e", + "id": 2571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1209:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c419cd4a3f97d6566703fad16a031bef670efd2b05b54195c4db43ccea0a7e7e", + "typeString": "literal_string \"Set token is disabled or does not exist.\"" + }, + "value": "Set token is disabled or does not exist." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2575, + "name": "INVALID_FACTORY", + "nodeType": "VariableDeclaration", + "scope": 2638, + "src": "1257:74:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2573, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1257:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "466163746f72792069732064697361626c6564206f7220646f6573206e6f742065786973742e", + "id": 2574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1291:40:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ff40c07bf4b1e4d2220e3a6d57631493105b5007aba10b5d8cf1630effb33df5", + "typeString": "literal_string \"Factory is disabled or does not exist.\"" + }, + "value": "Factory is disabled or does not exist." + }, + "visibility": "internal" + }, + { + "body": { + "id": 2587, + "nodeType": "Block", + "src": "1484:99:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2580, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2577, + "src": "1515:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1527:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1515:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2583, + "name": "ZERO_QUANTITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2569, + "src": "1542:13:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2579, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1494:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1494:71:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2585, + "nodeType": "ExpressionStatement", + "src": "1494:71:21" + }, + { + "id": 2586, + "nodeType": "PlaceholderStatement", + "src": "1575:1:21" + } + ] + }, + "documentation": null, + "id": 2588, + "name": "isPositiveQuantity", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2577, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2588, + "src": "1468:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2576, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1468:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1467:16:21" + }, + "src": "1440:143:21", + "visibility": "internal" + }, + { + "body": { + "id": 2601, + "nodeType": "Block", + "src": "1678:125:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2593, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1709:5:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2594, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "1709:20:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2596, + "indexExpression": { + "argumentTypes": null, + "id": 2595, + "name": "_factoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2590, + "src": "1730:15:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1709:37:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2597, + "name": "INVALID_FACTORY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2575, + "src": "1760:15:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2592, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1688:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1688:97:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2599, + "nodeType": "ExpressionStatement", + "src": "1688:97:21" + }, + { + "id": 2600, + "nodeType": "PlaceholderStatement", + "src": "1795:1:21" + } + ] + }, + "documentation": null, + "id": 2602, + "name": "isValidFactory", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2590, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2602, + "src": "1653:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1652:25:21" + }, + "src": "1629:174:21", + "visibility": "internal" + }, + { + "body": { + "id": 2615, + "nodeType": "Block", + "src": "1903:112:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2607, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2608, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "1934:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2610, + "indexExpression": { + "argumentTypes": null, + "id": 2609, + "name": "_setAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "1950:11:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1934:28:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2611, + "name": "INVALID_SET", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2572, + "src": "1976:11:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2606, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1913:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1913:84:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2613, + "nodeType": "ExpressionStatement", + "src": "1913:84:21" + }, + { + "id": 2614, + "nodeType": "PlaceholderStatement", + "src": "2007:1:21" + } + ] + }, + "documentation": null, + "id": 2616, + "name": "isValidSet", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2604, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2616, + "src": "1882:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1882:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1881:21:21" + }, + "src": "1862:153:21", + "visibility": "internal" + }, + { + "body": { + "id": 2636, + "nodeType": "Block", + "src": "2140:140:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2623, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2618, + "src": "2171:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2625, + "name": "_setToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "2193:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2624, + "name": "ISetToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2183:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetToken_$2504_$", + "typeString": "type(contract ISetToken)" + } + }, + "id": 2626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2183:20:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetToken_$2504", + "typeString": "contract ISetToken" + } + }, + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "naturalUnit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "2183:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2183:34:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2171:46:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2221:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2171:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2632, + "name": "INVALID_QUANTITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2566, + "src": "2236:16:21", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2622, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2150:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2150:112:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2634, + "nodeType": "ExpressionStatement", + "src": "2150:112:21" + }, + { + "id": 2635, + "nodeType": "PlaceholderStatement", + "src": "2272:1:21" + } + ] + }, + "documentation": null, + "id": 2637, + "name": "isNaturalUnitMultiple", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2618, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2637, + "src": "2105:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2617, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2105:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2620, + "name": "_setToken", + "nodeType": "VariableDeclaration", + "scope": 2637, + "src": "2121:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2619, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2121:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2104:35:21" + }, + "src": "2074:206:21", + "visibility": "internal" + } + ], + "scope": 2639, + "src": "910:1372:21" + } + ], + "src": "597:1686:21" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.904Z" +} \ No newline at end of file diff --git a/artifacts/ts/CoreState.ts b/artifacts/ts/CoreState.ts new file mode 100644 index 000000000..23148afce --- /dev/null +++ b/artifacts/ts/CoreState.ts @@ -0,0 +1,2770 @@ +export const CoreState = +{ + "contractName": "CoreState", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "state", + "outputs": [ + { + "name": "transferProxyAddress", + "type": "address" + }, + { + "name": "vaultAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_exchangeId", + "type": "uint8" + } + ], + "name": "exchanges", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "transferProxyAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_factory", + "type": "address" + } + ], + "name": "validFactories", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_set", + "type": "address" + } + ], + "name": "validSets", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderFills", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + } + ], + "name": "orderCancels", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610594806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100935780631e912bd6146100ee578063430bf08a146101335780638ca4daf91461018a578063a003e069146101e1578063c19d93fb14610251578063f7213db6146102db578063fef3ee7314610320575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061037b565b604051808215151515815260200191505060405180910390f35b3480156100fa57600080fd5b5061011d60048036038101908080356000191690602001909291905050506103d3565b6040518082815260200191505060405180910390f35b34801561013f57600080fd5b506101486103fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019657600080fd5b5061019f610426565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101ed57600080fd5b5061020f600480360381019080803560ff169060200190929190505050610452565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025d57600080fd5b50610266610497565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156102e757600080fd5b5061030a60048036038101908080356000191690602001909291905050506104e9565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b50610361600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610510565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058205fff594963aee3f438ac11a5af9b26d7346ef447ef1519fb1e35adcf6c65a6ce0029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e4355d4146100935780631e912bd6146100ee578063430bf08a146101335780638ca4daf91461018a578063a003e069146101e1578063c19d93fb14610251578063f7213db6146102db578063fef3ee7314610320575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061037b565b604051808215151515815260200191505060405180910390f35b3480156100fa57600080fd5b5061011d60048036038101908080356000191690602001909291905050506103d3565b6040518082815260200191505060405180910390f35b34801561013f57600080fd5b506101486103fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019657600080fd5b5061019f610426565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101ed57600080fd5b5061020f600480360381019080803560ff169060200190929190505050610452565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025d57600080fd5b50610266610497565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b3480156102e757600080fd5b5061030a60048036038101908080356000191690602001909291905050506104e9565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b50610361600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610510565b604051808215151515815260200191505060405180910390f35b60008060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060060160008360001916600019168152602001908152602001600020549050919050565b60008060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060000160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b60008060050160008360001916600019168152602001908152602001600020549050919050565b60008060040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058205fff594963aee3f438ac11a5af9b26d7346ef447ef1519fb1e35adcf6c65a6ce0029", + "sourceMap": "800:1881:22:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;800:1881:22;;;;;;;", + "deployedSourceMap": "800:1881:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2083:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:150:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1954:123:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:139:22;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:147:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2377:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2377:146:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2239:132:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:150;2169:4;2196:5;:20;;:30;2217:8;2196:30;;;;;;;;;;;;;;;;;;;;;;;;;2189:37;;2083:150;;;:::o;2529:::-;2615:4;2642:5;:18;;:30;2661:10;2642:30;;;;;;;;;;;;;;;;;;2635:37;;2529:150;;;:::o;1954:123::-;2022:7;2052:5;:18;;;;;;;;;;;;2045:25;;1954:123;:::o;1809:139::-;1885:7;1915:5;:26;;;;;;;;;;;;1908:33;;1809:139;:::o;1656:147::-;1738:7;1768:5;:15;;:28;1784:11;1768:28;;;;;;;;;;;;;;;;;;;;;;;;;1761:35;;1656:147;;;:::o;1579:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2377:146::-;2461:4;2488:5;:16;;:28;2505:10;2488:28;;;;;;;;;;;;;;;;;;2481:35;;2377:146;;;:::o;2239:132::-;2316:4;2343:5;:15;;:21;2359:4;2343:21;;;;;;;;;;;;;;;;;;;;;;;;;2336:28;;2239:132;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\n/**\n * @title CoreState\n * @author Set Protocol\n *\n * The CoreState library maintains all state for the Core contract thus\n * allowing it to operate across multiple mixins.\n */\ncontract CoreState {\n\n /* ============ Structs ============ */\n\n struct State {\n // Mapping of exchange enumeration to address\n mapping(uint8 => address) exchanges;\n\n // Address of the TransferProxy contract\n address transferProxyAddress;\n\n // Address of the Vault contract\n address vaultAddress;\n\n // Mapping of tracked SetToken factories\n mapping(address => bool) validFactories;\n\n // Mapping of tracked SetTokens\n mapping(address => bool) validSets;\n\n // Mapping of filled Issuance Orders\n mapping(bytes32 => uint) orderFills;\n\n // Mapping of canceled Issuance Orders\n mapping(bytes32 => uint) orderCancels;\n }\n\n /* ============ State Variables ============ */\n\n State public state;\n\n /* ============ Public Getters ============ */\n\n function exchanges(uint8 _exchangeId)\n public\n view\n returns(address)\n {\n return state.exchanges[_exchangeId];\n }\n\n function transferProxyAddress()\n public\n view\n returns(address)\n {\n return state.transferProxyAddress;\n }\n\n function vaultAddress()\n public\n view\n returns(address)\n {\n return state.vaultAddress;\n }\n\n function validFactories(address _factory)\n public\n view\n returns(bool)\n {\n return state.validFactories[_factory];\n }\n\n function validSets(address _set)\n public\n view\n returns(bool)\n {\n return state.validSets[_set];\n }\n\n function orderFills(bytes32 _orderHash)\n public\n view\n returns(uint)\n {\n return state.orderFills[_orderHash];\n }\n\n function orderCancels(bytes32 _orderHash)\n public\n view\n returns(uint)\n {\n return state.orderCancels[_orderHash];\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "exportedSymbols": { + "CoreState": [ + 2751 + ] + }, + "id": 2752, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2640, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:22" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title CoreState\n@author Set Protocol\n * The CoreState library maintains all state for the Core contract thus\nallowing it to operate across multiple mixins.", + "fullyImplemented": true, + "id": 2751, + "linearizedBaseContracts": [ + 2751 + ], + "name": "CoreState", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "CoreState.State", + "id": 2665, + "members": [ + { + "constant": false, + "id": 2644, + "name": "exchanges", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "948:35:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + }, + "typeName": { + "id": 2643, + "keyType": { + "id": 2641, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "956:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "948:25:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + }, + "valueType": { + "id": 2642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "965:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2646, + "name": "transferProxyAddress", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1043:28:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2645, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1043:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2648, + "name": "vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1123:20:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2647, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1123:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2652, + "name": "validFactories", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1203:39:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 2651, + "keyType": { + "id": 2649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1211:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1203:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2650, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1222:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2656, + "name": "validSets", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1293:34:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 2655, + "keyType": { + "id": 2653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1301:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1293:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2654, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1312:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2660, + "name": "orderFills", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1383:35:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 2659, + "keyType": { + "id": 2657, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1391:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1383:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 2658, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1402:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2664, + "name": "orderCancels", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1476:37:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 2663, + "keyType": { + "id": 2661, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1484:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1476:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 2662, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1495:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "State", + "nodeType": "StructDefinition", + "scope": 2751, + "src": "871:649:22", + "visibility": "public" + }, + { + "constant": false, + "id": 2667, + "name": "state", + "nodeType": "VariableDeclaration", + "scope": 2751, + "src": "1579:18:22", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State" + }, + "typeName": { + "contractScope": null, + "id": 2666, + "name": "State", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2665, + "src": "1579:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage_ptr", + "typeString": "struct CoreState.State" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2679, + "nodeType": "Block", + "src": "1751:52:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2674, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1768:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2675, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchanges", + "nodeType": "MemberAccess", + "referencedDeclaration": 2644, + "src": "1768:15:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 2677, + "indexExpression": { + "argumentTypes": null, + "id": 2676, + "name": "_exchangeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "1784:11:22", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1768:28:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2673, + "id": 2678, + "nodeType": "Return", + "src": "1761:35:22" + } + ] + }, + "documentation": null, + "id": 2680, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "exchanges", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2669, + "name": "_exchangeId", + "nodeType": "VariableDeclaration", + "scope": 2680, + "src": "1675:17:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2668, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1675:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1674:19:22" + }, + "payable": false, + "returnParameters": { + "id": 2673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2672, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2680, + "src": "1738:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1738:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1737:9:22" + }, + "scope": 2751, + "src": "1656:147:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2688, + "nodeType": "Block", + "src": "1898:50:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2685, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1915:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2686, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "1915:26:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2684, + "id": 2687, + "nodeType": "Return", + "src": "1908:33:22" + } + ] + }, + "documentation": null, + "id": 2689, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "transferProxyAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2681, + "nodeType": "ParameterList", + "parameters": [], + "src": "1838:2:22" + }, + "payable": false, + "returnParameters": { + "id": 2684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2683, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "1885:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1885:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1884:9:22" + }, + "scope": 2751, + "src": "1809:139:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2697, + "nodeType": "Block", + "src": "2035:42:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2694, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2052:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2695, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "2052:18:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2693, + "id": 2696, + "nodeType": "Return", + "src": "2045:25:22" + } + ] + }, + "documentation": null, + "id": 2698, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "vaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [], + "src": "1975:2:22" + }, + "payable": false, + "returnParameters": { + "id": 2693, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2692, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2698, + "src": "2022:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2022:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2021:9:22" + }, + "scope": 2751, + "src": "1954:123:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2710, + "nodeType": "Block", + "src": "2179:54:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2705, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2196:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2706, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "2196:20:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2708, + "indexExpression": { + "argumentTypes": null, + "id": 2707, + "name": "_factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2700, + "src": "2217:8:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2196:30:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2704, + "id": 2709, + "nodeType": "Return", + "src": "2189:37:22" + } + ] + }, + "documentation": null, + "id": 2711, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validFactories", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2700, + "name": "_factory", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "2107:16:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2699, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2107:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2106:18:22" + }, + "payable": false, + "returnParameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2703, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "2169:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2702, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2169:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2168:6:22" + }, + "scope": 2751, + "src": "2083:150:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2723, + "nodeType": "Block", + "src": "2326:45:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2718, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2343:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2719, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "2343:15:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2721, + "indexExpression": { + "argumentTypes": null, + "id": 2720, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2713, + "src": "2359:4:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2343:21:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2717, + "id": 2722, + "nodeType": "Return", + "src": "2336:28:22" + } + ] + }, + "documentation": null, + "id": 2724, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validSets", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2713, + "name": "_set", + "nodeType": "VariableDeclaration", + "scope": 2724, + "src": "2258:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2258:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2257:14:22" + }, + "payable": false, + "returnParameters": { + "id": 2717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2716, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2724, + "src": "2316:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2715, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2316:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2315:6:22" + }, + "scope": 2751, + "src": "2239:132:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2736, + "nodeType": "Block", + "src": "2471:52:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2731, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2488:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2732, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderFills", + "nodeType": "MemberAccess", + "referencedDeclaration": 2660, + "src": "2488:16:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2734, + "indexExpression": { + "argumentTypes": null, + "id": 2733, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2726, + "src": "2505:10:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2488:28:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2730, + "id": 2735, + "nodeType": "Return", + "src": "2481:35:22" + } + ] + }, + "documentation": null, + "id": 2737, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "orderFills", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2726, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "2397:18:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2725, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2397:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2396:20:22" + }, + "payable": false, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "2461:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2728, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2461:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2460:6:22" + }, + "scope": 2751, + "src": "2377:146:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2749, + "nodeType": "Block", + "src": "2625:54:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2744, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2642:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2745, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderCancels", + "nodeType": "MemberAccess", + "referencedDeclaration": 2664, + "src": "2642:18:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2747, + "indexExpression": { + "argumentTypes": null, + "id": 2746, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "2661:10:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2642:30:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2743, + "id": 2748, + "nodeType": "Return", + "src": "2635:37:22" + } + ] + }, + "documentation": null, + "id": 2750, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "orderCancels", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2739, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 2750, + "src": "2551:18:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2738, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2551:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2550:20:22" + }, + "payable": false, + "returnParameters": { + "id": 2743, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2742, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2750, + "src": "2615:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2741, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2615:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2614:6:22" + }, + "scope": 2751, + "src": "2529:150:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 2752, + "src": "800:1881:22" + } + ], + "src": "597:2085:22" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/CoreState.sol", + "exportedSymbols": { + "CoreState": [ + 2751 + ] + }, + "id": 2752, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2640, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:22" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title CoreState\n@author Set Protocol\n * The CoreState library maintains all state for the Core contract thus\nallowing it to operate across multiple mixins.", + "fullyImplemented": true, + "id": 2751, + "linearizedBaseContracts": [ + 2751 + ], + "name": "CoreState", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "CoreState.State", + "id": 2665, + "members": [ + { + "constant": false, + "id": 2644, + "name": "exchanges", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "948:35:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + }, + "typeName": { + "id": 2643, + "keyType": { + "id": 2641, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "956:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "948:25:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + }, + "valueType": { + "id": 2642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "965:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2646, + "name": "transferProxyAddress", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1043:28:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2645, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1043:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2648, + "name": "vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1123:20:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2647, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1123:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2652, + "name": "validFactories", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1203:39:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 2651, + "keyType": { + "id": 2649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1211:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1203:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2650, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1222:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2656, + "name": "validSets", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1293:34:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 2655, + "keyType": { + "id": 2653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1301:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1293:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2654, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1312:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2660, + "name": "orderFills", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1383:35:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 2659, + "keyType": { + "id": 2657, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1391:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1383:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 2658, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1402:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2664, + "name": "orderCancels", + "nodeType": "VariableDeclaration", + "scope": 2665, + "src": "1476:37:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 2663, + "keyType": { + "id": 2661, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1484:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1476:24:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 2662, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1495:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "State", + "nodeType": "StructDefinition", + "scope": 2751, + "src": "871:649:22", + "visibility": "public" + }, + { + "constant": false, + "id": 2667, + "name": "state", + "nodeType": "VariableDeclaration", + "scope": 2751, + "src": "1579:18:22", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State" + }, + "typeName": { + "contractScope": null, + "id": 2666, + "name": "State", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2665, + "src": "1579:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage_ptr", + "typeString": "struct CoreState.State" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2679, + "nodeType": "Block", + "src": "1751:52:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2674, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1768:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2675, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exchanges", + "nodeType": "MemberAccess", + "referencedDeclaration": 2644, + "src": "1768:15:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 2677, + "indexExpression": { + "argumentTypes": null, + "id": 2676, + "name": "_exchangeId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "1784:11:22", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1768:28:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2673, + "id": 2678, + "nodeType": "Return", + "src": "1761:35:22" + } + ] + }, + "documentation": null, + "id": 2680, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "exchanges", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2669, + "name": "_exchangeId", + "nodeType": "VariableDeclaration", + "scope": 2680, + "src": "1675:17:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2668, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1675:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1674:19:22" + }, + "payable": false, + "returnParameters": { + "id": 2673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2672, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2680, + "src": "1738:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1738:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1737:9:22" + }, + "scope": 2751, + "src": "1656:147:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2688, + "nodeType": "Block", + "src": "1898:50:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2685, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "1915:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2686, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "transferProxyAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2646, + "src": "1915:26:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2684, + "id": 2687, + "nodeType": "Return", + "src": "1908:33:22" + } + ] + }, + "documentation": null, + "id": 2689, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "transferProxyAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2681, + "nodeType": "ParameterList", + "parameters": [], + "src": "1838:2:22" + }, + "payable": false, + "returnParameters": { + "id": 2684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2683, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "1885:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1885:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1884:9:22" + }, + "scope": 2751, + "src": "1809:139:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2697, + "nodeType": "Block", + "src": "2035:42:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2694, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2052:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2695, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vaultAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2648, + "src": "2052:18:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2693, + "id": 2696, + "nodeType": "Return", + "src": "2045:25:22" + } + ] + }, + "documentation": null, + "id": 2698, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "vaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [], + "src": "1975:2:22" + }, + "payable": false, + "returnParameters": { + "id": 2693, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2692, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2698, + "src": "2022:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2022:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2021:9:22" + }, + "scope": 2751, + "src": "1954:123:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2710, + "nodeType": "Block", + "src": "2179:54:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2705, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2196:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2706, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validFactories", + "nodeType": "MemberAccess", + "referencedDeclaration": 2652, + "src": "2196:20:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2708, + "indexExpression": { + "argumentTypes": null, + "id": 2707, + "name": "_factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2700, + "src": "2217:8:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2196:30:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2704, + "id": 2709, + "nodeType": "Return", + "src": "2189:37:22" + } + ] + }, + "documentation": null, + "id": 2711, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validFactories", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2700, + "name": "_factory", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "2107:16:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2699, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2107:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2106:18:22" + }, + "payable": false, + "returnParameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2703, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "2169:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2702, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2169:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2168:6:22" + }, + "scope": 2751, + "src": "2083:150:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2723, + "nodeType": "Block", + "src": "2326:45:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2718, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2343:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2719, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "validSets", + "nodeType": "MemberAccess", + "referencedDeclaration": 2656, + "src": "2343:15:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2721, + "indexExpression": { + "argumentTypes": null, + "id": 2720, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2713, + "src": "2359:4:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2343:21:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2717, + "id": 2722, + "nodeType": "Return", + "src": "2336:28:22" + } + ] + }, + "documentation": null, + "id": 2724, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validSets", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2713, + "name": "_set", + "nodeType": "VariableDeclaration", + "scope": 2724, + "src": "2258:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2258:7:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2257:14:22" + }, + "payable": false, + "returnParameters": { + "id": 2717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2716, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2724, + "src": "2316:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2715, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2316:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2315:6:22" + }, + "scope": 2751, + "src": "2239:132:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2736, + "nodeType": "Block", + "src": "2471:52:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2731, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2488:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2732, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderFills", + "nodeType": "MemberAccess", + "referencedDeclaration": 2660, + "src": "2488:16:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2734, + "indexExpression": { + "argumentTypes": null, + "id": 2733, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2726, + "src": "2505:10:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2488:28:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2730, + "id": 2735, + "nodeType": "Return", + "src": "2481:35:22" + } + ] + }, + "documentation": null, + "id": 2737, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "orderFills", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2726, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "2397:18:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2725, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2397:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2396:20:22" + }, + "payable": false, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2737, + "src": "2461:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2728, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2461:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2460:6:22" + }, + "scope": 2751, + "src": "2377:146:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2749, + "nodeType": "Block", + "src": "2625:54:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2744, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "2642:5:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_State_$2665_storage", + "typeString": "struct CoreState.State storage ref" + } + }, + "id": 2745, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderCancels", + "nodeType": "MemberAccess", + "referencedDeclaration": 2664, + "src": "2642:18:22", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2747, + "indexExpression": { + "argumentTypes": null, + "id": 2746, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "2661:10:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2642:30:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2743, + "id": 2748, + "nodeType": "Return", + "src": "2635:37:22" + } + ] + }, + "documentation": null, + "id": 2750, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "orderCancels", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2739, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 2750, + "src": "2551:18:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2738, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2551:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2550:20:22" + }, + "payable": false, + "returnParameters": { + "id": 2743, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2742, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2750, + "src": "2615:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2741, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2615:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2614:6:22" + }, + "scope": 2751, + "src": "2529:150:22", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 2752, + "src": "800:1881:22" + } + ], + "src": "597:2085:22" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.905Z" +} \ No newline at end of file diff --git a/artifacts/ts/DetailedERC20.ts b/artifacts/ts/DetailedERC20.ts index a769e683d..f044c7735 100644 --- a/artifacts/ts/DetailedERC20.ts +++ b/artifacts/ts/DetailedERC20.ts @@ -247,14 +247,14 @@ export const DetailedERC20 = "absolutePath": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", "exportedSymbols": { "DetailedERC20": [ - 2371 + 1099 ] }, - "id": 2372, + "id": 1100, "nodeType": "SourceUnit", "nodes": [ { - "id": 2339, + "id": 1067, "literals": [ "solidity", "^", @@ -262,16 +262,16 @@ export const DetailedERC20 = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:13" + "src": "0:24:7" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "./ERC20.sol", - "id": 2340, + "id": 1068, "nodeType": "ImportDirective", - "scope": 2372, - "sourceUnit": 2415, - "src": "26:21:13", + "scope": 1100, + "sourceUnit": 1143, + "src": "26:21:7", "symbolAliases": [], "unitAlias": "" }, @@ -281,44 +281,44 @@ export const DetailedERC20 = "arguments": null, "baseName": { "contractScope": null, - "id": 2341, + "id": 1069, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "309:5:13", + "referencedDeclaration": 1142, + "src": "309:5:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", + "typeIdentifier": "t_contract$_ERC20_$1142", "typeString": "contract ERC20" } }, - "id": 2342, + "id": 1070, "nodeType": "InheritanceSpecifier", - "src": "309:5:13" + "src": "309:5:7" } ], "contractDependencies": [ - 2414, - 2446 + 1142, + 1174 ], "contractKind": "contract", "documentation": "@title DetailedERC20 token\n@dev The decimals are only for visualization purposes.\nAll the operations are done using the smallest and indivisible token unit,\njust as on Ethereum all the operations are done in wei.", "fullyImplemented": false, - "id": 2371, + "id": 1099, "linearizedBaseContracts": [ - 2371, - 2414, - 2446 + 1099, + 1142, + 1174 ], "name": "DetailedERC20", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2344, + "id": 1072, "name": "name", "nodeType": "VariableDeclaration", - "scope": 2371, - "src": "319:18:13", + "scope": 1099, + "src": "319:18:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -326,10 +326,10 @@ export const DetailedERC20 = "typeString": "string" }, "typeName": { - "id": 2343, + "id": 1071, "name": "string", "nodeType": "ElementaryTypeName", - "src": "319:6:13", + "src": "319:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -340,11 +340,11 @@ export const DetailedERC20 = }, { "constant": false, - "id": 2346, + "id": 1074, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 2371, - "src": "341:20:13", + "scope": 1099, + "src": "341:20:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -352,10 +352,10 @@ export const DetailedERC20 = "typeString": "string" }, "typeName": { - "id": 2345, + "id": 1073, "name": "string", "nodeType": "ElementaryTypeName", - "src": "341:6:13", + "src": "341:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -366,11 +366,11 @@ export const DetailedERC20 = }, { "constant": false, - "id": 2348, + "id": 1076, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 2371, - "src": "365:21:13", + "scope": 1099, + "src": "365:21:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -378,10 +378,10 @@ export const DetailedERC20 = "typeString": "uint8" }, "typeName": { - "id": 2347, + "id": 1075, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "365:5:13", + "src": "365:5:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -392,26 +392,26 @@ export const DetailedERC20 = }, { "body": { - "id": 2369, + "id": 1097, "nodeType": "Block", - "src": "457:71:13", + "src": "457:71:7", "statements": [ { "expression": { "argumentTypes": null, - "id": 2359, + "id": 1087, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2357, + "id": 1085, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2344, - "src": "463:4:13", + "referencedDeclaration": 1072, + "src": "463:4:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -421,43 +421,43 @@ export const DetailedERC20 = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2358, + "id": 1086, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2350, - "src": "470:5:13", + "referencedDeclaration": 1078, + "src": "470:5:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "463:12:13", + "src": "463:12:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 2360, + "id": 1088, "nodeType": "ExpressionStatement", - "src": "463:12:13" + "src": "463:12:7" }, { "expression": { "argumentTypes": null, - "id": 2363, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2361, + "id": 1089, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2346, - "src": "481:6:13", + "referencedDeclaration": 1074, + "src": "481:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -467,43 +467,43 @@ export const DetailedERC20 = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2362, + "id": 1090, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2352, - "src": "490:7:13", + "referencedDeclaration": 1080, + "src": "490:7:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "481:16:13", + "src": "481:16:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 2364, + "id": 1092, "nodeType": "ExpressionStatement", - "src": "481:16:13" + "src": "481:16:7" }, { "expression": { "argumentTypes": null, - "id": 2367, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2365, + "id": 1093, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2348, - "src": "503:8:13", + "referencedDeclaration": 1076, + "src": "503:8:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -513,31 +513,31 @@ export const DetailedERC20 = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2366, + "id": 1094, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2354, - "src": "514:9:13", + "referencedDeclaration": 1082, + "src": "514:9:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "503:20:13", + "src": "503:20:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2368, + "id": 1096, "nodeType": "ExpressionStatement", - "src": "503:20:13" + "src": "503:20:7" } ] }, "documentation": null, - "id": 2370, + "id": 1098, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -545,16 +545,16 @@ export const DetailedERC20 = "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2355, + "id": 1083, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2350, + "id": 1078, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "403:12:13", + "scope": 1098, + "src": "403:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -562,10 +562,10 @@ export const DetailedERC20 = "typeString": "string" }, "typeName": { - "id": 2349, + "id": 1077, "name": "string", "nodeType": "ElementaryTypeName", - "src": "403:6:13", + "src": "403:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -576,11 +576,11 @@ export const DetailedERC20 = }, { "constant": false, - "id": 2352, + "id": 1080, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "417:14:13", + "scope": 1098, + "src": "417:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -588,10 +588,10 @@ export const DetailedERC20 = "typeString": "string" }, "typeName": { - "id": 2351, + "id": 1079, "name": "string", "nodeType": "ElementaryTypeName", - "src": "417:6:13", + "src": "417:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -602,11 +602,11 @@ export const DetailedERC20 = }, { "constant": false, - "id": 2354, + "id": 1082, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "433:15:13", + "scope": 1098, + "src": "433:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -614,10 +614,10 @@ export const DetailedERC20 = "typeString": "uint8" }, "typeName": { - "id": 2353, + "id": 1081, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "433:5:13", + "src": "433:5:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -627,40 +627,40 @@ export const DetailedERC20 = "visibility": "internal" } ], - "src": "402:47:13" + "src": "402:47:7" }, "payable": false, "returnParameters": { - "id": 2356, + "id": 1084, "nodeType": "ParameterList", "parameters": [], - "src": "457:0:13" + "src": "457:0:7" }, - "scope": 2371, - "src": "391:137:13", + "scope": 1099, + "src": "391:137:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2372, - "src": "283:247:13" + "scope": 1100, + "src": "283:247:7" } ], - "src": "0:531:13" + "src": "0:531:7" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", "exportedSymbols": { "DetailedERC20": [ - 2371 + 1099 ] }, - "id": 2372, + "id": 1100, "nodeType": "SourceUnit", "nodes": [ { - "id": 2339, + "id": 1067, "literals": [ "solidity", "^", @@ -668,16 +668,16 @@ export const DetailedERC20 = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:13" + "src": "0:24:7" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "./ERC20.sol", - "id": 2340, + "id": 1068, "nodeType": "ImportDirective", - "scope": 2372, - "sourceUnit": 2415, - "src": "26:21:13", + "scope": 1100, + "sourceUnit": 1143, + "src": "26:21:7", "symbolAliases": [], "unitAlias": "" }, @@ -687,44 +687,44 @@ export const DetailedERC20 = "arguments": null, "baseName": { "contractScope": null, - "id": 2341, + "id": 1069, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "309:5:13", + "referencedDeclaration": 1142, + "src": "309:5:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", + "typeIdentifier": "t_contract$_ERC20_$1142", "typeString": "contract ERC20" } }, - "id": 2342, + "id": 1070, "nodeType": "InheritanceSpecifier", - "src": "309:5:13" + "src": "309:5:7" } ], "contractDependencies": [ - 2414, - 2446 + 1142, + 1174 ], "contractKind": "contract", "documentation": "@title DetailedERC20 token\n@dev The decimals are only for visualization purposes.\nAll the operations are done using the smallest and indivisible token unit,\njust as on Ethereum all the operations are done in wei.", "fullyImplemented": false, - "id": 2371, + "id": 1099, "linearizedBaseContracts": [ - 2371, - 2414, - 2446 + 1099, + 1142, + 1174 ], "name": "DetailedERC20", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2344, + "id": 1072, "name": "name", "nodeType": "VariableDeclaration", - "scope": 2371, - "src": "319:18:13", + "scope": 1099, + "src": "319:18:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -732,10 +732,10 @@ export const DetailedERC20 = "typeString": "string" }, "typeName": { - "id": 2343, + "id": 1071, "name": "string", "nodeType": "ElementaryTypeName", - "src": "319:6:13", + "src": "319:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -746,11 +746,11 @@ export const DetailedERC20 = }, { "constant": false, - "id": 2346, + "id": 1074, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 2371, - "src": "341:20:13", + "scope": 1099, + "src": "341:20:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -758,10 +758,10 @@ export const DetailedERC20 = "typeString": "string" }, "typeName": { - "id": 2345, + "id": 1073, "name": "string", "nodeType": "ElementaryTypeName", - "src": "341:6:13", + "src": "341:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -772,11 +772,11 @@ export const DetailedERC20 = }, { "constant": false, - "id": 2348, + "id": 1076, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 2371, - "src": "365:21:13", + "scope": 1099, + "src": "365:21:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -784,10 +784,10 @@ export const DetailedERC20 = "typeString": "uint8" }, "typeName": { - "id": 2347, + "id": 1075, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "365:5:13", + "src": "365:5:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -798,26 +798,26 @@ export const DetailedERC20 = }, { "body": { - "id": 2369, + "id": 1097, "nodeType": "Block", - "src": "457:71:13", + "src": "457:71:7", "statements": [ { "expression": { "argumentTypes": null, - "id": 2359, + "id": 1087, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2357, + "id": 1085, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2344, - "src": "463:4:13", + "referencedDeclaration": 1072, + "src": "463:4:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -827,43 +827,43 @@ export const DetailedERC20 = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2358, + "id": 1086, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2350, - "src": "470:5:13", + "referencedDeclaration": 1078, + "src": "470:5:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "463:12:13", + "src": "463:12:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 2360, + "id": 1088, "nodeType": "ExpressionStatement", - "src": "463:12:13" + "src": "463:12:7" }, { "expression": { "argumentTypes": null, - "id": 2363, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2361, + "id": 1089, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2346, - "src": "481:6:13", + "referencedDeclaration": 1074, + "src": "481:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -873,43 +873,43 @@ export const DetailedERC20 = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2362, + "id": 1090, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2352, - "src": "490:7:13", + "referencedDeclaration": 1080, + "src": "490:7:7", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "481:16:13", + "src": "481:16:7", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 2364, + "id": 1092, "nodeType": "ExpressionStatement", - "src": "481:16:13" + "src": "481:16:7" }, { "expression": { "argumentTypes": null, - "id": 2367, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2365, + "id": 1093, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2348, - "src": "503:8:13", + "referencedDeclaration": 1076, + "src": "503:8:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -919,31 +919,31 @@ export const DetailedERC20 = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2366, + "id": 1094, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2354, - "src": "514:9:13", + "referencedDeclaration": 1082, + "src": "514:9:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "503:20:13", + "src": "503:20:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2368, + "id": 1096, "nodeType": "ExpressionStatement", - "src": "503:20:13" + "src": "503:20:7" } ] }, "documentation": null, - "id": 2370, + "id": 1098, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -951,16 +951,16 @@ export const DetailedERC20 = "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2355, + "id": 1083, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2350, + "id": 1078, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "403:12:13", + "scope": 1098, + "src": "403:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -968,10 +968,10 @@ export const DetailedERC20 = "typeString": "string" }, "typeName": { - "id": 2349, + "id": 1077, "name": "string", "nodeType": "ElementaryTypeName", - "src": "403:6:13", + "src": "403:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -982,11 +982,11 @@ export const DetailedERC20 = }, { "constant": false, - "id": 2352, + "id": 1080, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "417:14:13", + "scope": 1098, + "src": "417:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -994,10 +994,10 @@ export const DetailedERC20 = "typeString": "string" }, "typeName": { - "id": 2351, + "id": 1079, "name": "string", "nodeType": "ElementaryTypeName", - "src": "417:6:13", + "src": "417:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1008,11 +1008,11 @@ export const DetailedERC20 = }, { "constant": false, - "id": 2354, + "id": 1082, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "433:15:13", + "scope": 1098, + "src": "433:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1020,10 +1020,10 @@ export const DetailedERC20 = "typeString": "uint8" }, "typeName": { - "id": 2353, + "id": 1081, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "433:5:13", + "src": "433:5:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1033,33 +1033,33 @@ export const DetailedERC20 = "visibility": "internal" } ], - "src": "402:47:13" + "src": "402:47:7" }, "payable": false, "returnParameters": { - "id": 2356, + "id": 1084, "nodeType": "ParameterList", "parameters": [], - "src": "457:0:13" + "src": "457:0:7" }, - "scope": 2371, - "src": "391:137:13", + "scope": 1099, + "src": "391:137:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2372, - "src": "283:247:13" + "scope": 1100, + "src": "283:247:7" } ], - "src": "0:531:13" + "src": "0:531:7" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.587Z" + "updatedAt": "2018-07-07T15:28:53.733Z" } \ No newline at end of file diff --git a/artifacts/ts/DummyToken.ts b/artifacts/ts/DummyToken.ts index 716fec1a7..a90ab33d9 100644 --- a/artifacts/ts/DummyToken.ts +++ b/artifacts/ts/DummyToken.ts @@ -445,62 +445,62 @@ export const DummyToken = "type": "function" } ], - "bytecode": "0x60806040526000600360146101000a81548160ff0219169083151502179055503480156200002c57600080fd5b5060405162001d5b38038062001d5b8339810180604052810190808051820192919060200180518201929190602001805190602001909291908051906020019092919050505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360049080519060200190620000cb92919062000140565b508260059080519060200190620000e492919062000140565b508160068190555080600181905550806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050620001ef565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018357805160ff1916838001178555620001b4565b82800160010185558215620001b4579182015b82811115620001b357825182559160200191906001019062000196565b5b509050620001c39190620001c7565b5090565b620001ec91905b80821115620001e8576000816000905550600101620001ce565b5090565b90565b611b5c80620001ff6000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010157806306fdde0314610130578063095ea7b3146101c057806318160ddd1461022557806323b872dd14610250578063313ce567146102d557806340c10f1914610300578063661884631461036557806370a08231146103ca578063715018a6146104215780637d64bcb4146104385780638da5cb5b1461046757806395d89b41146104be578063a9059cbb1461054e578063d73dd623146105b3578063dd62ed3e14610618578063e30443bc1461068f578063f2fde38b146106dc575b600080fd5b34801561010d57600080fd5b5061011661071f565b604051808215151515815260200191505060405180910390f35b34801561013c57600080fd5b50610145610732565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018557808201518184015260208101905061016a565b50505050905090810190601f1680156101b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cc57600080fd5b5061020b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107d0565b604051808215151515815260200191505060405180910390f35b34801561023157600080fd5b5061023a6108c2565b6040518082815260200191505060405180910390f35b34801561025c57600080fd5b506102bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108cc565b604051808215151515815260200191505060405180910390f35b3480156102e157600080fd5b506102ea610c86565b6040518082815260200191505060405180910390f35b34801561030c57600080fd5b5061034b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c8c565b604051808215151515815260200191505060405180910390f35b34801561037157600080fd5b506103b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e72565b604051808215151515815260200191505060405180910390f35b3480156103d657600080fd5b5061040b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611103565b6040518082815260200191505060405180910390f35b34801561042d57600080fd5b5061043661114b565b005b34801561044457600080fd5b5061044d611250565b604051808215151515815260200191505060405180910390f35b34801561047357600080fd5b5061047c611318565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ca57600080fd5b506104d361133e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105135780820151818401526020810190506104f8565b50505050905090810190601f1680156105405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561055a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113dc565b604051808215151515815260200191505060405180910390f35b3480156105bf57600080fd5b506105fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115fb565b604051808215151515815260200191505060405180910390f35b34801561062457600080fd5b50610679600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117f7565b6040518082815260200191505060405180910390f35b34801561069b57600080fd5b506106da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061187e565b005b3480156106e857600080fd5b5061071d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611997565b005b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107c85780601f1061079d576101008083540402835291602001916107c8565b820191906000526020600020905b8154815290600101906020018083116107ab57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561090957600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561095657600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156109e157600080fd5b610a32826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ac5826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b9682600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60065481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cea57600080fd5b600360149054906101000a900460ff16151515610d0657600080fd5b610d1b82600154611a1890919063ffffffff16565b600181905550610d72826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610f83576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611017565b610f9683826119ff90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112ae57600080fd5b600360149054906101000a900460ff161515156112ca57600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d45780601f106113a9576101008083540402835291602001916113d4565b820191906000526020600020905b8154815290600101906020018083116113b757829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561141957600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561146657600080fd5b6114b7826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061154a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061168c82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118dc57600080fd5b6118e583611103565b9050808210156119215761191661190583836119ff90919063ffffffff16565b6001546119ff90919063ffffffff16565b60018190555061194f565b61194861193782846119ff90919063ffffffff16565b600154611a1890919063ffffffff16565b6001819055505b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119f357600080fd5b6119fc81611a34565b50565b6000828211151515611a0d57fe5b818303905092915050565b60008183019050828110151515611a2b57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a7057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582066bfafd74ab0efc0b5d896a8b2bf257c575387f5dc4d73712d4ff3a34507e7080029", - "deployedBytecode": "0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010157806306fdde0314610130578063095ea7b3146101c057806318160ddd1461022557806323b872dd14610250578063313ce567146102d557806340c10f1914610300578063661884631461036557806370a08231146103ca578063715018a6146104215780637d64bcb4146104385780638da5cb5b1461046757806395d89b41146104be578063a9059cbb1461054e578063d73dd623146105b3578063dd62ed3e14610618578063e30443bc1461068f578063f2fde38b146106dc575b600080fd5b34801561010d57600080fd5b5061011661071f565b604051808215151515815260200191505060405180910390f35b34801561013c57600080fd5b50610145610732565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018557808201518184015260208101905061016a565b50505050905090810190601f1680156101b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cc57600080fd5b5061020b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107d0565b604051808215151515815260200191505060405180910390f35b34801561023157600080fd5b5061023a6108c2565b6040518082815260200191505060405180910390f35b34801561025c57600080fd5b506102bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108cc565b604051808215151515815260200191505060405180910390f35b3480156102e157600080fd5b506102ea610c86565b6040518082815260200191505060405180910390f35b34801561030c57600080fd5b5061034b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c8c565b604051808215151515815260200191505060405180910390f35b34801561037157600080fd5b506103b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e72565b604051808215151515815260200191505060405180910390f35b3480156103d657600080fd5b5061040b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611103565b6040518082815260200191505060405180910390f35b34801561042d57600080fd5b5061043661114b565b005b34801561044457600080fd5b5061044d611250565b604051808215151515815260200191505060405180910390f35b34801561047357600080fd5b5061047c611318565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ca57600080fd5b506104d361133e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105135780820151818401526020810190506104f8565b50505050905090810190601f1680156105405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561055a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113dc565b604051808215151515815260200191505060405180910390f35b3480156105bf57600080fd5b506105fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115fb565b604051808215151515815260200191505060405180910390f35b34801561062457600080fd5b50610679600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117f7565b6040518082815260200191505060405180910390f35b34801561069b57600080fd5b506106da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061187e565b005b3480156106e857600080fd5b5061071d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611997565b005b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107c85780601f1061079d576101008083540402835291602001916107c8565b820191906000526020600020905b8154815290600101906020018083116107ab57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561090957600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561095657600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156109e157600080fd5b610a32826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ac5826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b9682600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60065481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cea57600080fd5b600360149054906101000a900460ff16151515610d0657600080fd5b610d1b82600154611a1890919063ffffffff16565b600181905550610d72826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610f83576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611017565b610f9683826119ff90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112ae57600080fd5b600360149054906101000a900460ff161515156112ca57600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d45780601f106113a9576101008083540402835291602001916113d4565b820191906000526020600020905b8154815290600101906020018083116113b757829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561141957600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561146657600080fd5b6114b7826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061154a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061168c82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118dc57600080fd5b6118e583611103565b9050808210156119215761191661190583836119ff90919063ffffffff16565b6001546119ff90919063ffffffff16565b60018190555061194f565b61194861193782846119ff90919063ffffffff16565b600154611a1890919063ffffffff16565b6001819055505b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119f357600080fd5b6119fc81611a34565b50565b6000828211151515611a0d57fe5b818303905092915050565b60008183019050828110151515611a2b57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a7057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582066bfafd74ab0efc0b5d896a8b2bf257c575387f5dc4d73712d4ff3a34507e7080029", - "sourceMap": "210:727:7:-;;;548:5:16;518:35;;;;;;;;;;;;;;;;;;;;349:252:7;8:9:-1;5:2;;;30:1;27;20:12;5:2;349:252:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:10:11;567:5;;:18;;;;;;;;;;;;;;;;;;469:5:7;462:4;:12;;;;;;;;;;;;:::i;:::-;;489:7;480:6;:16;;;;;;;;;;;;:::i;:::-;;513:9;502:8;:20;;;;543:12;528;:27;;;;584:12;561:8;:20;570:10;561:20;;;;;;;;;;;;;;;:35;;;;349:252;;;;210:727;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "210:727:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;518:35:16;;;;;;;;;;;;;;;;;;;;;;;;;;;278:18:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;278:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;278:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:12;;;;;;;;;;;;;;;;;;;;;;;736:470:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;324:20:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;324:20:7;;;;;;;;;;;;;;;;;;;;;;;936:312:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;936:312:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:425:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:11;;;;;;1362:140:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1362:140:16;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:11;;;;;;;;;;;;;;;;;;;;;;;;;;;300::7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;300:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;300:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;605:330:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;605:330:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35:16;;;;;;;;;;;;;:::o;278:18:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:17:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;371:83:12:-;415:7;437:12;;430:19;;371:83;:::o;736:470:17:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;324:20:7:-;;;;:::o;936:312:16:-;1050:4;682:5;;;;;;;;;;;668:19;;:10;:19;;;660:28;;;;;;;;593:15;;;;;;;;;;;592:16;584:25;;;;;;;;1079;1096:7;1079:12;;:16;;:25;;;;:::i;:::-;1064:12;:40;;;;1126:26;1144:7;1126:8;:13;1135:3;1126:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;1110:8;:13;1119:3;1110:13;;;;;;;;;;;;;;;:42;;;;1168:3;1163:18;;;1173:7;1163:18;;;;;;;;;;;;;;;;;;1213:3;1192:34;;1209:1;1192:34;;;1218:7;1192:34;;;;;;;;;;;;;;;;;;1239:4;1232:11;;936:312;;;;:::o;3701:425:17:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:12:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;827:111:11:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;1362:140:16:-;1421:4;719:5:11;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;593:15:16;;;;;;;;;;;592:16;584:25;;;;;;;;1451:4;1433:15;;:22;;;;;;;;;;;;;;;;;;1466:14;;;;;;;;;;1493:4;1486:11;;1362:140;:::o;238:20:11:-;;;;;;;;;;;;;:::o;300::7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;608:321:12:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:17:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;605:330:7:-;678:16;719:5:11;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;:18:7;707:7;697:9;:18::i;:::-;678:37;;734:11;725:6;:20;721:178;;;772:41;789:23;805:6;789:11;:15;;:23;;;;:::i;:::-;772:12;;:16;;:41;;;;:::i;:::-;757:12;:56;;;;721:178;;;851:41;868:23;879:11;868:6;:10;;:23;;;;:::i;:::-;851:12;;:16;;:41;;;;:::i;:::-;836:12;:56;;;;721:178;924:6;904:8;:17;913:7;904:17;;;;;;;;;;;;;;;:26;;;;605:330;;;:::o;1100:103:11:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1042:110:10:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;1338:171:11:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", - "source": "pragma solidity 0.4.23;\n\nimport \"zeppelin-solidity/contracts/token/ERC20/MintableToken.sol\";\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\n\ncontract DummyToken is MintableToken {\n using SafeMath for uint;\n string public name;\n string public symbol;\n uint public decimals;\n\n constructor(\n string _name,\n string _symbol,\n uint _decimals,\n uint _totalSupply)\n public\n {\n name = _name;\n symbol = _symbol;\n decimals = _decimals;\n totalSupply_ = _totalSupply;\n balances[msg.sender] = _totalSupply;\n }\n\n function setBalance(address _target, uint _value) public onlyOwner {\n uint currBalance = balanceOf(_target);\n if (_value < currBalance) {\n totalSupply_ = totalSupply_.sub(currBalance.sub(_value));\n } else {\n totalSupply_ = totalSupply_.add(_value.sub(currBalance));\n }\n balances[_target] = _value;\n }\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/DummyToken.sol", + "bytecode": "0x60806040526000600360146101000a81548160ff0219169083151502179055503480156200002c57600080fd5b5060405162001d5b38038062001d5b8339810180604052810190808051820192919060200180518201929190602001805190602001909291908051906020019092919050505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360049080519060200190620000cb92919062000140565b508260059080519060200190620000e492919062000140565b508160068190555080600181905550806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050620001ef565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018357805160ff1916838001178555620001b4565b82800160010185558215620001b4579182015b82811115620001b357825182559160200191906001019062000196565b5b509050620001c39190620001c7565b5090565b620001ec91905b80821115620001e8576000816000905550600101620001ce565b5090565b90565b611b5c80620001ff6000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010157806306fdde0314610130578063095ea7b3146101c057806318160ddd1461022557806323b872dd14610250578063313ce567146102d557806340c10f1914610300578063661884631461036557806370a08231146103ca578063715018a6146104215780637d64bcb4146104385780638da5cb5b1461046757806395d89b41146104be578063a9059cbb1461054e578063d73dd623146105b3578063dd62ed3e14610618578063e30443bc1461068f578063f2fde38b146106dc575b600080fd5b34801561010d57600080fd5b5061011661071f565b604051808215151515815260200191505060405180910390f35b34801561013c57600080fd5b50610145610732565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018557808201518184015260208101905061016a565b50505050905090810190601f1680156101b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cc57600080fd5b5061020b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107d0565b604051808215151515815260200191505060405180910390f35b34801561023157600080fd5b5061023a6108c2565b6040518082815260200191505060405180910390f35b34801561025c57600080fd5b506102bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108cc565b604051808215151515815260200191505060405180910390f35b3480156102e157600080fd5b506102ea610c86565b6040518082815260200191505060405180910390f35b34801561030c57600080fd5b5061034b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c8c565b604051808215151515815260200191505060405180910390f35b34801561037157600080fd5b506103b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e72565b604051808215151515815260200191505060405180910390f35b3480156103d657600080fd5b5061040b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611103565b6040518082815260200191505060405180910390f35b34801561042d57600080fd5b5061043661114b565b005b34801561044457600080fd5b5061044d611250565b604051808215151515815260200191505060405180910390f35b34801561047357600080fd5b5061047c611318565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ca57600080fd5b506104d361133e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105135780820151818401526020810190506104f8565b50505050905090810190601f1680156105405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561055a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113dc565b604051808215151515815260200191505060405180910390f35b3480156105bf57600080fd5b506105fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115fb565b604051808215151515815260200191505060405180910390f35b34801561062457600080fd5b50610679600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117f7565b6040518082815260200191505060405180910390f35b34801561069b57600080fd5b506106da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061187e565b005b3480156106e857600080fd5b5061071d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611997565b005b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107c85780601f1061079d576101008083540402835291602001916107c8565b820191906000526020600020905b8154815290600101906020018083116107ab57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561090957600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561095657600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156109e157600080fd5b610a32826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ac5826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b9682600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60065481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cea57600080fd5b600360149054906101000a900460ff16151515610d0657600080fd5b610d1b82600154611a1890919063ffffffff16565b600181905550610d72826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610f83576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611017565b610f9683826119ff90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112ae57600080fd5b600360149054906101000a900460ff161515156112ca57600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d45780601f106113a9576101008083540402835291602001916113d4565b820191906000526020600020905b8154815290600101906020018083116113b757829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561141957600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561146657600080fd5b6114b7826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061154a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061168c82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118dc57600080fd5b6118e583611103565b9050808210156119215761191661190583836119ff90919063ffffffff16565b6001546119ff90919063ffffffff16565b60018190555061194f565b61194861193782846119ff90919063ffffffff16565b600154611a1890919063ffffffff16565b6001819055505b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119f357600080fd5b6119fc81611a34565b50565b6000828211151515611a0d57fe5b818303905092915050565b60008183019050828110151515611a2b57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a7057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820d88c96738891f635e5407516722f191c6b523221bd7e012d60abeaa88793ccfe0029", + "deployedBytecode": "0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010157806306fdde0314610130578063095ea7b3146101c057806318160ddd1461022557806323b872dd14610250578063313ce567146102d557806340c10f1914610300578063661884631461036557806370a08231146103ca578063715018a6146104215780637d64bcb4146104385780638da5cb5b1461046757806395d89b41146104be578063a9059cbb1461054e578063d73dd623146105b3578063dd62ed3e14610618578063e30443bc1461068f578063f2fde38b146106dc575b600080fd5b34801561010d57600080fd5b5061011661071f565b604051808215151515815260200191505060405180910390f35b34801561013c57600080fd5b50610145610732565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018557808201518184015260208101905061016a565b50505050905090810190601f1680156101b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cc57600080fd5b5061020b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107d0565b604051808215151515815260200191505060405180910390f35b34801561023157600080fd5b5061023a6108c2565b6040518082815260200191505060405180910390f35b34801561025c57600080fd5b506102bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108cc565b604051808215151515815260200191505060405180910390f35b3480156102e157600080fd5b506102ea610c86565b6040518082815260200191505060405180910390f35b34801561030c57600080fd5b5061034b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c8c565b604051808215151515815260200191505060405180910390f35b34801561037157600080fd5b506103b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e72565b604051808215151515815260200191505060405180910390f35b3480156103d657600080fd5b5061040b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611103565b6040518082815260200191505060405180910390f35b34801561042d57600080fd5b5061043661114b565b005b34801561044457600080fd5b5061044d611250565b604051808215151515815260200191505060405180910390f35b34801561047357600080fd5b5061047c611318565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ca57600080fd5b506104d361133e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105135780820151818401526020810190506104f8565b50505050905090810190601f1680156105405780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561055a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113dc565b604051808215151515815260200191505060405180910390f35b3480156105bf57600080fd5b506105fe600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115fb565b604051808215151515815260200191505060405180910390f35b34801561062457600080fd5b50610679600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117f7565b6040518082815260200191505060405180910390f35b34801561069b57600080fd5b506106da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061187e565b005b3480156106e857600080fd5b5061071d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611997565b005b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107c85780601f1061079d576101008083540402835291602001916107c8565b820191906000526020600020905b8154815290600101906020018083116107ab57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561090957600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561095657600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156109e157600080fd5b610a32826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ac5826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b9682600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60065481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cea57600080fd5b600360149054906101000a900460ff16151515610d0657600080fd5b610d1b82600154611a1890919063ffffffff16565b600181905550610d72826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610f83576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611017565b610f9683826119ff90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112ae57600080fd5b600360149054906101000a900460ff161515156112ca57600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113d45780601f106113a9576101008083540402835291602001916113d4565b820191906000526020600020905b8154815290600101906020018083116113b757829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561141957600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561146657600080fd5b6114b7826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ff90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061154a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061168c82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1890919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118dc57600080fd5b6118e583611103565b9050808210156119215761191661190583836119ff90919063ffffffff16565b6001546119ff90919063ffffffff16565b60018190555061194f565b61194861193782846119ff90919063ffffffff16565b600154611a1890919063ffffffff16565b6001819055505b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119f357600080fd5b6119fc81611a34565b50565b6000828211151515611a0d57fe5b818303905092915050565b60008183019050828110151515611a2b57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a7057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820d88c96738891f635e5407516722f191c6b523221bd7e012d60abeaa88793ccfe0029", + "sourceMap": "210:727:30:-;;;548:5:44;518:35;;;;;;;;;;;;;;;;;;;;349:252:30;8:9:-1;5:2;;;30:1;27;20:12;5:2;349:252:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;469:5:30;462:4;:12;;;;;;;;;;;;:::i;:::-;;489:7;480:6;:16;;;;;;;;;;;;:::i;:::-;;513:9;502:8;:20;;;;543:12;528;:27;;;;584:12;561:8;:20;570:10;561:20;;;;;;;;;;;;;;;:35;;;;349:252;;;;210:727;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "210:727:30:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;518:35:44;;;;;;;;;;;;;;;;;;;;;;;;;;;278:18:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;278:18:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;278:18:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:40;;;;;;;;;;;;;;;;;;;;;;;736:470:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;324:20:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;324:20:30;;;;;;;;;;;;;;;;;;;;;;;936:312:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;936:312:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:425:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:39;;;;;;1362:140:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1362:140:44;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;300::30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;300:20:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;300:20:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;605:330:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;605:330:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35:44;;;;;;;;;;;;;:::o;278:18:30:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:45:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;371:83:40:-;415:7;437:12;;430:19;;371:83;:::o;736:470:45:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;324:20:30:-;;;;:::o;936:312:44:-;1050:4;682:5;;;;;;;;;;;668:19;;:10;:19;;;660:28;;;;;;;;593:15;;;;;;;;;;;592:16;584:25;;;;;;;;1079;1096:7;1079:12;;:16;;:25;;;;:::i;:::-;1064:12;:40;;;;1126:26;1144:7;1126:8;:13;1135:3;1126:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;1110:8;:13;1119:3;1110:13;;;;;;;;;;;;;;;:42;;;;1168:3;1163:18;;;1173:7;1163:18;;;;;;;;;;;;;;;;;;1213:3;1192:34;;1209:1;1192:34;;;1218:7;1192:34;;;;;;;;;;;;;;;;;;1239:4;1232:11;;936:312;;;;:::o;3701:425:45:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:40:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;827:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;1362:140:44:-;1421:4;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;593:15:44;;;;;;;;;;;592:16;584:25;;;;;;;;1451:4;1433:15;;:22;;;;;;;;;;;;;;;;;;1466:14;;;;;;;;;;1493:4;1486:11;;1362:140;:::o;238:20:39:-;;;;;;;;;;;;;:::o;300::30:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;608:321:40:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:45:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;605:330:30:-;678:16;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;:18:30;707:7;697:9;:18::i;:::-;678:37;;734:11;725:6;:20;721:178;;;772:41;789:23;805:6;789:11;:15;;:23;;;;:::i;:::-;772:12;;:16;;:41;;;;:::i;:::-;757:12;:56;;;;721:178;;;851:41;868:23;879:11;868:6;:10;;:23;;;;:::i;:::-;851:12;;:16;;:41;;;;:::i;:::-;836:12;:56;;;;721:178;924:6;904:8;:17;913:7;904:17;;;;;;;;;;;;;;;:26;;;;605:330;;;:::o;1100:103:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;1338:171:39:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", + "source": "pragma solidity 0.4.24;\n\nimport \"zeppelin-solidity/contracts/token/ERC20/MintableToken.sol\";\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\n\ncontract DummyToken is MintableToken {\n using SafeMath for uint;\n string public name;\n string public symbol;\n uint public decimals;\n\n constructor(\n string _name,\n string _symbol,\n uint _decimals,\n uint _totalSupply)\n public\n {\n name = _name;\n symbol = _symbol;\n decimals = _decimals;\n totalSupply_ = _totalSupply;\n balances[msg.sender] = _totalSupply;\n }\n\n function setBalance(address _target, uint _value) public onlyOwner {\n uint currBalance = balanceOf(_target);\n if (_value < currBalance) {\n totalSupply_ = totalSupply_.sub(currBalance.sub(_value));\n } else {\n totalSupply_ = totalSupply_.add(_value.sub(currBalance));\n }\n balances[_target] = _value;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/DummyToken.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/DummyToken.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/DummyToken.sol", "exportedSymbols": { "DummyToken": [ - 1787 + 3529 ] }, - "id": 1788, + "id": 3530, "nodeType": "SourceUnit", "nodes": [ { - "id": 1689, + "id": 3431, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:7" + "src": "0:23:30" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", "file": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", - "id": 1690, + "id": 3432, "nodeType": "ImportDirective", - "scope": 1788, - "sourceUnit": 2553, - "src": "25:67:7", + "scope": 3530, + "sourceUnit": 5136, + "src": "25:67:30", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "zeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1691, + "id": 3433, "nodeType": "ImportDirective", - "scope": 1788, - "sourceUnit": 2156, - "src": "93:55:7", + "scope": 3530, + "sourceUnit": 4739, + "src": "93:55:30", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1692, + "id": 3434, "nodeType": "ImportDirective", - "scope": 1788, - "sourceUnit": 2242, - "src": "149:59:7", + "scope": 3530, + "sourceUnit": 4825, + "src": "149:59:30", "symbolAliases": [], "unitAlias": "" }, @@ -510,66 +510,66 @@ export const DummyToken = "arguments": null, "baseName": { "contractScope": null, - "id": 1693, + "id": 3435, "name": "MintableToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2552, - "src": "233:13:7", + "referencedDeclaration": 5135, + "src": "233:13:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_MintableToken_$2552", + "typeIdentifier": "t_contract$_MintableToken_$5135", "typeString": "contract MintableToken" } }, - "id": 1694, + "id": 3436, "nodeType": "InheritanceSpecifier", - "src": "233:13:7" + "src": "233:13:30" } ], "contractDependencies": [ - 2241, - 2337, - 2414, - 2446, - 2552, - 2799 + 4824, + 4920, + 4997, + 5029, + 5135, + 5382 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1787, + "id": 3529, "linearizedBaseContracts": [ - 1787, - 2552, - 2241, - 2799, - 2337, - 2414, - 2446 + 3529, + 5135, + 4824, + 5382, + 4920, + 4997, + 5029 ], "name": "DummyToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1697, + "id": 3439, "libraryName": { "contractScope": null, - "id": 1695, + "id": 3437, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "257:8:7", + "referencedDeclaration": 4738, + "src": "257:8:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", + "typeIdentifier": "t_contract$_SafeMath_$4738", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "251:24:7", + "src": "251:24:30", "typeName": { - "id": 1696, + "id": 3438, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "270:4:7", + "src": "270:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -578,11 +578,11 @@ export const DummyToken = }, { "constant": false, - "id": 1699, + "id": 3441, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1787, - "src": "278:18:7", + "scope": 3529, + "src": "278:18:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -590,10 +590,10 @@ export const DummyToken = "typeString": "string" }, "typeName": { - "id": 1698, + "id": 3440, "name": "string", "nodeType": "ElementaryTypeName", - "src": "278:6:7", + "src": "278:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -604,11 +604,11 @@ export const DummyToken = }, { "constant": false, - "id": 1701, + "id": 3443, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1787, - "src": "300:20:7", + "scope": 3529, + "src": "300:20:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -616,10 +616,10 @@ export const DummyToken = "typeString": "string" }, "typeName": { - "id": 1700, + "id": 3442, "name": "string", "nodeType": "ElementaryTypeName", - "src": "300:6:7", + "src": "300:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -630,11 +630,11 @@ export const DummyToken = }, { "constant": false, - "id": 1703, + "id": 3445, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 1787, - "src": "324:20:7", + "scope": 3529, + "src": "324:20:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -642,10 +642,10 @@ export const DummyToken = "typeString": "uint256" }, "typeName": { - "id": 1702, + "id": 3444, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "324:4:7", + "src": "324:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -656,26 +656,26 @@ export const DummyToken = }, { "body": { - "id": 1737, + "id": 3479, "nodeType": "Block", - "src": "456:145:7", + "src": "456:145:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 1716, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1714, + "id": 3456, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1699, - "src": "462:4:7", + "referencedDeclaration": 3441, + "src": "462:4:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -685,43 +685,43 @@ export const DummyToken = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1715, + "id": 3457, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "469:5:7", + "referencedDeclaration": 3447, + "src": "469:5:30", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "462:12:7", + "src": "462:12:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1717, + "id": 3459, "nodeType": "ExpressionStatement", - "src": "462:12:7" + "src": "462:12:30" }, { "expression": { "argumentTypes": null, - "id": 1720, + "id": 3462, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1718, + "id": 3460, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1701, - "src": "480:6:7", + "referencedDeclaration": 3443, + "src": "480:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -731,43 +731,43 @@ export const DummyToken = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1719, + "id": 3461, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1707, - "src": "489:7:7", + "referencedDeclaration": 3449, + "src": "489:7:30", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "480:16:7", + "src": "480:16:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1721, + "id": 3463, "nodeType": "ExpressionStatement", - "src": "480:16:7" + "src": "480:16:30" }, { "expression": { "argumentTypes": null, - "id": 1724, + "id": 3466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1722, + "id": 3464, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1703, - "src": "502:8:7", + "referencedDeclaration": 3445, + "src": "502:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -777,43 +777,43 @@ export const DummyToken = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1723, + "id": 3465, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1709, - "src": "513:9:7", + "referencedDeclaration": 3451, + "src": "513:9:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "502:20:7", + "src": "502:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1725, + "id": 3467, "nodeType": "ExpressionStatement", - "src": "502:20:7" + "src": "502:20:30" }, { "expression": { "argumentTypes": null, - "id": 1728, + "id": 3470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1726, + "id": 3468, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "528:12:7", + "referencedDeclaration": 4839, + "src": "528:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -823,31 +823,31 @@ export const DummyToken = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1727, + "id": 3469, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1711, - "src": "543:12:7", + "referencedDeclaration": 3453, + "src": "543:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "528:27:7", + "src": "528:27:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1729, + "id": 3471, "nodeType": "ExpressionStatement", - "src": "528:27:7" + "src": "528:27:30" }, { "expression": { "argumentTypes": null, - "id": 1735, + "id": 3477, "isConstant": false, "isLValue": false, "isPure": false, @@ -856,34 +856,34 @@ export const DummyToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1730, + "id": 3472, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "561:8:7", + "referencedDeclaration": 4837, + "src": "561:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1733, + "id": 3475, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1731, + "id": 3473, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "570:3:7", + "referencedDeclaration": 5397, + "src": "570:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1732, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, @@ -891,7 +891,7 @@ export const DummyToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "570:10:7", + "src": "570:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -902,7 +902,7 @@ export const DummyToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "561:20:7", + "src": "561:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -912,31 +912,31 @@ export const DummyToken = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1734, + "id": 3476, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1711, - "src": "584:12:7", + "referencedDeclaration": 3453, + "src": "584:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "561:35:7", + "src": "561:35:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1736, + "id": 3478, "nodeType": "ExpressionStatement", - "src": "561:35:7" + "src": "561:35:30" } ] }, "documentation": null, - "id": 1738, + "id": 3480, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -944,16 +944,16 @@ export const DummyToken = "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1712, + "id": 3454, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1705, + "id": 3447, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "366:12:7", + "scope": 3480, + "src": "366:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -961,10 +961,10 @@ export const DummyToken = "typeString": "string" }, "typeName": { - "id": 1704, + "id": 3446, "name": "string", "nodeType": "ElementaryTypeName", - "src": "366:6:7", + "src": "366:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -975,11 +975,11 @@ export const DummyToken = }, { "constant": false, - "id": 1707, + "id": 3449, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "384:14:7", + "scope": 3480, + "src": "384:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -987,10 +987,10 @@ export const DummyToken = "typeString": "string" }, "typeName": { - "id": 1706, + "id": 3448, "name": "string", "nodeType": "ElementaryTypeName", - "src": "384:6:7", + "src": "384:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1001,11 +1001,11 @@ export const DummyToken = }, { "constant": false, - "id": 1709, + "id": 3451, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "404:14:7", + "scope": 3480, + "src": "404:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1013,10 +1013,10 @@ export const DummyToken = "typeString": "uint256" }, "typeName": { - "id": 1708, + "id": 3450, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "404:4:7", + "src": "404:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1027,11 +1027,11 @@ export const DummyToken = }, { "constant": false, - "id": 1711, + "id": 3453, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "424:17:7", + "scope": 3480, + "src": "424:17:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1039,10 +1039,10 @@ export const DummyToken = "typeString": "uint256" }, "typeName": { - "id": 1710, + "id": 3452, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "424:4:7", + "src": "424:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1052,39 +1052,39 @@ export const DummyToken = "visibility": "internal" } ], - "src": "360:82:7" + "src": "360:82:30" }, "payable": false, "returnParameters": { - "id": 1713, + "id": 3455, "nodeType": "ParameterList", "parameters": [], - "src": "456:0:7" + "src": "456:0:30" }, - "scope": 1787, - "src": "349:252:7", + "scope": 3529, + "src": "349:252:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1785, + "id": 3527, "nodeType": "Block", - "src": "672:263:7", + "src": "672:263:30", "statements": [ { "assignments": [ - 1748 + 3490 ], "declarations": [ { "constant": false, - "id": 1748, + "id": 3490, "name": "currBalance", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "678:16:7", + "scope": 3528, + "src": "678:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1092,10 +1092,10 @@ export const DummyToken = "typeString": "uint256" }, "typeName": { - "id": 1747, + "id": 3489, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "678:4:7", + "src": "678:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1105,18 +1105,18 @@ export const DummyToken = "visibility": "internal" } ], - "id": 1752, + "id": 3494, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1750, + "id": 3492, "name": "_target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1740, - "src": "707:7:7", + "referencedDeclaration": 3482, + "src": "707:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1130,20 +1130,20 @@ export const DummyToken = "typeString": "address" } ], - "id": 1749, + "id": 3491, "name": "balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [ - 2336 + 4919 ], - "referencedDeclaration": 2336, - "src": "697:9:7", + "referencedDeclaration": 4919, + "src": "697:9:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 1751, + "id": 3493, "isConstant": false, "isLValue": false, "isPure": false, @@ -1151,14 +1151,14 @@ export const DummyToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "697:18:7", + "src": "697:18:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "678:37:7" + "src": "678:37:30" }, { "condition": { @@ -1167,19 +1167,19 @@ export const DummyToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1755, + "id": 3497, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1753, + "id": 3495, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "725:6:7", + "referencedDeclaration": 3484, + "src": "725:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1189,44 +1189,44 @@ export const DummyToken = "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1754, + "id": 3496, "name": "currBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "734:11:7", + "referencedDeclaration": 3490, + "src": "734:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "725:20:7", + "src": "725:20:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1777, + "id": 3519, "nodeType": "Block", - "src": "826:73:7", + "src": "826:73:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 1775, + "id": 3517, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1767, + "id": 3509, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "836:12:7", + "referencedDeclaration": 4839, + "src": "836:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1242,12 +1242,12 @@ export const DummyToken = "arguments": [ { "argumentTypes": null, - "id": 1772, + "id": 3514, "name": "currBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "879:11:7", + "referencedDeclaration": 3490, + "src": "879:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1263,32 +1263,32 @@ export const DummyToken = ], "expression": { "argumentTypes": null, - "id": 1770, + "id": 3512, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "868:6:7", + "referencedDeclaration": 3484, + "src": "868:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1771, + "id": 3513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "868:10:7", + "referencedDeclaration": 4713, + "src": "868:10:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1773, + "id": 3515, "isConstant": false, "isLValue": false, "isPure": false, @@ -1296,7 +1296,7 @@ export const DummyToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "868:23:7", + "src": "868:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1312,32 +1312,32 @@ export const DummyToken = ], "expression": { "argumentTypes": null, - "id": 1768, + "id": 3510, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "851:12:7", + "referencedDeclaration": 4839, + "src": "851:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1769, + "id": 3511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "851:16:7", + "referencedDeclaration": 4737, + "src": "851:16:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1774, + "id": 3516, "isConstant": false, "isLValue": false, "isPure": false, @@ -1345,48 +1345,48 @@ export const DummyToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "851:41:7", + "src": "851:41:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "836:56:7", + "src": "836:56:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1776, + "id": 3518, "nodeType": "ExpressionStatement", - "src": "836:56:7" + "src": "836:56:30" } ] }, - "id": 1778, + "id": 3520, "nodeType": "IfStatement", - "src": "721:178:7", + "src": "721:178:30", "trueBody": { - "id": 1766, + "id": 3508, "nodeType": "Block", - "src": "747:73:7", + "src": "747:73:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 1764, + "id": 3506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1756, + "id": 3498, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "757:12:7", + "referencedDeclaration": 4839, + "src": "757:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1402,12 +1402,12 @@ export const DummyToken = "arguments": [ { "argumentTypes": null, - "id": 1761, + "id": 3503, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "805:6:7", + "referencedDeclaration": 3484, + "src": "805:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1423,32 +1423,32 @@ export const DummyToken = ], "expression": { "argumentTypes": null, - "id": 1759, + "id": 3501, "name": "currBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "789:11:7", + "referencedDeclaration": 3490, + "src": "789:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1760, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "789:15:7", + "referencedDeclaration": 4713, + "src": "789:15:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1762, + "id": 3504, "isConstant": false, "isLValue": false, "isPure": false, @@ -1456,7 +1456,7 @@ export const DummyToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "789:23:7", + "src": "789:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1472,32 +1472,32 @@ export const DummyToken = ], "expression": { "argumentTypes": null, - "id": 1757, + "id": 3499, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "772:12:7", + "referencedDeclaration": 4839, + "src": "772:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1758, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "772:16:7", + "referencedDeclaration": 4713, + "src": "772:16:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1763, + "id": 3505, "isConstant": false, "isLValue": false, "isPure": false, @@ -1505,21 +1505,21 @@ export const DummyToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "772:41:7", + "src": "772:41:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "757:56:7", + "src": "757:56:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1765, + "id": 3507, "nodeType": "ExpressionStatement", - "src": "757:56:7" + "src": "757:56:30" } ] } @@ -1527,7 +1527,7 @@ export const DummyToken = { "expression": { "argumentTypes": null, - "id": 1783, + "id": 3525, "isConstant": false, "isLValue": false, "isPure": false, @@ -1536,26 +1536,26 @@ export const DummyToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1779, + "id": 3521, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "904:8:7", + "referencedDeclaration": 4837, + "src": "904:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1781, + "id": 3523, "indexExpression": { "argumentTypes": null, - "id": 1780, + "id": 3522, "name": "_target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1740, - "src": "913:7:7", + "referencedDeclaration": 3482, + "src": "913:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1566,7 +1566,7 @@ export const DummyToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "904:17:7", + "src": "904:17:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1576,68 +1576,68 @@ export const DummyToken = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1782, + "id": 3524, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "924:6:7", + "referencedDeclaration": 3484, + "src": "924:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "904:26:7", + "src": "904:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1784, + "id": 3526, "nodeType": "ExpressionStatement", - "src": "904:26:7" + "src": "904:26:30" } ] }, "documentation": null, - "id": 1786, + "id": 3528, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1745, + "id": 3487, "modifierName": { "argumentTypes": null, - "id": 1744, + "id": 3486, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "662:9:7", + "referencedDeclaration": 4772, + "src": "662:9:30", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "662:9:7" + "src": "662:9:30" } ], "name": "setBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1743, + "id": 3485, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1740, + "id": 3482, "name": "_target", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "625:15:7", + "scope": 3528, + "src": "625:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1645,10 +1645,10 @@ export const DummyToken = "typeString": "address" }, "typeName": { - "id": 1739, + "id": 3481, "name": "address", "nodeType": "ElementaryTypeName", - "src": "625:7:7", + "src": "625:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1659,11 +1659,11 @@ export const DummyToken = }, { "constant": false, - "id": 1742, + "id": 3484, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "642:11:7", + "scope": 3528, + "src": "642:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1671,10 +1671,10 @@ export const DummyToken = "typeString": "uint256" }, "typeName": { - "id": 1741, + "id": 3483, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "642:4:7", + "src": "642:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1684,78 +1684,78 @@ export const DummyToken = "visibility": "internal" } ], - "src": "624:30:7" + "src": "624:30:30" }, "payable": false, "returnParameters": { - "id": 1746, + "id": 3488, "nodeType": "ParameterList", "parameters": [], - "src": "672:0:7" + "src": "672:0:30" }, - "scope": 1787, - "src": "605:330:7", + "scope": 3529, + "src": "605:330:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1788, - "src": "210:727:7" + "scope": 3530, + "src": "210:727:30" } ], - "src": "0:938:7" + "src": "0:938:30" }, "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/DummyToken.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/DummyToken.sol", "exportedSymbols": { "DummyToken": [ - 1787 + 3529 ] }, - "id": 1788, + "id": 3530, "nodeType": "SourceUnit", "nodes": [ { - "id": 1689, + "id": 3431, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:7" + "src": "0:23:30" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", "file": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", - "id": 1690, + "id": 3432, "nodeType": "ImportDirective", - "scope": 1788, - "sourceUnit": 2553, - "src": "25:67:7", + "scope": 3530, + "sourceUnit": 5136, + "src": "25:67:30", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "zeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1691, + "id": 3433, "nodeType": "ImportDirective", - "scope": 1788, - "sourceUnit": 2156, - "src": "93:55:7", + "scope": 3530, + "sourceUnit": 4739, + "src": "93:55:30", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1692, + "id": 3434, "nodeType": "ImportDirective", - "scope": 1788, - "sourceUnit": 2242, - "src": "149:59:7", + "scope": 3530, + "sourceUnit": 4825, + "src": "149:59:30", "symbolAliases": [], "unitAlias": "" }, @@ -1765,66 +1765,66 @@ export const DummyToken = "arguments": null, "baseName": { "contractScope": null, - "id": 1693, + "id": 3435, "name": "MintableToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2552, - "src": "233:13:7", + "referencedDeclaration": 5135, + "src": "233:13:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_MintableToken_$2552", + "typeIdentifier": "t_contract$_MintableToken_$5135", "typeString": "contract MintableToken" } }, - "id": 1694, + "id": 3436, "nodeType": "InheritanceSpecifier", - "src": "233:13:7" + "src": "233:13:30" } ], "contractDependencies": [ - 2241, - 2337, - 2414, - 2446, - 2552, - 2799 + 4824, + 4920, + 4997, + 5029, + 5135, + 5382 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1787, + "id": 3529, "linearizedBaseContracts": [ - 1787, - 2552, - 2241, - 2799, - 2337, - 2414, - 2446 + 3529, + 5135, + 4824, + 5382, + 4920, + 4997, + 5029 ], "name": "DummyToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1697, + "id": 3439, "libraryName": { "contractScope": null, - "id": 1695, + "id": 3437, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "257:8:7", + "referencedDeclaration": 4738, + "src": "257:8:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", + "typeIdentifier": "t_contract$_SafeMath_$4738", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "251:24:7", + "src": "251:24:30", "typeName": { - "id": 1696, + "id": 3438, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "270:4:7", + "src": "270:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1833,11 +1833,11 @@ export const DummyToken = }, { "constant": false, - "id": 1699, + "id": 3441, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1787, - "src": "278:18:7", + "scope": 3529, + "src": "278:18:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1845,10 +1845,10 @@ export const DummyToken = "typeString": "string" }, "typeName": { - "id": 1698, + "id": 3440, "name": "string", "nodeType": "ElementaryTypeName", - "src": "278:6:7", + "src": "278:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1859,11 +1859,11 @@ export const DummyToken = }, { "constant": false, - "id": 1701, + "id": 3443, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1787, - "src": "300:20:7", + "scope": 3529, + "src": "300:20:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1871,10 +1871,10 @@ export const DummyToken = "typeString": "string" }, "typeName": { - "id": 1700, + "id": 3442, "name": "string", "nodeType": "ElementaryTypeName", - "src": "300:6:7", + "src": "300:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1885,11 +1885,11 @@ export const DummyToken = }, { "constant": false, - "id": 1703, + "id": 3445, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 1787, - "src": "324:20:7", + "scope": 3529, + "src": "324:20:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1897,10 +1897,10 @@ export const DummyToken = "typeString": "uint256" }, "typeName": { - "id": 1702, + "id": 3444, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "324:4:7", + "src": "324:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1911,26 +1911,26 @@ export const DummyToken = }, { "body": { - "id": 1737, + "id": 3479, "nodeType": "Block", - "src": "456:145:7", + "src": "456:145:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 1716, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1714, + "id": 3456, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1699, - "src": "462:4:7", + "referencedDeclaration": 3441, + "src": "462:4:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -1940,43 +1940,43 @@ export const DummyToken = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1715, + "id": 3457, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "469:5:7", + "referencedDeclaration": 3447, + "src": "469:5:30", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "462:12:7", + "src": "462:12:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1717, + "id": 3459, "nodeType": "ExpressionStatement", - "src": "462:12:7" + "src": "462:12:30" }, { "expression": { "argumentTypes": null, - "id": 1720, + "id": 3462, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1718, + "id": 3460, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1701, - "src": "480:6:7", + "referencedDeclaration": 3443, + "src": "480:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -1986,43 +1986,43 @@ export const DummyToken = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1719, + "id": 3461, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1707, - "src": "489:7:7", + "referencedDeclaration": 3449, + "src": "489:7:30", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "480:16:7", + "src": "480:16:30", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1721, + "id": 3463, "nodeType": "ExpressionStatement", - "src": "480:16:7" + "src": "480:16:30" }, { "expression": { "argumentTypes": null, - "id": 1724, + "id": 3466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1722, + "id": 3464, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1703, - "src": "502:8:7", + "referencedDeclaration": 3445, + "src": "502:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2032,43 +2032,43 @@ export const DummyToken = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1723, + "id": 3465, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1709, - "src": "513:9:7", + "referencedDeclaration": 3451, + "src": "513:9:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "502:20:7", + "src": "502:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1725, + "id": 3467, "nodeType": "ExpressionStatement", - "src": "502:20:7" + "src": "502:20:30" }, { "expression": { "argumentTypes": null, - "id": 1728, + "id": 3470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1726, + "id": 3468, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "528:12:7", + "referencedDeclaration": 4839, + "src": "528:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2078,31 +2078,31 @@ export const DummyToken = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1727, + "id": 3469, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1711, - "src": "543:12:7", + "referencedDeclaration": 3453, + "src": "543:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "528:27:7", + "src": "528:27:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1729, + "id": 3471, "nodeType": "ExpressionStatement", - "src": "528:27:7" + "src": "528:27:30" }, { "expression": { "argumentTypes": null, - "id": 1735, + "id": 3477, "isConstant": false, "isLValue": false, "isPure": false, @@ -2111,34 +2111,34 @@ export const DummyToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1730, + "id": 3472, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "561:8:7", + "referencedDeclaration": 4837, + "src": "561:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1733, + "id": 3475, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1731, + "id": 3473, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "570:3:7", + "referencedDeclaration": 5397, + "src": "570:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1732, + "id": 3474, "isConstant": false, "isLValue": false, "isPure": false, @@ -2146,7 +2146,7 @@ export const DummyToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "570:10:7", + "src": "570:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2157,7 +2157,7 @@ export const DummyToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "561:20:7", + "src": "561:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2167,31 +2167,31 @@ export const DummyToken = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1734, + "id": 3476, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1711, - "src": "584:12:7", + "referencedDeclaration": 3453, + "src": "584:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "561:35:7", + "src": "561:35:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1736, + "id": 3478, "nodeType": "ExpressionStatement", - "src": "561:35:7" + "src": "561:35:30" } ] }, "documentation": null, - "id": 1738, + "id": 3480, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2199,16 +2199,16 @@ export const DummyToken = "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1712, + "id": 3454, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1705, + "id": 3447, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "366:12:7", + "scope": 3480, + "src": "366:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2216,10 +2216,10 @@ export const DummyToken = "typeString": "string" }, "typeName": { - "id": 1704, + "id": 3446, "name": "string", "nodeType": "ElementaryTypeName", - "src": "366:6:7", + "src": "366:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2230,11 +2230,11 @@ export const DummyToken = }, { "constant": false, - "id": 1707, + "id": 3449, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "384:14:7", + "scope": 3480, + "src": "384:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2242,10 +2242,10 @@ export const DummyToken = "typeString": "string" }, "typeName": { - "id": 1706, + "id": 3448, "name": "string", "nodeType": "ElementaryTypeName", - "src": "384:6:7", + "src": "384:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2256,11 +2256,11 @@ export const DummyToken = }, { "constant": false, - "id": 1709, + "id": 3451, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "404:14:7", + "scope": 3480, + "src": "404:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2268,10 +2268,10 @@ export const DummyToken = "typeString": "uint256" }, "typeName": { - "id": 1708, + "id": 3450, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "404:4:7", + "src": "404:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2282,11 +2282,11 @@ export const DummyToken = }, { "constant": false, - "id": 1711, + "id": 3453, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "424:17:7", + "scope": 3480, + "src": "424:17:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2294,10 +2294,10 @@ export const DummyToken = "typeString": "uint256" }, "typeName": { - "id": 1710, + "id": 3452, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "424:4:7", + "src": "424:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2307,39 +2307,39 @@ export const DummyToken = "visibility": "internal" } ], - "src": "360:82:7" + "src": "360:82:30" }, "payable": false, "returnParameters": { - "id": 1713, + "id": 3455, "nodeType": "ParameterList", "parameters": [], - "src": "456:0:7" + "src": "456:0:30" }, - "scope": 1787, - "src": "349:252:7", + "scope": 3529, + "src": "349:252:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1785, + "id": 3527, "nodeType": "Block", - "src": "672:263:7", + "src": "672:263:30", "statements": [ { "assignments": [ - 1748 + 3490 ], "declarations": [ { "constant": false, - "id": 1748, + "id": 3490, "name": "currBalance", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "678:16:7", + "scope": 3528, + "src": "678:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2347,10 +2347,10 @@ export const DummyToken = "typeString": "uint256" }, "typeName": { - "id": 1747, + "id": 3489, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "678:4:7", + "src": "678:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2360,18 +2360,18 @@ export const DummyToken = "visibility": "internal" } ], - "id": 1752, + "id": 3494, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1750, + "id": 3492, "name": "_target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1740, - "src": "707:7:7", + "referencedDeclaration": 3482, + "src": "707:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2385,20 +2385,20 @@ export const DummyToken = "typeString": "address" } ], - "id": 1749, + "id": 3491, "name": "balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [ - 2336 + 4919 ], - "referencedDeclaration": 2336, - "src": "697:9:7", + "referencedDeclaration": 4919, + "src": "697:9:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 1751, + "id": 3493, "isConstant": false, "isLValue": false, "isPure": false, @@ -2406,14 +2406,14 @@ export const DummyToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "697:18:7", + "src": "697:18:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "678:37:7" + "src": "678:37:30" }, { "condition": { @@ -2422,19 +2422,19 @@ export const DummyToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1755, + "id": 3497, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1753, + "id": 3495, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "725:6:7", + "referencedDeclaration": 3484, + "src": "725:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2444,44 +2444,44 @@ export const DummyToken = "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1754, + "id": 3496, "name": "currBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "734:11:7", + "referencedDeclaration": 3490, + "src": "734:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "725:20:7", + "src": "725:20:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1777, + "id": 3519, "nodeType": "Block", - "src": "826:73:7", + "src": "826:73:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 1775, + "id": 3517, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1767, + "id": 3509, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "836:12:7", + "referencedDeclaration": 4839, + "src": "836:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2497,12 +2497,12 @@ export const DummyToken = "arguments": [ { "argumentTypes": null, - "id": 1772, + "id": 3514, "name": "currBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "879:11:7", + "referencedDeclaration": 3490, + "src": "879:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2518,32 +2518,32 @@ export const DummyToken = ], "expression": { "argumentTypes": null, - "id": 1770, + "id": 3512, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "868:6:7", + "referencedDeclaration": 3484, + "src": "868:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1771, + "id": 3513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "868:10:7", + "referencedDeclaration": 4713, + "src": "868:10:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1773, + "id": 3515, "isConstant": false, "isLValue": false, "isPure": false, @@ -2551,7 +2551,7 @@ export const DummyToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "868:23:7", + "src": "868:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2567,32 +2567,32 @@ export const DummyToken = ], "expression": { "argumentTypes": null, - "id": 1768, + "id": 3510, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "851:12:7", + "referencedDeclaration": 4839, + "src": "851:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1769, + "id": 3511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "851:16:7", + "referencedDeclaration": 4737, + "src": "851:16:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1774, + "id": 3516, "isConstant": false, "isLValue": false, "isPure": false, @@ -2600,48 +2600,48 @@ export const DummyToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "851:41:7", + "src": "851:41:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "836:56:7", + "src": "836:56:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1776, + "id": 3518, "nodeType": "ExpressionStatement", - "src": "836:56:7" + "src": "836:56:30" } ] }, - "id": 1778, + "id": 3520, "nodeType": "IfStatement", - "src": "721:178:7", + "src": "721:178:30", "trueBody": { - "id": 1766, + "id": 3508, "nodeType": "Block", - "src": "747:73:7", + "src": "747:73:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 1764, + "id": 3506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1756, + "id": 3498, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "757:12:7", + "referencedDeclaration": 4839, + "src": "757:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2657,12 +2657,12 @@ export const DummyToken = "arguments": [ { "argumentTypes": null, - "id": 1761, + "id": 3503, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "805:6:7", + "referencedDeclaration": 3484, + "src": "805:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2678,32 +2678,32 @@ export const DummyToken = ], "expression": { "argumentTypes": null, - "id": 1759, + "id": 3501, "name": "currBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "789:11:7", + "referencedDeclaration": 3490, + "src": "789:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1760, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "789:15:7", + "referencedDeclaration": 4713, + "src": "789:15:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1762, + "id": 3504, "isConstant": false, "isLValue": false, "isPure": false, @@ -2711,7 +2711,7 @@ export const DummyToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "789:23:7", + "src": "789:23:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2727,32 +2727,32 @@ export const DummyToken = ], "expression": { "argumentTypes": null, - "id": 1757, + "id": 3499, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "772:12:7", + "referencedDeclaration": 4839, + "src": "772:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1758, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "772:16:7", + "referencedDeclaration": 4713, + "src": "772:16:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1763, + "id": 3505, "isConstant": false, "isLValue": false, "isPure": false, @@ -2760,21 +2760,21 @@ export const DummyToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "772:41:7", + "src": "772:41:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "757:56:7", + "src": "757:56:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1765, + "id": 3507, "nodeType": "ExpressionStatement", - "src": "757:56:7" + "src": "757:56:30" } ] } @@ -2782,7 +2782,7 @@ export const DummyToken = { "expression": { "argumentTypes": null, - "id": 1783, + "id": 3525, "isConstant": false, "isLValue": false, "isPure": false, @@ -2791,26 +2791,26 @@ export const DummyToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1779, + "id": 3521, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "904:8:7", + "referencedDeclaration": 4837, + "src": "904:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1781, + "id": 3523, "indexExpression": { "argumentTypes": null, - "id": 1780, + "id": 3522, "name": "_target", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1740, - "src": "913:7:7", + "referencedDeclaration": 3482, + "src": "913:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2821,7 +2821,7 @@ export const DummyToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "904:17:7", + "src": "904:17:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2831,68 +2831,68 @@ export const DummyToken = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1782, + "id": 3524, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "924:6:7", + "referencedDeclaration": 3484, + "src": "924:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "904:26:7", + "src": "904:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1784, + "id": 3526, "nodeType": "ExpressionStatement", - "src": "904:26:7" + "src": "904:26:30" } ] }, "documentation": null, - "id": 1786, + "id": 3528, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1745, + "id": 3487, "modifierName": { "argumentTypes": null, - "id": 1744, + "id": 3486, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "662:9:7", + "referencedDeclaration": 4772, + "src": "662:9:30", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "662:9:7" + "src": "662:9:30" } ], "name": "setBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1743, + "id": 3485, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1740, + "id": 3482, "name": "_target", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "625:15:7", + "scope": 3528, + "src": "625:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2900,10 +2900,10 @@ export const DummyToken = "typeString": "address" }, "typeName": { - "id": 1739, + "id": 3481, "name": "address", "nodeType": "ElementaryTypeName", - "src": "625:7:7", + "src": "625:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2914,11 +2914,11 @@ export const DummyToken = }, { "constant": false, - "id": 1742, + "id": 3484, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 1786, - "src": "642:11:7", + "scope": 3528, + "src": "642:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2926,10 +2926,10 @@ export const DummyToken = "typeString": "uint256" }, "typeName": { - "id": 1741, + "id": 3483, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "642:4:7", + "src": "642:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2939,33 +2939,33 @@ export const DummyToken = "visibility": "internal" } ], - "src": "624:30:7" + "src": "624:30:30" }, "payable": false, "returnParameters": { - "id": 1746, + "id": 3488, "nodeType": "ParameterList", "parameters": [], - "src": "672:0:7" + "src": "672:0:30" }, - "scope": 1787, - "src": "605:330:7", + "scope": 3529, + "src": "605:330:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1788, - "src": "210:727:7" + "scope": 3530, + "src": "210:727:30" } ], - "src": "0:938:7" + "src": "0:938:30" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.579Z" + "updatedAt": "2018-07-07T07:45:08.909Z" } \ No newline at end of file diff --git a/artifacts/ts/ERC20.ts b/artifacts/ts/ERC20.ts index 628b63736..136c46cb1 100644 --- a/artifacts/ts/ERC20.ts +++ b/artifacts/ts/ERC20.ts @@ -186,14 +186,14 @@ export const ERC20 = "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "ERC20": [ - 2414 + 1142 ] }, - "id": 2415, + "id": 1143, "nodeType": "SourceUnit", "nodes": [ { - "id": 2373, + "id": 1101, "literals": [ "solidity", "^", @@ -201,16 +201,16 @@ export const ERC20 = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:14" + "src": "0:24:8" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "file": "./ERC20Basic.sol", - "id": 2374, + "id": 1102, "nodeType": "ImportDirective", - "scope": 2415, - "sourceUnit": 2447, - "src": "26:26:14", + "scope": 1143, + "sourceUnit": 1175, + "src": "26:26:8", "symbolAliases": [], "unitAlias": "" }, @@ -220,31 +220,31 @@ export const ERC20 = "arguments": null, "baseName": { "contractScope": null, - "id": 2375, + "id": 1103, "name": "ERC20Basic", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2446, - "src": "162:10:14", + "referencedDeclaration": 1174, + "src": "162:10:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$2446", + "typeIdentifier": "t_contract$_ERC20Basic_$1174", "typeString": "contract ERC20Basic" } }, - "id": 2376, + "id": 1104, "nodeType": "InheritanceSpecifier", - "src": "162:10:14" + "src": "162:10:8" } ], "contractDependencies": [ - 2446 + 1174 ], "contractKind": "contract", "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", "fullyImplemented": false, - "id": 2414, + "id": 1142, "linearizedBaseContracts": [ - 2414, - 2446 + 1142, + 1174 ], "name": "ERC20", "nodeType": "ContractDefinition", @@ -252,7 +252,7 @@ export const ERC20 = { "body": null, "documentation": null, - "id": 2385, + "id": 1113, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -260,16 +260,16 @@ export const ERC20 = "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2381, + "id": 1109, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2378, + "id": 1106, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2385, - "src": "196:13:14", + "scope": 1113, + "src": "196:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -277,10 +277,10 @@ export const ERC20 = "typeString": "address" }, "typeName": { - "id": 2377, + "id": 1105, "name": "address", "nodeType": "ElementaryTypeName", - "src": "196:7:14", + "src": "196:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -291,11 +291,11 @@ export const ERC20 = }, { "constant": false, - "id": 2380, + "id": 1108, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2385, - "src": "211:15:14", + "scope": 1113, + "src": "211:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -303,10 +303,10 @@ export const ERC20 = "typeString": "address" }, "typeName": { - "id": 2379, + "id": 1107, "name": "address", "nodeType": "ElementaryTypeName", - "src": "211:7:14", + "src": "211:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -316,20 +316,20 @@ export const ERC20 = "visibility": "internal" } ], - "src": "195:32:14" + "src": "195:32:8" }, "payable": false, "returnParameters": { - "id": 2384, + "id": 1112, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2383, + "id": 1111, "name": "", "nodeType": "VariableDeclaration", - "scope": 2385, - "src": "253:7:14", + "scope": 1113, + "src": "253:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -337,10 +337,10 @@ export const ERC20 = "typeString": "uint256" }, "typeName": { - "id": 2382, + "id": 1110, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "253:7:14", + "src": "253:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -350,10 +350,10 @@ export const ERC20 = "visibility": "internal" } ], - "src": "252:9:14" + "src": "252:9:8" }, - "scope": 2414, - "src": "177:85:14", + "scope": 1142, + "src": "177:85:8", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -361,7 +361,7 @@ export const ERC20 = { "body": null, "documentation": null, - "id": 2396, + "id": 1124, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -369,16 +369,16 @@ export const ERC20 = "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 2392, + "id": 1120, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2387, + "id": 1115, "name": "from", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "288:12:14", + "scope": 1124, + "src": "288:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -386,10 +386,10 @@ export const ERC20 = "typeString": "address" }, "typeName": { - "id": 2386, + "id": 1114, "name": "address", "nodeType": "ElementaryTypeName", - "src": "288:7:14", + "src": "288:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -400,11 +400,11 @@ export const ERC20 = }, { "constant": false, - "id": 2389, + "id": 1117, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "302:10:14", + "scope": 1124, + "src": "302:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -412,10 +412,10 @@ export const ERC20 = "typeString": "address" }, "typeName": { - "id": 2388, + "id": 1116, "name": "address", "nodeType": "ElementaryTypeName", - "src": "302:7:14", + "src": "302:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -426,11 +426,11 @@ export const ERC20 = }, { "constant": false, - "id": 2391, + "id": 1119, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "314:13:14", + "scope": 1124, + "src": "314:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -438,10 +438,10 @@ export const ERC20 = "typeString": "uint256" }, "typeName": { - "id": 2390, + "id": 1118, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "314:7:14", + "src": "314:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -451,20 +451,20 @@ export const ERC20 = "visibility": "internal" } ], - "src": "287:41:14" + "src": "287:41:8" }, "payable": false, "returnParameters": { - "id": 2395, + "id": 1123, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2394, + "id": 1122, "name": "", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "349:4:14", + "scope": 1124, + "src": "349:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -472,10 +472,10 @@ export const ERC20 = "typeString": "bool" }, "typeName": { - "id": 2393, + "id": 1121, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "349:4:14", + "src": "349:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -485,10 +485,10 @@ export const ERC20 = "visibility": "internal" } ], - "src": "348:6:14" + "src": "348:6:8" }, - "scope": 2414, - "src": "266:89:14", + "scope": 1142, + "src": "266:89:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -496,7 +496,7 @@ export const ERC20 = { "body": null, "documentation": null, - "id": 2405, + "id": 1133, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -504,16 +504,16 @@ export const ERC20 = "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 2401, + "id": 1129, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2398, + "id": 1126, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2405, - "src": "376:15:14", + "scope": 1133, + "src": "376:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -521,10 +521,10 @@ export const ERC20 = "typeString": "address" }, "typeName": { - "id": 2397, + "id": 1125, "name": "address", "nodeType": "ElementaryTypeName", - "src": "376:7:14", + "src": "376:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -535,11 +535,11 @@ export const ERC20 = }, { "constant": false, - "id": 2400, + "id": 1128, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2405, - "src": "393:13:14", + "scope": 1133, + "src": "393:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -547,10 +547,10 @@ export const ERC20 = "typeString": "uint256" }, "typeName": { - "id": 2399, + "id": 1127, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "393:7:14", + "src": "393:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -560,20 +560,20 @@ export const ERC20 = "visibility": "internal" } ], - "src": "375:32:14" + "src": "375:32:8" }, "payable": false, "returnParameters": { - "id": 2404, + "id": 1132, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2403, + "id": 1131, "name": "", "nodeType": "VariableDeclaration", - "scope": 2405, - "src": "424:4:14", + "scope": 1133, + "src": "424:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -581,10 +581,10 @@ export const ERC20 = "typeString": "bool" }, "typeName": { - "id": 2402, + "id": 1130, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "424:4:14", + "src": "424:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -594,10 +594,10 @@ export const ERC20 = "visibility": "internal" } ], - "src": "423:6:14" + "src": "423:6:8" }, - "scope": 2414, - "src": "359:71:14", + "scope": 1142, + "src": "359:71:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -605,21 +605,21 @@ export const ERC20 = { "anonymous": false, "documentation": null, - "id": 2413, + "id": 1141, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 2412, + "id": 1140, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2407, + "id": 1135, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "453:21:14", + "scope": 1141, + "src": "453:21:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -627,10 +627,10 @@ export const ERC20 = "typeString": "address" }, "typeName": { - "id": 2406, + "id": 1134, "name": "address", "nodeType": "ElementaryTypeName", - "src": "453:7:14", + "src": "453:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -641,12 +641,12 @@ export const ERC20 = }, { "constant": false, - "id": 2409, + "id": 1137, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "480:23:14", + "scope": 1141, + "src": "480:23:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -654,10 +654,10 @@ export const ERC20 = "typeString": "address" }, "typeName": { - "id": 2408, + "id": 1136, "name": "address", "nodeType": "ElementaryTypeName", - "src": "480:7:14", + "src": "480:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -668,12 +668,12 @@ export const ERC20 = }, { "constant": false, - "id": 2411, + "id": 1139, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "509:13:14", + "scope": 1141, + "src": "509:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -681,10 +681,10 @@ export const ERC20 = "typeString": "uint256" }, "typeName": { - "id": 2410, + "id": 1138, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "509:7:14", + "src": "509:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -694,29 +694,29 @@ export const ERC20 = "visibility": "internal" } ], - "src": "447:79:14" + "src": "447:79:8" }, - "src": "433:94:14" + "src": "433:94:8" } ], - "scope": 2415, - "src": "144:385:14" + "scope": 1143, + "src": "144:385:8" } ], - "src": "0:530:14" + "src": "0:530:8" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "ERC20": [ - 2414 + 1142 ] }, - "id": 2415, + "id": 1143, "nodeType": "SourceUnit", "nodes": [ { - "id": 2373, + "id": 1101, "literals": [ "solidity", "^", @@ -724,16 +724,16 @@ export const ERC20 = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:14" + "src": "0:24:8" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "file": "./ERC20Basic.sol", - "id": 2374, + "id": 1102, "nodeType": "ImportDirective", - "scope": 2415, - "sourceUnit": 2447, - "src": "26:26:14", + "scope": 1143, + "sourceUnit": 1175, + "src": "26:26:8", "symbolAliases": [], "unitAlias": "" }, @@ -743,31 +743,31 @@ export const ERC20 = "arguments": null, "baseName": { "contractScope": null, - "id": 2375, + "id": 1103, "name": "ERC20Basic", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2446, - "src": "162:10:14", + "referencedDeclaration": 1174, + "src": "162:10:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$2446", + "typeIdentifier": "t_contract$_ERC20Basic_$1174", "typeString": "contract ERC20Basic" } }, - "id": 2376, + "id": 1104, "nodeType": "InheritanceSpecifier", - "src": "162:10:14" + "src": "162:10:8" } ], "contractDependencies": [ - 2446 + 1174 ], "contractKind": "contract", "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", "fullyImplemented": false, - "id": 2414, + "id": 1142, "linearizedBaseContracts": [ - 2414, - 2446 + 1142, + 1174 ], "name": "ERC20", "nodeType": "ContractDefinition", @@ -775,7 +775,7 @@ export const ERC20 = { "body": null, "documentation": null, - "id": 2385, + "id": 1113, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -783,16 +783,16 @@ export const ERC20 = "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2381, + "id": 1109, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2378, + "id": 1106, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2385, - "src": "196:13:14", + "scope": 1113, + "src": "196:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -800,10 +800,10 @@ export const ERC20 = "typeString": "address" }, "typeName": { - "id": 2377, + "id": 1105, "name": "address", "nodeType": "ElementaryTypeName", - "src": "196:7:14", + "src": "196:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -814,11 +814,11 @@ export const ERC20 = }, { "constant": false, - "id": 2380, + "id": 1108, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2385, - "src": "211:15:14", + "scope": 1113, + "src": "211:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -826,10 +826,10 @@ export const ERC20 = "typeString": "address" }, "typeName": { - "id": 2379, + "id": 1107, "name": "address", "nodeType": "ElementaryTypeName", - "src": "211:7:14", + "src": "211:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -839,20 +839,20 @@ export const ERC20 = "visibility": "internal" } ], - "src": "195:32:14" + "src": "195:32:8" }, "payable": false, "returnParameters": { - "id": 2384, + "id": 1112, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2383, + "id": 1111, "name": "", "nodeType": "VariableDeclaration", - "scope": 2385, - "src": "253:7:14", + "scope": 1113, + "src": "253:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -860,10 +860,10 @@ export const ERC20 = "typeString": "uint256" }, "typeName": { - "id": 2382, + "id": 1110, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "253:7:14", + "src": "253:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -873,10 +873,10 @@ export const ERC20 = "visibility": "internal" } ], - "src": "252:9:14" + "src": "252:9:8" }, - "scope": 2414, - "src": "177:85:14", + "scope": 1142, + "src": "177:85:8", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -884,7 +884,7 @@ export const ERC20 = { "body": null, "documentation": null, - "id": 2396, + "id": 1124, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -892,16 +892,16 @@ export const ERC20 = "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 2392, + "id": 1120, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2387, + "id": 1115, "name": "from", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "288:12:14", + "scope": 1124, + "src": "288:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -909,10 +909,10 @@ export const ERC20 = "typeString": "address" }, "typeName": { - "id": 2386, + "id": 1114, "name": "address", "nodeType": "ElementaryTypeName", - "src": "288:7:14", + "src": "288:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -923,11 +923,11 @@ export const ERC20 = }, { "constant": false, - "id": 2389, + "id": 1117, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "302:10:14", + "scope": 1124, + "src": "302:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -935,10 +935,10 @@ export const ERC20 = "typeString": "address" }, "typeName": { - "id": 2388, + "id": 1116, "name": "address", "nodeType": "ElementaryTypeName", - "src": "302:7:14", + "src": "302:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -949,11 +949,11 @@ export const ERC20 = }, { "constant": false, - "id": 2391, + "id": 1119, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "314:13:14", + "scope": 1124, + "src": "314:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -961,10 +961,10 @@ export const ERC20 = "typeString": "uint256" }, "typeName": { - "id": 2390, + "id": 1118, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "314:7:14", + "src": "314:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -974,20 +974,20 @@ export const ERC20 = "visibility": "internal" } ], - "src": "287:41:14" + "src": "287:41:8" }, "payable": false, "returnParameters": { - "id": 2395, + "id": 1123, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2394, + "id": 1122, "name": "", "nodeType": "VariableDeclaration", - "scope": 2396, - "src": "349:4:14", + "scope": 1124, + "src": "349:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -995,10 +995,10 @@ export const ERC20 = "typeString": "bool" }, "typeName": { - "id": 2393, + "id": 1121, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "349:4:14", + "src": "349:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1008,10 +1008,10 @@ export const ERC20 = "visibility": "internal" } ], - "src": "348:6:14" + "src": "348:6:8" }, - "scope": 2414, - "src": "266:89:14", + "scope": 1142, + "src": "266:89:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1019,7 +1019,7 @@ export const ERC20 = { "body": null, "documentation": null, - "id": 2405, + "id": 1133, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1027,16 +1027,16 @@ export const ERC20 = "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 2401, + "id": 1129, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2398, + "id": 1126, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2405, - "src": "376:15:14", + "scope": 1133, + "src": "376:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1044,10 +1044,10 @@ export const ERC20 = "typeString": "address" }, "typeName": { - "id": 2397, + "id": 1125, "name": "address", "nodeType": "ElementaryTypeName", - "src": "376:7:14", + "src": "376:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1058,11 +1058,11 @@ export const ERC20 = }, { "constant": false, - "id": 2400, + "id": 1128, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2405, - "src": "393:13:14", + "scope": 1133, + "src": "393:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1070,10 +1070,10 @@ export const ERC20 = "typeString": "uint256" }, "typeName": { - "id": 2399, + "id": 1127, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "393:7:14", + "src": "393:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1083,20 +1083,20 @@ export const ERC20 = "visibility": "internal" } ], - "src": "375:32:14" + "src": "375:32:8" }, "payable": false, "returnParameters": { - "id": 2404, + "id": 1132, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2403, + "id": 1131, "name": "", "nodeType": "VariableDeclaration", - "scope": 2405, - "src": "424:4:14", + "scope": 1133, + "src": "424:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1104,10 +1104,10 @@ export const ERC20 = "typeString": "bool" }, "typeName": { - "id": 2402, + "id": 1130, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "424:4:14", + "src": "424:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1117,10 +1117,10 @@ export const ERC20 = "visibility": "internal" } ], - "src": "423:6:14" + "src": "423:6:8" }, - "scope": 2414, - "src": "359:71:14", + "scope": 1142, + "src": "359:71:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1128,21 +1128,21 @@ export const ERC20 = { "anonymous": false, "documentation": null, - "id": 2413, + "id": 1141, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 2412, + "id": 1140, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2407, + "id": 1135, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "453:21:14", + "scope": 1141, + "src": "453:21:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1150,10 +1150,10 @@ export const ERC20 = "typeString": "address" }, "typeName": { - "id": 2406, + "id": 1134, "name": "address", "nodeType": "ElementaryTypeName", - "src": "453:7:14", + "src": "453:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1164,12 +1164,12 @@ export const ERC20 = }, { "constant": false, - "id": 2409, + "id": 1137, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "480:23:14", + "scope": 1141, + "src": "480:23:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1177,10 +1177,10 @@ export const ERC20 = "typeString": "address" }, "typeName": { - "id": 2408, + "id": 1136, "name": "address", "nodeType": "ElementaryTypeName", - "src": "480:7:14", + "src": "480:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1191,12 +1191,12 @@ export const ERC20 = }, { "constant": false, - "id": 2411, + "id": 1139, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "509:13:14", + "scope": 1141, + "src": "509:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1204,10 +1204,10 @@ export const ERC20 = "typeString": "uint256" }, "typeName": { - "id": 2410, + "id": 1138, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "509:7:14", + "src": "509:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1217,22 +1217,22 @@ export const ERC20 = "visibility": "internal" } ], - "src": "447:79:14" + "src": "447:79:8" }, - "src": "433:94:14" + "src": "433:94:8" } ], - "scope": 2415, - "src": "144:385:14" + "scope": 1143, + "src": "144:385:8" } ], - "src": "0:530:14" + "src": "0:530:8" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.588Z" + "updatedAt": "2018-07-07T15:28:53.738Z" } \ No newline at end of file diff --git a/artifacts/ts/ERC20Basic.ts b/artifacts/ts/ERC20Basic.ts index 49647ea01..3799c4a9a 100644 --- a/artifacts/ts/ERC20Basic.ts +++ b/artifacts/ts/ERC20Basic.ts @@ -91,14 +91,14 @@ export const ERC20Basic = "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "exportedSymbols": { "ERC20Basic": [ - 2446 + 1174 ] }, - "id": 2447, + "id": 1175, "nodeType": "SourceUnit", "nodes": [ { - "id": 2416, + "id": 1144, "literals": [ "solidity", "^", @@ -106,7 +106,7 @@ export const ERC20Basic = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:15" + "src": "0:24:9" }, { "baseContracts": [], @@ -114,9 +114,9 @@ export const ERC20Basic = "contractKind": "contract", "documentation": "@title ERC20Basic\n@dev Simpler version of ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/179", "fullyImplemented": false, - "id": 2446, + "id": 1174, "linearizedBaseContracts": [ - 2446 + 1174 ], "name": "ERC20Basic", "nodeType": "ContractDefinition", @@ -124,7 +124,7 @@ export const ERC20Basic = { "body": null, "documentation": null, - "id": 2421, + "id": 1149, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -132,23 +132,23 @@ export const ERC20Basic = "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 2417, + "id": 1145, "nodeType": "ParameterList", "parameters": [], - "src": "199:2:15" + "src": "199:2:9" }, "payable": false, "returnParameters": { - "id": 2420, + "id": 1148, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2419, + "id": 1147, "name": "", "nodeType": "VariableDeclaration", - "scope": 2421, - "src": "223:7:15", + "scope": 1149, + "src": "223:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -156,10 +156,10 @@ export const ERC20Basic = "typeString": "uint256" }, "typeName": { - "id": 2418, + "id": 1146, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "223:7:15", + "src": "223:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -169,10 +169,10 @@ export const ERC20Basic = "visibility": "internal" } ], - "src": "222:9:15" + "src": "222:9:9" }, - "scope": 2446, - "src": "179:53:15", + "scope": 1174, + "src": "179:53:9", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -180,7 +180,7 @@ export const ERC20Basic = { "body": null, "documentation": null, - "id": 2428, + "id": 1156, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -188,16 +188,16 @@ export const ERC20Basic = "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 2424, + "id": 1152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2423, + "id": 1151, "name": "who", "nodeType": "VariableDeclaration", - "scope": 2428, - "src": "254:11:15", + "scope": 1156, + "src": "254:11:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -205,10 +205,10 @@ export const ERC20Basic = "typeString": "address" }, "typeName": { - "id": 2422, + "id": 1150, "name": "address", "nodeType": "ElementaryTypeName", - "src": "254:7:15", + "src": "254:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -218,20 +218,20 @@ export const ERC20Basic = "visibility": "internal" } ], - "src": "253:13:15" + "src": "253:13:9" }, "payable": false, "returnParameters": { - "id": 2427, + "id": 1155, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2426, + "id": 1154, "name": "", "nodeType": "VariableDeclaration", - "scope": 2428, - "src": "288:7:15", + "scope": 1156, + "src": "288:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -239,10 +239,10 @@ export const ERC20Basic = "typeString": "uint256" }, "typeName": { - "id": 2425, + "id": 1153, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "288:7:15", + "src": "288:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -252,10 +252,10 @@ export const ERC20Basic = "visibility": "internal" } ], - "src": "287:9:15" + "src": "287:9:9" }, - "scope": 2446, - "src": "235:62:15", + "scope": 1174, + "src": "235:62:9", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -263,7 +263,7 @@ export const ERC20Basic = { "body": null, "documentation": null, - "id": 2437, + "id": 1165, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -271,16 +271,16 @@ export const ERC20Basic = "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 2433, + "id": 1161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2430, + "id": 1158, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "318:10:15", + "scope": 1165, + "src": "318:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -288,10 +288,10 @@ export const ERC20Basic = "typeString": "address" }, "typeName": { - "id": 2429, + "id": 1157, "name": "address", "nodeType": "ElementaryTypeName", - "src": "318:7:15", + "src": "318:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -302,11 +302,11 @@ export const ERC20Basic = }, { "constant": false, - "id": 2432, + "id": 1160, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "330:13:15", + "scope": 1165, + "src": "330:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -314,10 +314,10 @@ export const ERC20Basic = "typeString": "uint256" }, "typeName": { - "id": 2431, + "id": 1159, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "330:7:15", + "src": "330:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -327,20 +327,20 @@ export const ERC20Basic = "visibility": "internal" } ], - "src": "317:27:15" + "src": "317:27:9" }, "payable": false, "returnParameters": { - "id": 2436, + "id": 1164, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2435, + "id": 1163, "name": "", "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "361:4:15", + "scope": 1165, + "src": "361:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -348,10 +348,10 @@ export const ERC20Basic = "typeString": "bool" }, "typeName": { - "id": 2434, + "id": 1162, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "361:4:15", + "src": "361:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -361,10 +361,10 @@ export const ERC20Basic = "visibility": "internal" } ], - "src": "360:6:15" + "src": "360:6:9" }, - "scope": 2446, - "src": "300:67:15", + "scope": 1174, + "src": "300:67:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -372,21 +372,21 @@ export const ERC20Basic = { "anonymous": false, "documentation": null, - "id": 2445, + "id": 1173, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 2444, + "id": 1172, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2439, + "id": 1167, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 2445, - "src": "385:20:15", + "scope": 1173, + "src": "385:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -394,10 +394,10 @@ export const ERC20Basic = "typeString": "address" }, "typeName": { - "id": 2438, + "id": 1166, "name": "address", "nodeType": "ElementaryTypeName", - "src": "385:7:15", + "src": "385:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -408,12 +408,12 @@ export const ERC20Basic = }, { "constant": false, - "id": 2441, + "id": 1169, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2445, - "src": "407:18:15", + "scope": 1173, + "src": "407:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -421,10 +421,10 @@ export const ERC20Basic = "typeString": "address" }, "typeName": { - "id": 2440, + "id": 1168, "name": "address", "nodeType": "ElementaryTypeName", - "src": "407:7:15", + "src": "407:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -435,12 +435,12 @@ export const ERC20Basic = }, { "constant": false, - "id": 2443, + "id": 1171, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2445, - "src": "427:13:15", + "scope": 1173, + "src": "427:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -448,10 +448,10 @@ export const ERC20Basic = "typeString": "uint256" }, "typeName": { - "id": 2442, + "id": 1170, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "427:7:15", + "src": "427:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -461,29 +461,29 @@ export const ERC20Basic = "visibility": "internal" } ], - "src": "384:57:15" + "src": "384:57:9" }, - "src": "370:72:15" + "src": "370:72:9" } ], - "scope": 2447, - "src": "155:289:15" + "scope": 1175, + "src": "155:289:9" } ], - "src": "0:445:15" + "src": "0:445:9" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "exportedSymbols": { "ERC20Basic": [ - 2446 + 1174 ] }, - "id": 2447, + "id": 1175, "nodeType": "SourceUnit", "nodes": [ { - "id": 2416, + "id": 1144, "literals": [ "solidity", "^", @@ -491,7 +491,7 @@ export const ERC20Basic = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:15" + "src": "0:24:9" }, { "baseContracts": [], @@ -499,9 +499,9 @@ export const ERC20Basic = "contractKind": "contract", "documentation": "@title ERC20Basic\n@dev Simpler version of ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/179", "fullyImplemented": false, - "id": 2446, + "id": 1174, "linearizedBaseContracts": [ - 2446 + 1174 ], "name": "ERC20Basic", "nodeType": "ContractDefinition", @@ -509,7 +509,7 @@ export const ERC20Basic = { "body": null, "documentation": null, - "id": 2421, + "id": 1149, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -517,23 +517,23 @@ export const ERC20Basic = "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 2417, + "id": 1145, "nodeType": "ParameterList", "parameters": [], - "src": "199:2:15" + "src": "199:2:9" }, "payable": false, "returnParameters": { - "id": 2420, + "id": 1148, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2419, + "id": 1147, "name": "", "nodeType": "VariableDeclaration", - "scope": 2421, - "src": "223:7:15", + "scope": 1149, + "src": "223:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -541,10 +541,10 @@ export const ERC20Basic = "typeString": "uint256" }, "typeName": { - "id": 2418, + "id": 1146, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "223:7:15", + "src": "223:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -554,10 +554,10 @@ export const ERC20Basic = "visibility": "internal" } ], - "src": "222:9:15" + "src": "222:9:9" }, - "scope": 2446, - "src": "179:53:15", + "scope": 1174, + "src": "179:53:9", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -565,7 +565,7 @@ export const ERC20Basic = { "body": null, "documentation": null, - "id": 2428, + "id": 1156, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -573,16 +573,16 @@ export const ERC20Basic = "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 2424, + "id": 1152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2423, + "id": 1151, "name": "who", "nodeType": "VariableDeclaration", - "scope": 2428, - "src": "254:11:15", + "scope": 1156, + "src": "254:11:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -590,10 +590,10 @@ export const ERC20Basic = "typeString": "address" }, "typeName": { - "id": 2422, + "id": 1150, "name": "address", "nodeType": "ElementaryTypeName", - "src": "254:7:15", + "src": "254:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -603,20 +603,20 @@ export const ERC20Basic = "visibility": "internal" } ], - "src": "253:13:15" + "src": "253:13:9" }, "payable": false, "returnParameters": { - "id": 2427, + "id": 1155, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2426, + "id": 1154, "name": "", "nodeType": "VariableDeclaration", - "scope": 2428, - "src": "288:7:15", + "scope": 1156, + "src": "288:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -624,10 +624,10 @@ export const ERC20Basic = "typeString": "uint256" }, "typeName": { - "id": 2425, + "id": 1153, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "288:7:15", + "src": "288:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -637,10 +637,10 @@ export const ERC20Basic = "visibility": "internal" } ], - "src": "287:9:15" + "src": "287:9:9" }, - "scope": 2446, - "src": "235:62:15", + "scope": 1174, + "src": "235:62:9", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -648,7 +648,7 @@ export const ERC20Basic = { "body": null, "documentation": null, - "id": 2437, + "id": 1165, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -656,16 +656,16 @@ export const ERC20Basic = "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 2433, + "id": 1161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2430, + "id": 1158, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "318:10:15", + "scope": 1165, + "src": "318:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -673,10 +673,10 @@ export const ERC20Basic = "typeString": "address" }, "typeName": { - "id": 2429, + "id": 1157, "name": "address", "nodeType": "ElementaryTypeName", - "src": "318:7:15", + "src": "318:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -687,11 +687,11 @@ export const ERC20Basic = }, { "constant": false, - "id": 2432, + "id": 1160, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "330:13:15", + "scope": 1165, + "src": "330:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -699,10 +699,10 @@ export const ERC20Basic = "typeString": "uint256" }, "typeName": { - "id": 2431, + "id": 1159, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "330:7:15", + "src": "330:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -712,20 +712,20 @@ export const ERC20Basic = "visibility": "internal" } ], - "src": "317:27:15" + "src": "317:27:9" }, "payable": false, "returnParameters": { - "id": 2436, + "id": 1164, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2435, + "id": 1163, "name": "", "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "361:4:15", + "scope": 1165, + "src": "361:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -733,10 +733,10 @@ export const ERC20Basic = "typeString": "bool" }, "typeName": { - "id": 2434, + "id": 1162, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "361:4:15", + "src": "361:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -746,10 +746,10 @@ export const ERC20Basic = "visibility": "internal" } ], - "src": "360:6:15" + "src": "360:6:9" }, - "scope": 2446, - "src": "300:67:15", + "scope": 1174, + "src": "300:67:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -757,21 +757,21 @@ export const ERC20Basic = { "anonymous": false, "documentation": null, - "id": 2445, + "id": 1173, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 2444, + "id": 1172, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2439, + "id": 1167, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 2445, - "src": "385:20:15", + "scope": 1173, + "src": "385:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -779,10 +779,10 @@ export const ERC20Basic = "typeString": "address" }, "typeName": { - "id": 2438, + "id": 1166, "name": "address", "nodeType": "ElementaryTypeName", - "src": "385:7:15", + "src": "385:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -793,12 +793,12 @@ export const ERC20Basic = }, { "constant": false, - "id": 2441, + "id": 1169, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2445, - "src": "407:18:15", + "scope": 1173, + "src": "407:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -806,10 +806,10 @@ export const ERC20Basic = "typeString": "address" }, "typeName": { - "id": 2440, + "id": 1168, "name": "address", "nodeType": "ElementaryTypeName", - "src": "407:7:15", + "src": "407:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -820,12 +820,12 @@ export const ERC20Basic = }, { "constant": false, - "id": 2443, + "id": 1171, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2445, - "src": "427:13:15", + "scope": 1173, + "src": "427:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -833,10 +833,10 @@ export const ERC20Basic = "typeString": "uint256" }, "typeName": { - "id": 2442, + "id": 1170, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "427:7:15", + "src": "427:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -846,22 +846,22 @@ export const ERC20Basic = "visibility": "internal" } ], - "src": "384:57:15" + "src": "384:57:9" }, - "src": "370:72:15" + "src": "370:72:9" } ], - "scope": 2447, - "src": "155:289:15" + "scope": 1175, + "src": "155:289:9" } ], - "src": "0:445:15" + "src": "0:445:9" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.588Z" + "updatedAt": "2018-07-07T15:28:53.739Z" } \ No newline at end of file diff --git a/artifacts/ts/ERC20Wrapper.ts b/artifacts/ts/ERC20Wrapper.ts new file mode 100644 index 000000000..320e8045f --- /dev/null +++ b/artifacts/ts/ERC20Wrapper.ts @@ -0,0 +1,2540 @@ +export const ERC20Wrapper = +{ + "contractName": "ERC20Wrapper", + "abi": [], + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820cef480ec71070fcc1f210a6f6e9313951521ccd61304c0368bf1bd6f7fc4f26c0029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820cef480ec71070fcc1f210a6f6e9313951521ccd61304c0368bf1bd6f7fc4f26c0029", + "sourceMap": "969:2273:23:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "969:2273:23:-;;;;;;;;", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { IERC20 } from \"../../lib/IERC20.sol\";\n\n\n/**\n * @title ERC20Wrapper\n * @author Set Protocol\n *\n * This library contains functions for interacting wtih ERC20 tokens, even those not fully compliant.\n * For all functions we will only accept tokens that return a null or true value, any other values will\n * cause the operation to revert.\n */\nlibrary ERC20Wrapper {\n\n // ============ Constants ============\n\n string constant INVALID_RETURN_TRANSFER = \"Transferred token does not return null or true on successful transfer.\";\n string constant INVALID_RETURN_TRANSFERFROM = \"Transferred token does not return null or true on successful transferFrom.\";\n\n // ============ Internal Functions ============\n\n function balanceOf(\n address _tokenAddress,\n address _ownerAddress\n )\n internal\n view\n returns (uint256)\n {\n return IERC20(_tokenAddress).balanceOf(_ownerAddress);\n }\n\n function transfer(\n address _tokenAddress,\n address _to,\n uint256 _quantity\n )\n internal\n {\n IERC20(_tokenAddress).transfer(_to, _quantity);\n\n require(\n checkSuccess(),\n INVALID_RETURN_TRANSFER\n );\n }\n\n function transferFrom(\n address _tokenAddress,\n address _from,\n address _to,\n uint256 _quantity\n )\n internal\n {\n IERC20(_tokenAddress).transferFrom(_from, _to, _quantity);\n\n require(\n checkSuccess(),\n INVALID_RETURN_TRANSFERFROM\n );\n }\n\n // ============ Private Functions ============\n\n /**\n * Checks the return value of the previous function up to 32 bytes. Returns true if the previous\n * function returned 0 bytes or 1.\n */\n function checkSuccess(\n )\n private\n pure\n returns (bool)\n {\n // default to failure\n uint256 returnValue = 0;\n\n assembly {\n // check number of bytes returned from last function call\n switch returndatasize\n\n // no bytes returned: assume success\n case 0x0 {\n returnValue := 1\n }\n\n // 32 bytes returned\n case 0x20 {\n // copy 32 bytes into scratch space\n returndatacopy(0x0, 0x0, 0x20)\n\n // load those bytes into returnValue\n returnValue := mload(0x0)\n }\n\n // not sure what was returned: dont mark as success\n default { }\n }\n\n // check if returned value is one or nothing\n return returnValue == 1;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ERC20Wrapper.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ERC20Wrapper.sol", + "exportedSymbols": { + "ERC20Wrapper": [ + 2845 + ] + }, + "id": 2846, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2753, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:23" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/IERC20.sol", + "file": "../../lib/IERC20.sol", + "id": 2755, + "nodeType": "ImportDirective", + "scope": 2846, + "sourceUnit": 3349, + "src": "622:46:23", + "symbolAliases": [ + { + "foreign": 2754, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title ERC20Wrapper\n@author Set Protocol\n * This library contains functions for interacting wtih ERC20 tokens, even those not fully compliant.\nFor all functions we will only accept tokens that return a null or true value, any other values will\ncause the operation to revert.", + "fullyImplemented": true, + "id": 2845, + "linearizedBaseContracts": [ + 2845 + ], + "name": "ERC20Wrapper", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2758, + "name": "INVALID_RETURN_TRANSFER", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "1041:114:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2756, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1041:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5472616e7366657272656420746f6b656e20646f6573206e6f742072657475726e206e756c6c206f722074727565206f6e207375636365737366756c207472616e736665722e", + "id": 2757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1083:72:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6a28e8cd70cea460f64d888906c14b1e15dd90824bd08d495b1878c7147754b3", + "typeString": "literal_string \"Transferred token does not return null or true on successful transfer.\"" + }, + "value": "Transferred token does not return null or true on successful transfer." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2761, + "name": "INVALID_RETURN_TRANSFERFROM", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "1161:122:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2759, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1161:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5472616e7366657272656420746f6b656e20646f6573206e6f742072657475726e206e756c6c206f722074727565206f6e207375636365737366756c207472616e7366657246726f6d2e", + "id": 2760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1207:76:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4aa4f2ff21e6312a79f309b1750981deb687adeae13f742ac475b55c58e95666", + "typeString": "literal_string \"Transferred token does not return null or true on successful transferFrom.\"" + }, + "value": "Transferred token does not return null or true on successful transferFrom." + }, + "visibility": "internal" + }, + { + "body": { + "id": 2777, + "nodeType": "Block", + "src": "1490:70:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2774, + "name": "_ownerAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2765, + "src": "1539:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2771, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2763, + "src": "1514:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2770, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "1507:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$3348_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1507:21:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$3348", + "typeString": "contract IERC20" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 3331, + "src": "1507:31:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1507:46:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2769, + "id": 2776, + "nodeType": "Return", + "src": "1500:53:23" + } + ] + }, + "documentation": null, + "id": 2778, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2763, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2778, + "src": "1371:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2762, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1371:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2765, + "name": "_ownerAddress", + "nodeType": "VariableDeclaration", + "scope": 2778, + "src": "1402:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2764, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1402:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1361:68:23" + }, + "payable": false, + "returnParameters": { + "id": 2769, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2768, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2778, + "src": "1477:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2767, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1477:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1476:9:23" + }, + "scope": 2845, + "src": "1343:217:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2801, + "nodeType": "Block", + "src": "1690:156:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2791, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2782, + "src": "1731:3:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2792, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2784, + "src": "1736:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2788, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2780, + "src": "1707:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2787, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "1700:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$3348_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1700:21:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$3348", + "typeString": "contract IERC20" + } + }, + "id": 2790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3338, + "src": "1700:30:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 2793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1700:46:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2794, + "nodeType": "ExpressionStatement", + "src": "1700:46:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2796, + "name": "checkSuccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "1778:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bool_$", + "typeString": "function () pure returns (bool)" + } + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1778:14:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2798, + "name": "INVALID_RETURN_TRANSFER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2758, + "src": "1806:23:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2795, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1757:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1757:82:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2800, + "nodeType": "ExpressionStatement", + "src": "1757:82:23" + } + ] + }, + "documentation": null, + "id": 2802, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2780, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2802, + "src": "1593:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2779, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1593:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2782, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2802, + "src": "1624:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2781, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1624:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2784, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2802, + "src": "1645:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2783, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1645:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1583:85:23" + }, + "payable": false, + "returnParameters": { + "id": 2786, + "nodeType": "ParameterList", + "parameters": [], + "src": "1690:0:23" + }, + "scope": 2845, + "src": "1566:280:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2828, + "nodeType": "Block", + "src": "2003:171:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2817, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2806, + "src": "2048:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2818, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2808, + "src": "2055:3:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2819, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2810, + "src": "2060:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2814, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "2020:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2813, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "2013:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$3348_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2013:21:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$3348", + "typeString": "contract IERC20" + } + }, + "id": 2816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 3347, + "src": "2013:34:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 2820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2013:57:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2821, + "nodeType": "ExpressionStatement", + "src": "2013:57:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2823, + "name": "checkSuccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "2102:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bool_$", + "typeString": "function () pure returns (bool)" + } + }, + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2102:14:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2825, + "name": "INVALID_RETURN_TRANSFERFROM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2761, + "src": "2130:27:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2822, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2081:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2081:86:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2827, + "nodeType": "ExpressionStatement", + "src": "2081:86:23" + } + ] + }, + "documentation": null, + "id": 2829, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2804, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1883:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1883:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2806, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1914:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2805, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1914:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2808, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1937:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1937:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2810, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1958:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1958:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1873:108:23" + }, + "payable": false, + "returnParameters": { + "id": 2812, + "nodeType": "ParameterList", + "parameters": [], + "src": "2003:0:23" + }, + "scope": 2845, + "src": "1852:322:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2843, + "nodeType": "Block", + "src": "2473:767:23", + "statements": [ + { + "assignments": [ + 2835 + ], + "declarations": [ + { + "constant": false, + "id": 2835, + "name": "returnValue", + "nodeType": "VariableDeclaration", + "scope": 2844, + "src": "2513:19:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2513:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2837, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2535:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2513:23:23" + }, + { + "externalReferences": [ + { + "returnValue": { + "declaration": 2835, + "isOffset": false, + "isSlot": false, + "src": "3009:11:23", + "valueSize": 1 + } + }, + { + "returnValue": { + "declaration": 2835, + "isOffset": false, + "isSlot": false, + "src": "2751:11:23", + "valueSize": 1 + } + } + ], + "id": 2838, + "nodeType": "InlineAssembly", + "operations": "{\n switch returndatasize()\n case 0x0 {\n returnValue := 1\n }\n case 0x20 {\n returndatacopy(0x0, 0x0, 0x20)\n returnValue := mload(0x0)\n }\n default {\n }\n}", + "src": "2547:669:23" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2839, + "name": "returnValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2835, + "src": "3217:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3232:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3217:16:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2833, + "id": 2842, + "nodeType": "Return", + "src": "3210:23:23" + } + ] + }, + "documentation": "Checks the return value of the previous function up to 32 bytes. Returns true if the previous\nfunction returned 0 bytes or 1.", + "id": 2844, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "checkSuccess", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2830, + "nodeType": "ParameterList", + "parameters": [], + "src": "2409:7:23" + }, + "payable": false, + "returnParameters": { + "id": 2833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2832, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2844, + "src": "2463:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2831, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2463:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2462:6:23" + }, + "scope": 2845, + "src": "2388:852:23", + "stateMutability": "pure", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 2846, + "src": "969:2273:23" + } + ], + "src": "597:2646:23" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ERC20Wrapper.sol", + "exportedSymbols": { + "ERC20Wrapper": [ + 2845 + ] + }, + "id": 2846, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2753, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:23" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/IERC20.sol", + "file": "../../lib/IERC20.sol", + "id": 2755, + "nodeType": "ImportDirective", + "scope": 2846, + "sourceUnit": 3349, + "src": "622:46:23", + "symbolAliases": [ + { + "foreign": 2754, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title ERC20Wrapper\n@author Set Protocol\n * This library contains functions for interacting wtih ERC20 tokens, even those not fully compliant.\nFor all functions we will only accept tokens that return a null or true value, any other values will\ncause the operation to revert.", + "fullyImplemented": true, + "id": 2845, + "linearizedBaseContracts": [ + 2845 + ], + "name": "ERC20Wrapper", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2758, + "name": "INVALID_RETURN_TRANSFER", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "1041:114:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2756, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1041:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5472616e7366657272656420746f6b656e20646f6573206e6f742072657475726e206e756c6c206f722074727565206f6e207375636365737366756c207472616e736665722e", + "id": 2757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1083:72:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6a28e8cd70cea460f64d888906c14b1e15dd90824bd08d495b1878c7147754b3", + "typeString": "literal_string \"Transferred token does not return null or true on successful transfer.\"" + }, + "value": "Transferred token does not return null or true on successful transfer." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 2761, + "name": "INVALID_RETURN_TRANSFERFROM", + "nodeType": "VariableDeclaration", + "scope": 2845, + "src": "1161:122:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 2759, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1161:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5472616e7366657272656420746f6b656e20646f6573206e6f742072657475726e206e756c6c206f722074727565206f6e207375636365737366756c207472616e7366657246726f6d2e", + "id": 2760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1207:76:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4aa4f2ff21e6312a79f309b1750981deb687adeae13f742ac475b55c58e95666", + "typeString": "literal_string \"Transferred token does not return null or true on successful transferFrom.\"" + }, + "value": "Transferred token does not return null or true on successful transferFrom." + }, + "visibility": "internal" + }, + { + "body": { + "id": 2777, + "nodeType": "Block", + "src": "1490:70:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2774, + "name": "_ownerAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2765, + "src": "1539:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2771, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2763, + "src": "1514:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2770, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "1507:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$3348_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1507:21:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$3348", + "typeString": "contract IERC20" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 3331, + "src": "1507:31:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1507:46:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2769, + "id": 2776, + "nodeType": "Return", + "src": "1500:53:23" + } + ] + }, + "documentation": null, + "id": 2778, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2763, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2778, + "src": "1371:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2762, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1371:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2765, + "name": "_ownerAddress", + "nodeType": "VariableDeclaration", + "scope": 2778, + "src": "1402:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2764, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1402:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1361:68:23" + }, + "payable": false, + "returnParameters": { + "id": 2769, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2768, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2778, + "src": "1477:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2767, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1477:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1476:9:23" + }, + "scope": 2845, + "src": "1343:217:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2801, + "nodeType": "Block", + "src": "1690:156:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2791, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2782, + "src": "1731:3:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2792, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2784, + "src": "1736:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2788, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2780, + "src": "1707:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2787, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "1700:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$3348_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1700:21:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$3348", + "typeString": "contract IERC20" + } + }, + "id": 2790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3338, + "src": "1700:30:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 2793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1700:46:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2794, + "nodeType": "ExpressionStatement", + "src": "1700:46:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2796, + "name": "checkSuccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "1778:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bool_$", + "typeString": "function () pure returns (bool)" + } + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1778:14:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2798, + "name": "INVALID_RETURN_TRANSFER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2758, + "src": "1806:23:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2795, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1757:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1757:82:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2800, + "nodeType": "ExpressionStatement", + "src": "1757:82:23" + } + ] + }, + "documentation": null, + "id": 2802, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2780, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2802, + "src": "1593:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2779, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1593:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2782, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2802, + "src": "1624:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2781, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1624:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2784, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2802, + "src": "1645:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2783, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1645:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1583:85:23" + }, + "payable": false, + "returnParameters": { + "id": 2786, + "nodeType": "ParameterList", + "parameters": [], + "src": "1690:0:23" + }, + "scope": 2845, + "src": "1566:280:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2828, + "nodeType": "Block", + "src": "2003:171:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2817, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2806, + "src": "2048:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2818, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2808, + "src": "2055:3:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2819, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2810, + "src": "2060:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2814, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "2020:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2813, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3348, + "src": "2013:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$3348_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2013:21:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$3348", + "typeString": "contract IERC20" + } + }, + "id": 2816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 3347, + "src": "2013:34:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 2820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2013:57:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2821, + "nodeType": "ExpressionStatement", + "src": "2013:57:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2823, + "name": "checkSuccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "2102:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bool_$", + "typeString": "function () pure returns (bool)" + } + }, + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2102:14:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2825, + "name": "INVALID_RETURN_TRANSFERFROM", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2761, + "src": "2130:27:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 2822, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "2081:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2081:86:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2827, + "nodeType": "ExpressionStatement", + "src": "2081:86:23" + } + ] + }, + "documentation": null, + "id": 2829, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2804, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1883:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1883:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2806, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1914:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2805, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1914:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2808, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1937:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1937:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2810, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2829, + "src": "1958:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1958:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1873:108:23" + }, + "payable": false, + "returnParameters": { + "id": 2812, + "nodeType": "ParameterList", + "parameters": [], + "src": "2003:0:23" + }, + "scope": 2845, + "src": "1852:322:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2843, + "nodeType": "Block", + "src": "2473:767:23", + "statements": [ + { + "assignments": [ + 2835 + ], + "declarations": [ + { + "constant": false, + "id": 2835, + "name": "returnValue", + "nodeType": "VariableDeclaration", + "scope": 2844, + "src": "2513:19:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2513:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2837, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2535:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2513:23:23" + }, + { + "externalReferences": [ + { + "returnValue": { + "declaration": 2835, + "isOffset": false, + "isSlot": false, + "src": "3009:11:23", + "valueSize": 1 + } + }, + { + "returnValue": { + "declaration": 2835, + "isOffset": false, + "isSlot": false, + "src": "2751:11:23", + "valueSize": 1 + } + } + ], + "id": 2838, + "nodeType": "InlineAssembly", + "operations": "{\n switch returndatasize()\n case 0x0 {\n returnValue := 1\n }\n case 0x20 {\n returndatacopy(0x0, 0x0, 0x20)\n returnValue := mload(0x0)\n }\n default {\n }\n}", + "src": "2547:669:23" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2839, + "name": "returnValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2835, + "src": "3217:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3232:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3217:16:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2833, + "id": 2842, + "nodeType": "Return", + "src": "3210:23:23" + } + ] + }, + "documentation": "Checks the return value of the previous function up to 32 bytes. Returns true if the previous\nfunction returned 0 bytes or 1.", + "id": 2844, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "checkSuccess", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2830, + "nodeType": "ParameterList", + "parameters": [], + "src": "2409:7:23" + }, + "payable": false, + "returnParameters": { + "id": 2833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2832, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2844, + "src": "2463:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2831, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2463:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2462:6:23" + }, + "scope": 2845, + "src": "2388:852:23", + "stateMutability": "pure", + "superFunction": null, + "visibility": "private" + } + ], + "scope": 2846, + "src": "969:2273:23" + } + ], + "src": "597:2646:23" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.905Z" +} \ No newline at end of file diff --git a/artifacts/ts/ExchangeHandler.ts b/artifacts/ts/ExchangeHandler.ts new file mode 100644 index 000000000..057cfd2bf --- /dev/null +++ b/artifacts/ts/ExchangeHandler.ts @@ -0,0 +1,624 @@ +export const ExchangeHandler = +{ + "contractName": "ExchangeHandler", + "abi": [], + "bytecode": "0x605a602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a265627a7a723058200dab4a360739800d3cc4791c5224568f1774dd6815c1c3c51567a7de55dca9e86c6578706572696d656e74616cf50037", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a265627a7a723058200dab4a360739800d3cc4791c5224568f1774dd6815c1c3c51567a7de55dca9e86c6578706572696d656e74616cf50037", + "sourceMap": "811:960:24:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "811:960:24:-;;;;;;;;", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\npragma experimental \"ABIEncoderV2\";\n\n\n/**\n * @title ExchangeHandler\n * @author Set Protocol\n *\n * This library contains functions and structs to assist with parsing exchange orders data\n */\nlibrary ExchangeHandler {\n\n // ============ Structs ============\n\n struct OrderHeader {\n uint8 exchange;\n uint256 orderLength;\n }\n\n // ============ Internal Functions ============\n\n /**\n * Function to convert bytes into OrderHeader\n *\n * This will always trail an ExchangeOrderHeader, so we don't need to skip\n * the first 32. See Notes in parseExchangeOrdersHeader\n *\n * @param _headerData Bytes representing the order body information\n * @return OrderHeader Struct containing exchange order body data\n */\n function parseOrderHeader(\n bytes _headerData\n )\n internal\n pure\n returns (OrderHeader memory)\n {\n OrderHeader memory header;\n\n assembly {\n mstore(header, mload(add(_headerData, 32))) // exchange\n mstore(add(header, 32), mload(add(_headerData, 64))) // orderLength\n }\n\n return header;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ExchangeHandler.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ExchangeHandler.sol", + "exportedSymbols": { + "ExchangeHandler": [ + 2868 + ] + }, + "id": 2869, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2847, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:24" + }, + { + "id": 2848, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:24" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title ExchangeHandler\n@author Set Protocol\n * This library contains functions and structs to assist with parsing exchange orders data", + "fullyImplemented": true, + "id": 2868, + "linearizedBaseContracts": [ + 2868 + ], + "name": "ExchangeHandler", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ExchangeHandler.OrderHeader", + "id": 2853, + "members": [ + { + "constant": false, + "id": 2850, + "name": "exchange", + "nodeType": "VariableDeclaration", + "scope": 2853, + "src": "913:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2849, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "913:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2852, + "name": "orderLength", + "nodeType": "VariableDeclaration", + "scope": 2853, + "src": "937:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2851, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "937:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "OrderHeader", + "nodeType": "StructDefinition", + "scope": 2868, + "src": "884:79:24", + "visibility": "public" + }, + { + "body": { + "id": 2866, + "nodeType": "Block", + "src": "1516:253:24", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2861, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2867, + "src": "1526:25:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + }, + "typeName": { + "contractScope": null, + "id": 2860, + "name": "OrderHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2853, + "src": "1526:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_storage_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2862, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "1526:25:24" + }, + { + "externalReferences": [ + { + "_headerData": { + "declaration": 2855, + "isOffset": false, + "isSlot": false, + "src": "1619:11:24", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2861, + "isOffset": false, + "isSlot": false, + "src": "1592:6:24", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2861, + "isOffset": false, + "isSlot": false, + "src": "1673:6:24", + "valueSize": 1 + } + }, + { + "_headerData": { + "declaration": 2855, + "isOffset": false, + "isSlot": false, + "src": "1696:11:24", + "valueSize": 1 + } + } + ], + "id": 2863, + "nodeType": "InlineAssembly", + "operations": "{\n mstore(header, mload(add(_headerData, 32)))\n mstore(add(header, 32), mload(add(_headerData, 64)))\n}", + "src": "1562:193:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 2864, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2861, + "src": "1756:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "functionReturnParameters": 2859, + "id": 2865, + "nodeType": "Return", + "src": "1749:13:24" + } + ] + }, + "documentation": "Function to convert bytes into OrderHeader\n * This will always trail an ExchangeOrderHeader, so we don't need to skip\nthe first 32. See Notes in parseExchangeOrdersHeader\n * @param _headerData Bytes representing the order body information\n@return OrderHeader Struct containing exchange order body data", + "id": 2867, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseOrderHeader", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2855, + "name": "_headerData", + "nodeType": "VariableDeclaration", + "scope": 2867, + "src": "1421:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2854, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1421:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1411:33:24" + }, + "payable": false, + "returnParameters": { + "id": 2859, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2858, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2867, + "src": "1492:11:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + }, + "typeName": { + "contractScope": null, + "id": 2857, + "name": "OrderHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2853, + "src": "1492:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_storage_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1491:20:24" + }, + "scope": 2868, + "src": "1386:383:24", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2869, + "src": "811:960:24" + } + ], + "src": "597:1175:24" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ExchangeHandler.sol", + "exportedSymbols": { + "ExchangeHandler": [ + 2868 + ] + }, + "id": 2869, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2847, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:24" + }, + { + "id": 2848, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:24" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title ExchangeHandler\n@author Set Protocol\n * This library contains functions and structs to assist with parsing exchange orders data", + "fullyImplemented": true, + "id": 2868, + "linearizedBaseContracts": [ + 2868 + ], + "name": "ExchangeHandler", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ExchangeHandler.OrderHeader", + "id": 2853, + "members": [ + { + "constant": false, + "id": 2850, + "name": "exchange", + "nodeType": "VariableDeclaration", + "scope": 2853, + "src": "913:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2849, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "913:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2852, + "name": "orderLength", + "nodeType": "VariableDeclaration", + "scope": 2853, + "src": "937:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2851, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "937:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "OrderHeader", + "nodeType": "StructDefinition", + "scope": 2868, + "src": "884:79:24", + "visibility": "public" + }, + { + "body": { + "id": 2866, + "nodeType": "Block", + "src": "1516:253:24", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2861, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2867, + "src": "1526:25:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + }, + "typeName": { + "contractScope": null, + "id": 2860, + "name": "OrderHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2853, + "src": "1526:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_storage_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2862, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "1526:25:24" + }, + { + "externalReferences": [ + { + "_headerData": { + "declaration": 2855, + "isOffset": false, + "isSlot": false, + "src": "1619:11:24", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2861, + "isOffset": false, + "isSlot": false, + "src": "1592:6:24", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2861, + "isOffset": false, + "isSlot": false, + "src": "1673:6:24", + "valueSize": 1 + } + }, + { + "_headerData": { + "declaration": 2855, + "isOffset": false, + "isSlot": false, + "src": "1696:11:24", + "valueSize": 1 + } + } + ], + "id": 2863, + "nodeType": "InlineAssembly", + "operations": "{\n mstore(header, mload(add(_headerData, 32)))\n mstore(add(header, 32), mload(add(_headerData, 64)))\n}", + "src": "1562:193:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 2864, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2861, + "src": "1756:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader memory" + } + }, + "functionReturnParameters": 2859, + "id": 2865, + "nodeType": "Return", + "src": "1749:13:24" + } + ] + }, + "documentation": "Function to convert bytes into OrderHeader\n * This will always trail an ExchangeOrderHeader, so we don't need to skip\nthe first 32. See Notes in parseExchangeOrdersHeader\n * @param _headerData Bytes representing the order body information\n@return OrderHeader Struct containing exchange order body data", + "id": 2867, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseOrderHeader", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2855, + "name": "_headerData", + "nodeType": "VariableDeclaration", + "scope": 2867, + "src": "1421:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2854, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1421:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1411:33:24" + }, + "payable": false, + "returnParameters": { + "id": 2859, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2858, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2867, + "src": "1492:11:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_memory_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + }, + "typeName": { + "contractScope": null, + "id": 2857, + "name": "OrderHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2853, + "src": "1492:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderHeader_$2853_storage_ptr", + "typeString": "struct ExchangeHandler.OrderHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1491:20:24" + }, + "scope": 2868, + "src": "1386:383:24", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2869, + "src": "811:960:24" + } + ], + "src": "597:1175:24" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.905Z" +} \ No newline at end of file diff --git a/artifacts/ts/ICore.ts b/artifacts/ts/ICore.ts new file mode 100644 index 000000000..e8ad18a1f --- /dev/null +++ b/artifacts/ts/ICore.ts @@ -0,0 +1,2406 @@ +export const ICore = +{ + "contractName": "ICore", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_vaultAddress", + "type": "address" + } + ], + "name": "setVaultAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_transferProxyAddress", + "type": "address" + } + ], + "name": "setTransferProxyAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + } + ], + "name": "enableFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + } + ], + "name": "disableFactory", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + } + ], + "name": "disableSet", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "issue", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_setAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "redeem", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddresses", + "type": "address[]" + }, + { + "name": "_quantities", + "type": "uint256[]" + } + ], + "name": "batchDeposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddresses", + "type": "address[]" + }, + { + "name": "_quantities", + "type": "uint256[]" + } + ], + "name": "batchWithdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_factoryAddress", + "type": "address" + }, + { + "name": "_components", + "type": "address[]" + }, + { + "name": "_units", + "type": "uint256[]" + }, + { + "name": "_naturalUnit", + "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + } + ], + "name": "create", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\n/**\n * @title ICore\n * @author Set Protocol\n *\n * The ICore Contract defines all the functions exposed in the Core through its\n * various extensions and is a light weight way to interact with the contract.\n */\ninterface ICore {\n\n /**\n * Set vaultAddress. Can only be set by owner of Core.\n *\n * @param _vaultAddress The address of the Vault\n */\n function setVaultAddress(\n address _vaultAddress\n )\n external;\n\n /**\n * Set transferProxyAddress. Can only be set by owner of Core.\n *\n * @param _transferProxyAddress The address of the TransferProxy\n */\n function setTransferProxyAddress(\n address _transferProxyAddress\n )\n external;\n\n /**\n * Add a factory to the mapping of tracked factories.\n *\n * @param _factoryAddress The address of the SetTokenFactory to enable\n */\n function enableFactory(\n address _factoryAddress\n )\n external;\n\n /**\n * Disable a factory in the mapping of tracked factories.\n *\n * @param _factoryAddress The address of the SetTokenFactory to disable\n */\n function disableFactory(\n address _factoryAddress\n )\n external;\n\n /**\n * Disable a set token in the mapping of tracked set tokens.\n *\n * @param _setAddress The address of the SetToken to remove\n */\n function disableSet(\n address _setAddress\n )\n external;\n\n /**\n * Issue\n *\n * @param _setAddress Address of set to issue\n * @param _quantity Quantity of set to issue. Should be multiple of natural unit.\n */\n function issue(\n address _setAddress,\n uint _quantity\n )\n external;\n\n /**\n * Function to convert Set Tokens into underlying components\n *\n * @param _setAddress The address of the Set token\n * @param _quantity The number of tokens to redeem. Should be multiple of natural unit.\n */\n function redeem(\n address _setAddress,\n uint _quantity\n )\n external;\n\n /**\n * Deposit multiple tokens to the vault. Quantities should be in the\n * order of the addresses of the tokens being deposited.\n *\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n * @param _quantities Array of the number of tokens to deposit\n */\n function batchDeposit(\n address[] _tokenAddresses,\n uint[] _quantities\n )\n external;\n\n /**\n * Withdraw multiple tokens from the vault. Quantities should be in the\n * order of the addresses of the tokens being withdrawn.\n *\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n * @param _quantities Array of the number of tokens to withdraw\n */\n function batchWithdraw(\n address[] _tokenAddresses,\n uint[] _quantities\n )\n external;\n\n /**\n * Deposit any quantity of tokens into the vault.\n *\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to deposit\n */\n function deposit(\n address _tokenAddress,\n uint _quantity\n )\n public;\n\n /**\n * Withdraw a quantity of tokens from the vault.\n *\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to withdraw\n */\n function withdraw(\n address _tokenAddress,\n uint _quantity\n )\n public;\n\n /**\n * Deploys a new Set Token and adds it to the valid list of SetTokens\n *\n * @param _factoryAddress address The address of the Factory to create from\n * @param _components address[] The address of component tokens\n * @param _units uint[] The units of each component token\n * @param _naturalUnit uint The minimum unit to be issued or redeemed\n * @param _name string The name of the new Set\n * @param _symbol string The symbol of the new Set\n * @return setTokenAddress address The address of the new Set\n */\n function create(\n address _factoryAddress,\n address[] _components,\n uint[] _units,\n uint _naturalUnit,\n string _name,\n string _symbol\n )\n external\n returns(address);\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICore.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICore.sol", + "exportedSymbols": { + "ICore": [ + 2423 + ] + }, + "id": 2424, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2332, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:14" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ICore\n@author Set Protocol\n * The ICore Contract defines all the functions exposed in the Core through its\nvarious extensions and is a light weight way to interact with the contract.", + "fullyImplemented": false, + "id": 2423, + "linearizedBaseContracts": [ + 2423 + ], + "name": "ICore", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Set vaultAddress. Can only be set by owner of Core.\n * @param _vaultAddress The address of the Vault", + "id": 2337, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setVaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2334, + "name": "_vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 2337, + "src": "1028:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2333, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1028:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1018:37:14" + }, + "payable": false, + "returnParameters": { + "id": 2336, + "nodeType": "ParameterList", + "parameters": [], + "src": "1072:0:14" + }, + "scope": 2423, + "src": "994:79:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Set transferProxyAddress. Can only be set by owner of Core.\n * @param _transferProxyAddress The address of the TransferProxy", + "id": 2342, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setTransferProxyAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2339, + "name": "_transferProxyAddress", + "nodeType": "VariableDeclaration", + "scope": 2342, + "src": "1283:29:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1283:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1273:45:14" + }, + "payable": false, + "returnParameters": { + "id": 2341, + "nodeType": "ParameterList", + "parameters": [], + "src": "1335:0:14" + }, + "scope": 2423, + "src": "1241:95:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Add a factory to the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to enable", + "id": 2347, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "enableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2344, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2347, + "src": "1533:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1533:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1523:39:14" + }, + "payable": false, + "returnParameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [], + "src": "1579:0:14" + }, + "scope": 2423, + "src": "1501:79:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Disable a factory in the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to disable", + "id": 2352, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "disableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2349, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2352, + "src": "1783:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1783:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1773:39:14" + }, + "payable": false, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [], + "src": "1829:0:14" + }, + "scope": 2423, + "src": "1750:80:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Disable a set token in the mapping of tracked set tokens.\n * @param _setAddress The address of the SetToken to remove", + "id": 2357, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "disableSet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2354, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2357, + "src": "2020:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2353, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2020:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2010:35:14" + }, + "payable": false, + "returnParameters": { + "id": 2356, + "nodeType": "ParameterList", + "parameters": [], + "src": "2062:0:14" + }, + "scope": 2423, + "src": "1991:72:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Issue\n * @param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue. Should be multiple of natural unit.", + "id": 2364, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "issue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2359, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2364, + "src": "2273:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2358, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2273:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2361, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2364, + "src": "2302:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2302:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2263:59:14" + }, + "payable": false, + "returnParameters": { + "id": 2363, + "nodeType": "ParameterList", + "parameters": [], + "src": "2339:0:14" + }, + "scope": 2423, + "src": "2249:91:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Function to convert Set Tokens into underlying components\n * @param _setAddress The address of the Set token\n@param _quantity The number of tokens to redeem. Should be multiple of natural unit.", + "id": 2371, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "redeem", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2366, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2371, + "src": "2612:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2612:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2368, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2371, + "src": "2641:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2641:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2602:59:14" + }, + "payable": false, + "returnParameters": { + "id": 2370, + "nodeType": "ParameterList", + "parameters": [], + "src": "2678:0:14" + }, + "scope": 2423, + "src": "2587:92:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Deposit multiple tokens to the vault. Quantities should be in the\norder of the addresses of the tokens being deposited.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to deposit", + "id": 2380, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "batchDeposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2374, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 2380, + "src": "3023:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3023:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2373, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3023:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2377, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 2380, + "src": "3058:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2375, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3058:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2376, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3058:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3013:69:14" + }, + "payable": false, + "returnParameters": { + "id": 2379, + "nodeType": "ParameterList", + "parameters": [], + "src": "3099:0:14" + }, + "scope": 2423, + "src": "2992:108:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Withdraw multiple tokens from the vault. Quantities should be in the\norder of the addresses of the tokens being withdrawn.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to withdraw", + "id": 2389, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "batchWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2383, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 2389, + "src": "3451:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2381, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3451:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2382, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3451:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2386, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 2389, + "src": "3486:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2384, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3486:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2385, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3486:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3441:69:14" + }, + "payable": false, + "returnParameters": { + "id": 2388, + "nodeType": "ParameterList", + "parameters": [], + "src": "3527:0:14" + }, + "scope": 2423, + "src": "3419:109:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Deposit any quantity of tokens into the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to deposit", + "id": 2396, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "deposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2391, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2396, + "src": "3764:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2390, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3764:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2393, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2396, + "src": "3795:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2392, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3795:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3754:61:14" + }, + "payable": false, + "returnParameters": { + "id": 2395, + "nodeType": "ParameterList", + "parameters": [], + "src": "3830:0:14" + }, + "scope": 2423, + "src": "3738:93:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "Withdraw a quantity of tokens from the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to withdraw", + "id": 2403, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2398, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2403, + "src": "4068:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2397, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4068:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2400, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2403, + "src": "4099:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2399, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4099:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4058:61:14" + }, + "payable": false, + "returnParameters": { + "id": 2402, + "nodeType": "ParameterList", + "parameters": [], + "src": "4134:0:14" + }, + "scope": 2423, + "src": "4041:94:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "Deploys a new Set Token and adds it to the valid list of SetTokens\n * @param _factoryAddress address The address of the Factory to create from\n@param _components address[] The address of component tokens\n@param _units uint[] The units of each component token\n@param _naturalUnit uint The minimum unit to be issued or redeemed\n@param _name string The name of the new Set\n@param _symbol string The symbol of the new Set\n@return setTokenAddress address The address of the new Set", + "id": 2422, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "create", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2405, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4812:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2404, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4812:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2408, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4845:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4845:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2407, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4845:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2411, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4876:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2409, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4876:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2410, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4876:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2413, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4899:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2412, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4899:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2415, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4926:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2414, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4926:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2417, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4948:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2416, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4948:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4802:166:14" + }, + "payable": false, + "returnParameters": { + "id": 2421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2420, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "5002:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5002:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5001:9:14" + }, + "scope": 2423, + "src": "4787:224:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2424, + "src": "833:4180:14" + } + ], + "src": "597:4417:14" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICore.sol", + "exportedSymbols": { + "ICore": [ + 2423 + ] + }, + "id": 2424, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2332, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:14" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ICore\n@author Set Protocol\n * The ICore Contract defines all the functions exposed in the Core through its\nvarious extensions and is a light weight way to interact with the contract.", + "fullyImplemented": false, + "id": 2423, + "linearizedBaseContracts": [ + 2423 + ], + "name": "ICore", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Set vaultAddress. Can only be set by owner of Core.\n * @param _vaultAddress The address of the Vault", + "id": 2337, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setVaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2334, + "name": "_vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 2337, + "src": "1028:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2333, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1028:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1018:37:14" + }, + "payable": false, + "returnParameters": { + "id": 2336, + "nodeType": "ParameterList", + "parameters": [], + "src": "1072:0:14" + }, + "scope": 2423, + "src": "994:79:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Set transferProxyAddress. Can only be set by owner of Core.\n * @param _transferProxyAddress The address of the TransferProxy", + "id": 2342, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setTransferProxyAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2339, + "name": "_transferProxyAddress", + "nodeType": "VariableDeclaration", + "scope": 2342, + "src": "1283:29:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1283:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1273:45:14" + }, + "payable": false, + "returnParameters": { + "id": 2341, + "nodeType": "ParameterList", + "parameters": [], + "src": "1335:0:14" + }, + "scope": 2423, + "src": "1241:95:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Add a factory to the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to enable", + "id": 2347, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "enableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2344, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2347, + "src": "1533:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1533:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1523:39:14" + }, + "payable": false, + "returnParameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [], + "src": "1579:0:14" + }, + "scope": 2423, + "src": "1501:79:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Disable a factory in the mapping of tracked factories.\n * @param _factoryAddress The address of the SetTokenFactory to disable", + "id": 2352, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "disableFactory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2349, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2352, + "src": "1783:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1783:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1773:39:14" + }, + "payable": false, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [], + "src": "1829:0:14" + }, + "scope": 2423, + "src": "1750:80:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Disable a set token in the mapping of tracked set tokens.\n * @param _setAddress The address of the SetToken to remove", + "id": 2357, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "disableSet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2354, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2357, + "src": "2020:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2353, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2020:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2010:35:14" + }, + "payable": false, + "returnParameters": { + "id": 2356, + "nodeType": "ParameterList", + "parameters": [], + "src": "2062:0:14" + }, + "scope": 2423, + "src": "1991:72:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Issue\n * @param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue. Should be multiple of natural unit.", + "id": 2364, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "issue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2359, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2364, + "src": "2273:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2358, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2273:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2361, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2364, + "src": "2302:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2302:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2263:59:14" + }, + "payable": false, + "returnParameters": { + "id": 2363, + "nodeType": "ParameterList", + "parameters": [], + "src": "2339:0:14" + }, + "scope": 2423, + "src": "2249:91:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Function to convert Set Tokens into underlying components\n * @param _setAddress The address of the Set token\n@param _quantity The number of tokens to redeem. Should be multiple of natural unit.", + "id": 2371, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "redeem", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2366, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2371, + "src": "2612:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2612:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2368, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2371, + "src": "2641:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2641:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2602:59:14" + }, + "payable": false, + "returnParameters": { + "id": 2370, + "nodeType": "ParameterList", + "parameters": [], + "src": "2678:0:14" + }, + "scope": 2423, + "src": "2587:92:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Deposit multiple tokens to the vault. Quantities should be in the\norder of the addresses of the tokens being deposited.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to deposit", + "id": 2380, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "batchDeposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2374, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 2380, + "src": "3023:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3023:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2373, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3023:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2377, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 2380, + "src": "3058:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2375, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3058:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2376, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3058:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3013:69:14" + }, + "payable": false, + "returnParameters": { + "id": 2379, + "nodeType": "ParameterList", + "parameters": [], + "src": "3099:0:14" + }, + "scope": 2423, + "src": "2992:108:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Withdraw multiple tokens from the vault. Quantities should be in the\norder of the addresses of the tokens being withdrawn.\n * @param _tokenAddresses Array of the addresses of the ERC20 tokens\n@param _quantities Array of the number of tokens to withdraw", + "id": 2389, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "batchWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2383, + "name": "_tokenAddresses", + "nodeType": "VariableDeclaration", + "scope": 2389, + "src": "3451:25:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2381, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3451:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2382, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3451:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2386, + "name": "_quantities", + "nodeType": "VariableDeclaration", + "scope": 2389, + "src": "3486:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2384, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3486:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2385, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3486:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3441:69:14" + }, + "payable": false, + "returnParameters": { + "id": 2388, + "nodeType": "ParameterList", + "parameters": [], + "src": "3527:0:14" + }, + "scope": 2423, + "src": "3419:109:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "Deposit any quantity of tokens into the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to deposit", + "id": 2396, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "deposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2391, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2396, + "src": "3764:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2390, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3764:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2393, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2396, + "src": "3795:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2392, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3795:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3754:61:14" + }, + "payable": false, + "returnParameters": { + "id": 2395, + "nodeType": "ParameterList", + "parameters": [], + "src": "3830:0:14" + }, + "scope": 2423, + "src": "3738:93:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "Withdraw a quantity of tokens from the vault.\n * @param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to withdraw", + "id": 2403, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2398, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2403, + "src": "4068:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2397, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4068:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2400, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2403, + "src": "4099:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2399, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4099:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4058:61:14" + }, + "payable": false, + "returnParameters": { + "id": 2402, + "nodeType": "ParameterList", + "parameters": [], + "src": "4134:0:14" + }, + "scope": 2423, + "src": "4041:94:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "Deploys a new Set Token and adds it to the valid list of SetTokens\n * @param _factoryAddress address The address of the Factory to create from\n@param _components address[] The address of component tokens\n@param _units uint[] The units of each component token\n@param _naturalUnit uint The minimum unit to be issued or redeemed\n@param _name string The name of the new Set\n@param _symbol string The symbol of the new Set\n@return setTokenAddress address The address of the new Set", + "id": 2422, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "create", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2405, + "name": "_factoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4812:23:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2404, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4812:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2408, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4845:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4845:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2407, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4845:9:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2411, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4876:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2409, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4876:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2410, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4876:6:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2413, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4899:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2412, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4899:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2415, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4926:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2414, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4926:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2417, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "4948:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2416, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4948:6:14", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4802:166:14" + }, + "payable": false, + "returnParameters": { + "id": 2421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2420, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2422, + "src": "5002:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5002:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5001:9:14" + }, + "scope": 2423, + "src": "4787:224:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2424, + "src": "833:4180:14" + } + ], + "src": "597:4417:14" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.903Z" +} \ No newline at end of file diff --git a/artifacts/ts/ICoreIssuance.ts b/artifacts/ts/ICoreIssuance.ts new file mode 100644 index 000000000..ccbf33e8d --- /dev/null +++ b/artifacts/ts/ICoreIssuance.ts @@ -0,0 +1,314 @@ +export const ICoreIssuance = +{ + "contractName": "ICoreIssuance", + "abi": [], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\n/**\n * @title ICoreIssuance\n * @author Set Protocol\n *\n * The ICoreIssuance Contract defines all the functions exposed in the CoreIssuance\n * extension.\n */\ncontract ICoreIssuance {\n\n /**\n * Issue internally. Can define who to issue to.\n *\n * @param _owner Address to issue set to\n * @param _setAddress Address of set to issue\n * @param _quantity Quantity of set to issue\n */\n function issueInternal(\n address _owner,\n address _setAddress,\n uint _quantity\n )\n internal;\n}", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICoreIssuance.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICoreIssuance.sol", + "exportedSymbols": { + "ICoreIssuance": [ + 2435 + ] + }, + "id": 2436, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2425, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:15" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ICoreIssuance\n@author Set Protocol\n * The ICoreIssuance Contract defines all the functions exposed in the CoreIssuance\nextension.", + "fullyImplemented": false, + "id": 2435, + "linearizedBaseContracts": [ + 2435 + ], + "name": "ICoreIssuance", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Issue internally. Can define who to issue to.\n * @param _owner Address to issue set to\n@param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue", + "id": 2434, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "issueInternal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2427, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2434, + "src": "1078:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1078:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2429, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2434, + "src": "1102:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1102:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2431, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2434, + "src": "1131:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2430, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1131:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1068:83:15" + }, + "payable": false, + "returnParameters": { + "id": 2433, + "nodeType": "ParameterList", + "parameters": [], + "src": "1168:0:15" + }, + "scope": 2435, + "src": "1046:123:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2436, + "src": "780:391:15" + } + ], + "src": "597:574:15" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ICoreIssuance.sol", + "exportedSymbols": { + "ICoreIssuance": [ + 2435 + ] + }, + "id": 2436, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2425, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:15" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ICoreIssuance\n@author Set Protocol\n * The ICoreIssuance Contract defines all the functions exposed in the CoreIssuance\nextension.", + "fullyImplemented": false, + "id": 2435, + "linearizedBaseContracts": [ + 2435 + ], + "name": "ICoreIssuance", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Issue internally. Can define who to issue to.\n * @param _owner Address to issue set to\n@param _setAddress Address of set to issue\n@param _quantity Quantity of set to issue", + "id": 2434, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "issueInternal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2427, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2434, + "src": "1078:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1078:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2429, + "name": "_setAddress", + "nodeType": "VariableDeclaration", + "scope": 2434, + "src": "1102:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1102:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2431, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2434, + "src": "1131:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2430, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1131:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1068:83:15" + }, + "payable": false, + "returnParameters": { + "id": 2433, + "nodeType": "ParameterList", + "parameters": [], + "src": "1168:0:15" + }, + "scope": 2435, + "src": "1046:123:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2436, + "src": "780:391:15" + } + ], + "src": "597:574:15" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.903Z" +} \ No newline at end of file diff --git a/artifacts/ts/IERC20.ts b/artifacts/ts/IERC20.ts new file mode 100644 index 000000000..bc60dc0de --- /dev/null +++ b/artifacts/ts/IERC20.ts @@ -0,0 +1,704 @@ +export const IERC20 = +{ + "contractName": "IERC20", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\n/**\n * @title GeneralERC20\n * @author Set Protocol\n *\n * Interface for using ERC20 Tokens. This interface is needed to interact with tokens that are not\n * fully ERC20 compliant and return something other than true on successful transfers.\n */\ninterface IERC20 {\n function balanceOf(\n address _owner\n )\n external\n view\n returns (uint256);\n\n function transfer(\n address _to,\n uint256 _quantity\n )\n external;\n\n function transferFrom(\n address _from,\n address _to,\n uint256 _quantity\n )\n external;\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/IERC20.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 3348 + ] + }, + "id": 3349, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3324, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:28" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title GeneralERC20\n@author Set Protocol\n * Interface for using ERC20 Tokens. This interface is needed to interact with tokens that are not\nfully ERC20 compliant and return something other than true on successful transfers.", + "fullyImplemented": false, + "id": 3348, + "linearizedBaseContracts": [ + 3348 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3331, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3327, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3326, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "918:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "918:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "908:30:28" + }, + "payable": false, + "returnParameters": { + "id": 3330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3329, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "986:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "986:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "985:9:28" + }, + "scope": 3348, + "src": "890:105:28", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 3338, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3338, + "src": "1028:11:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1028:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3335, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 3338, + "src": "1049:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1049:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1018:54:28" + }, + "payable": false, + "returnParameters": { + "id": 3337, + "nodeType": "ParameterList", + "parameters": [], + "src": "1089:0:28" + }, + "scope": 3348, + "src": "1001:89:28", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 3347, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3340, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "1127:13:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3339, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1127:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3342, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "1150:11:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3341, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1150:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3344, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "1171:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1171:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1117:77:28" + }, + "payable": false, + "returnParameters": { + "id": 3346, + "nodeType": "ParameterList", + "parameters": [], + "src": "1211:0:28" + }, + "scope": 3348, + "src": "1096:116:28", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 3349, + "src": "867:347:28" + } + ], + "src": "597:618:28" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 3348 + ] + }, + "id": 3349, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3324, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:28" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title GeneralERC20\n@author Set Protocol\n * Interface for using ERC20 Tokens. This interface is needed to interact with tokens that are not\nfully ERC20 compliant and return something other than true on successful transfers.", + "fullyImplemented": false, + "id": 3348, + "linearizedBaseContracts": [ + 3348 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 3331, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3327, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3326, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "918:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "918:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "908:30:28" + }, + "payable": false, + "returnParameters": { + "id": 3330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3329, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3331, + "src": "986:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "986:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "985:9:28" + }, + "scope": 3348, + "src": "890:105:28", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 3338, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3338, + "src": "1028:11:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1028:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3335, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 3338, + "src": "1049:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1049:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1018:54:28" + }, + "payable": false, + "returnParameters": { + "id": 3337, + "nodeType": "ParameterList", + "parameters": [], + "src": "1089:0:28" + }, + "scope": 3348, + "src": "1001:89:28", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 3347, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3340, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "1127:13:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3339, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1127:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3342, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "1150:11:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3341, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1150:7:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3344, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 3347, + "src": "1171:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1171:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1117:77:28" + }, + "payable": false, + "returnParameters": { + "id": 3346, + "nodeType": "ParameterList", + "parameters": [], + "src": "1211:0:28" + }, + "scope": 3348, + "src": "1096:116:28", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 3349, + "src": "867:347:28" + } + ], + "src": "597:618:28" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.908Z" +} \ No newline at end of file diff --git a/artifacts/ts/IExchange.ts b/artifacts/ts/IExchange.ts new file mode 100644 index 000000000..4282b99d9 --- /dev/null +++ b/artifacts/ts/IExchange.ts @@ -0,0 +1,284 @@ +export const IExchange = +{ + "contractName": "IExchange", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_orderData", + "type": "bytes" + } + ], + "name": "exchange", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\n/**\n * @title IExchange\n * @author Set Protocol\n *\n * Interface for executing an order with an exchange\n */\ninterface IExchange {\n\n /**\n * Exchange some amount of takerToken for makerToken.\n *\n * @param _orderData Arbitrary bytes data for any information to pass to the exchange\n * @return uint256 The amount of makerToken received\n */\n function exchange(\n bytes _orderData\n )\n external\n returns (uint256);\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IExchange.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IExchange.sol", + "exportedSymbols": { + "IExchange": [ + 2445 + ] + }, + "id": 2446, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2437, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:16" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title IExchange\n@author Set Protocol\n * Interface for executing an order with an exchange", + "fullyImplemented": false, + "id": 2445, + "linearizedBaseContracts": [ + 2445 + ], + "name": "IExchange", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Exchange some amount of takerToken for makerToken.\n * @param _orderData Arbitrary bytes data for any information to pass to the exchange\n@return uint256 The amount of makerToken received", + "id": 2444, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "exchange", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2439, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2444, + "src": "1019:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2438, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1019:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1009:32:16" + }, + "payable": false, + "returnParameters": { + "id": 2443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2442, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2444, + "src": "1076:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1076:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1075:9:16" + }, + "scope": 2445, + "src": "992:93:16", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2446, + "src": "731:356:16" + } + ], + "src": "597:491:16" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IExchange.sol", + "exportedSymbols": { + "IExchange": [ + 2445 + ] + }, + "id": 2446, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2437, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:16" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title IExchange\n@author Set Protocol\n * Interface for executing an order with an exchange", + "fullyImplemented": false, + "id": 2445, + "linearizedBaseContracts": [ + 2445 + ], + "name": "IExchange", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Exchange some amount of takerToken for makerToken.\n * @param _orderData Arbitrary bytes data for any information to pass to the exchange\n@return uint256 The amount of makerToken received", + "id": 2444, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "exchange", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2439, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2444, + "src": "1019:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2438, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1019:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1009:32:16" + }, + "payable": false, + "returnParameters": { + "id": 2443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2442, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2444, + "src": "1076:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1076:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1075:9:16" + }, + "scope": 2445, + "src": "992:93:16", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2446, + "src": "731:356:16" + } + ], + "src": "597:491:16" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.903Z" +} \ No newline at end of file diff --git a/artifacts/ts/ISetFactory.ts b/artifacts/ts/ISetFactory.ts index af34cef2e..f297b8e18 100644 --- a/artifacts/ts/ISetFactory.ts +++ b/artifacts/ts/ISetFactory.ts @@ -2,11 +2,25 @@ export const ISetFactory = { "contractName": "ISetFactory", "abi": [ + { + "constant": false, + "inputs": [], + "name": "core", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": false, "inputs": [ { - "name": "_tokens", + "name": "_components", "type": "address[]" }, { @@ -16,9 +30,17 @@ export const ISetFactory = { "name": "_naturalUnit", "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" } ], - "name": "createSet", + "name": "create", "outputs": [ { "name": "", @@ -34,37 +56,37 @@ export const ISetFactory = "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity 0.4.23;\n\n\n/**\n * @title Set Factory Interface\n */\ncontract ISetFactory {\n\tfunction createSet(\n\t\taddress[] _tokens,\n\t\tuint[] _units,\n\t\tuint _naturalUnit\n\t)\n\t\tpublic\n\t\treturns (address);\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\n/**\n * @title ISetFactory\n * @author Set Protocol\n *\n * The ITransferProxy interface provides operability for authorized contracts\n * to interact with SetTokenFactory\n */\ninterface ISetFactory {\n function core() external returns (address);\n\n function create(\n address[] _components,\n uint[] _units,\n uint _naturalUnit,\n string _name,\n string _symbol\n )\n external\n returns (address);\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", "exportedSymbols": { "ISetFactory": [ - 1592 + 574 ] }, - "id": 1593, + "id": 575, "nodeType": "SourceUnit", "nodes": [ { - "id": 1578, + "id": 551, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:4" + "src": "597:23:2" }, { "baseContracts": [], "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Set Factory Interface", + "contractKind": "interface", + "documentation": "@title ISetFactory\n@author Set Protocol\n * The ITransferProxy interface provides operability for authorized contracts\nto interact with SetTokenFactory", "fullyImplemented": false, - "id": 1592, + "id": 574, "linearizedBaseContracts": [ - 1592 + 574 ], "name": "ISetFactory", "nodeType": "ContractDefinition", @@ -72,45 +94,101 @@ export const ISetFactory = { "body": null, "documentation": null, - "id": 1591, + "id": 556, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "core", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 552, + "nodeType": "ParameterList", + "parameters": [], + "src": "835:2:2" + }, + "payable": false, + "returnParameters": { + "id": 555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 554, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "856:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 553, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "856:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "855:9:2" + }, + "scope": 574, + "src": "822:43:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 573, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "createSet", + "name": "create", "nodeType": "FunctionDefinition", "parameters": { - "id": 1587, + "id": 569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1581, - "name": "_tokens", + "id": 559, + "name": "_components", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "112:17:4", + "scope": 573, + "src": "896:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 1579, + "id": 557, "name": "address", "nodeType": "ElementaryTypeName", - "src": "112:7:4", + "src": "896:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1580, + "id": 558, "length": null, "nodeType": "ArrayTypeName", - "src": "112:9:4", + "src": "896:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -121,32 +199,32 @@ export const ISetFactory = }, { "constant": false, - "id": 1584, + "id": 562, "name": "_units", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "133:13:4", + "scope": 573, + "src": "927:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { - "id": 1582, + "id": 560, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "133:4:4", + "src": "927:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1583, + "id": 561, "length": null, "nodeType": "ArrayTypeName", - "src": "133:6:4", + "src": "927:6:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -157,11 +235,11 @@ export const ISetFactory = }, { "constant": false, - "id": 1586, + "id": 564, "name": "_naturalUnit", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "150:17:4", + "scope": 573, + "src": "950:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -169,10 +247,10 @@ export const ISetFactory = "typeString": "uint256" }, "typeName": { - "id": 1585, + "id": 563, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "150:4:4", + "src": "950:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -180,22 +258,74 @@ export const ISetFactory = }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 566, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "977:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 565, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "977:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "999:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 567, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "999:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "108:62:4" + "src": "886:133:2" }, "payable": false, "returnParameters": { - "id": 1590, + "id": 572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1589, + "id": 571, "name": "", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "191:7:4", + "scope": 573, + "src": "1054:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -203,10 +333,10 @@ export const ISetFactory = "typeString": "address" }, "typeName": { - "id": 1588, + "id": 570, "name": "address", "nodeType": "ElementaryTypeName", - "src": "191:7:4", + "src": "1054:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -216,50 +346,50 @@ export const ISetFactory = "visibility": "internal" } ], - "src": "190:9:4" + "src": "1053:9:2" }, - "scope": 1592, - "src": "90:110:4", + "scope": 574, + "src": "871:192:2", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" } ], - "scope": 1593, - "src": "66:136:4" + "scope": 575, + "src": "794:271:2" } ], - "src": "0:203:4" + "src": "597:469:2" }, "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", "exportedSymbols": { "ISetFactory": [ - 1592 + 574 ] }, - "id": 1593, + "id": 575, "nodeType": "SourceUnit", "nodes": [ { - "id": 1578, + "id": 551, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:4" + "src": "597:23:2" }, { "baseContracts": [], "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Set Factory Interface", + "contractKind": "interface", + "documentation": "@title ISetFactory\n@author Set Protocol\n * The ITransferProxy interface provides operability for authorized contracts\nto interact with SetTokenFactory", "fullyImplemented": false, - "id": 1592, + "id": 574, "linearizedBaseContracts": [ - 1592 + 574 ], "name": "ISetFactory", "nodeType": "ContractDefinition", @@ -267,45 +397,101 @@ export const ISetFactory = { "body": null, "documentation": null, - "id": 1591, + "id": 556, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "core", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 552, + "nodeType": "ParameterList", + "parameters": [], + "src": "835:2:2" + }, + "payable": false, + "returnParameters": { + "id": 555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 554, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 556, + "src": "856:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 553, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "856:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "855:9:2" + }, + "scope": 574, + "src": "822:43:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 573, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "createSet", + "name": "create", "nodeType": "FunctionDefinition", "parameters": { - "id": 1587, + "id": 569, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1581, - "name": "_tokens", + "id": 559, + "name": "_components", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "112:17:4", + "scope": 573, + "src": "896:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 1579, + "id": 557, "name": "address", "nodeType": "ElementaryTypeName", - "src": "112:7:4", + "src": "896:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1580, + "id": 558, "length": null, "nodeType": "ArrayTypeName", - "src": "112:9:4", + "src": "896:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -316,32 +502,32 @@ export const ISetFactory = }, { "constant": false, - "id": 1584, + "id": 562, "name": "_units", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "133:13:4", + "scope": 573, + "src": "927:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { - "id": 1582, + "id": 560, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "133:4:4", + "src": "927:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1583, + "id": 561, "length": null, "nodeType": "ArrayTypeName", - "src": "133:6:4", + "src": "927:6:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -352,11 +538,11 @@ export const ISetFactory = }, { "constant": false, - "id": 1586, + "id": 564, "name": "_naturalUnit", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "150:17:4", + "scope": 573, + "src": "950:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -364,10 +550,10 @@ export const ISetFactory = "typeString": "uint256" }, "typeName": { - "id": 1585, + "id": 563, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "150:4:4", + "src": "950:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -375,22 +561,74 @@ export const ISetFactory = }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 566, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "977:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 565, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "977:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 573, + "src": "999:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 567, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "999:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "108:62:4" + "src": "886:133:2" }, "payable": false, "returnParameters": { - "id": 1590, + "id": 572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1589, + "id": 571, "name": "", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "191:7:4", + "scope": 573, + "src": "1054:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -398,10 +636,10 @@ export const ISetFactory = "typeString": "address" }, "typeName": { - "id": 1588, + "id": 570, "name": "address", "nodeType": "ElementaryTypeName", - "src": "191:7:4", + "src": "1054:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -411,26 +649,26 @@ export const ISetFactory = "visibility": "internal" } ], - "src": "190:9:4" + "src": "1053:9:2" }, - "scope": 1592, - "src": "90:110:4", + "scope": 574, + "src": "871:192:2", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" } ], - "scope": 1593, - "src": "66:136:4" + "scope": 575, + "src": "794:271:2" } ], - "src": "0:203:4" + "src": "597:469:2" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.577Z" + "updatedAt": "2018-07-07T15:28:53.725Z" } \ No newline at end of file diff --git a/artifacts/ts/ISetToken.ts b/artifacts/ts/ISetToken.ts index a3b87a46b..1817060d9 100644 --- a/artifacts/ts/ISetToken.ts +++ b/artifacts/ts/ISetToken.ts @@ -3,52 +3,41 @@ export const ISetToken = "contractName": "ISetToken", "abi": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_sender", - "type": "address" - }, + "constant": false, + "inputs": [], + "name": "naturalUnit", + "outputs": [ { - "indexed": false, - "name": "_quantity", + "name": "", "type": "uint256" } ], - "name": "LogIssuance", - "type": "event" + "payable": false, + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_sender", - "type": "address" - }, + "constant": false, + "inputs": [], + "name": "getComponents", + "outputs": [ { - "indexed": false, - "name": "_quantity", - "type": "uint256" + "name": "", + "type": "address[]" } ], - "name": "LogRedemption", - "type": "event" + "payable": false, + "stateMutability": "nonpayable", + "type": "function" }, { "constant": false, - "inputs": [ - { - "name": "_quantity", - "type": "uint256" - } - ], - "name": "issue", + "inputs": [], + "name": "getUnits", "outputs": [ { "name": "", - "type": "bool" + "type": "uint256[]" } ], "payable": false, @@ -58,18 +47,35 @@ export const ISetToken = { "constant": false, "inputs": [ + { + "name": "_issuer", + "type": "address" + }, { "name": "_quantity", "type": "uint256" } ], - "name": "redeem", - "outputs": [ + "name": "mint", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ { - "name": "", - "type": "bool" + "name": "_from", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" } ], + "name": "burn", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" @@ -79,62 +85,69 @@ export const ISetToken = "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity 0.4.23;\n\n\n/**\n * @title Set Token Interface\n */\ncontract ISetToken {\n\n /**\n * @dev Function to convert component into {Set} Tokens\n *\n * Please note that the user's ERC20 component must be approved by\n * their ERC20 contract to transfer their components to this contract.\n *\n * @param _quantity uint The quantity of Sets desired to issue in Wei as a multiple of naturalUnit\n */\n function issue(\n uint _quantity\n )\n public\n returns (bool);\n\n /**\n * @dev Function to convert {Set} Tokens into underlying components\n *\n * The ERC20 components do not need to be approved to call this function\n *\n * @param _quantity uint The quantity of Sets desired to redeem in Wei as a multiple of naturalUnit\n */\n function redeem(\n uint _quantity\n )\n public\n returns (bool);\n\n event LogIssuance(\n address indexed _sender,\n uint _quantity\n );\n\n event LogRedemption(\n address indexed _sender,\n uint _quantity\n );\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n/**\n * @title ISetToken\n * @author Set Protocol\n *\n * The ISetToken interface provides a light-weight, structured way to interact with the\n * SetToken contract from another contract.\n */\ninterface ISetToken {\n function naturalUnit()\n external\n returns (uint);\n\n function getComponents()\n external\n returns(address[]);\n\n function getUnits()\n external\n returns(uint[]);\n\n function mint(\n address _issuer,\n uint _quantity\n )\n external;\n\n function burn(\n address _from,\n uint _quantity\n )\n external;\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", "exportedSymbols": { "ISetToken": [ - 1621 + 2504 ] }, - "id": 1622, + "id": 2505, "nodeType": "SourceUnit", "nodes": [ { - "id": 1594, + "id": 2472, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:5" + "src": "597:23:18" }, { "baseContracts": [], "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Set Token Interface", + "contractKind": "interface", + "documentation": "@title ISetToken\n@author Set Protocol\n * The ISetToken interface provides a light-weight, structured way to interact with the\nSetToken contract from another contract.", "fullyImplemented": false, - "id": 1621, + "id": 2504, "linearizedBaseContracts": [ - 1621 + 2504 ], "name": "ISetToken", "nodeType": "ContractDefinition", "nodes": [ { "body": null, - "documentation": "@dev Function to convert component into {Set} Tokens\n * Please note that the user's ERC20 component must be approved by\ntheir ERC20 contract to transfer their components to this contract.\n * @param _quantity uint The quantity of Sets desired to issue in Wei as a multiple of naturalUnit", - "id": 1601, + "documentation": null, + "id": 2477, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "issue", + "name": "naturalUnit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1597, + "id": 2473, + "nodeType": "ParameterList", + "parameters": [], + "src": "855:2:18" + }, + "payable": false, + "returnParameters": { + "id": 2476, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1596, - "name": "_quantity", + "id": 2475, + "name": "", "nodeType": "VariableDeclaration", - "scope": 1601, - "src": "446:14:5", + "scope": 2477, + "src": "892:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -142,10 +155,10 @@ export const ISetToken = "typeString": "uint256" }, "typeName": { - "id": 1595, + "id": 2474, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "446:4:5", + "src": "892:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -155,149 +168,167 @@ export const ISetToken = "visibility": "internal" } ], - "src": "436:30:5" + "src": "891:6:18" + }, + "scope": 2504, + "src": "835:63:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2483, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "getComponents", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2478, + "nodeType": "ParameterList", + "parameters": [], + "src": "926:2:18" }, "payable": false, "returnParameters": { - "id": 1600, + "id": 2482, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1599, + "id": 2481, "name": "", "nodeType": "VariableDeclaration", - "scope": 1601, - "src": "499:4:5", + "scope": 2483, + "src": "962:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { - "id": 1598, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "499:4:5", + "baseType": { + "id": 2479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "962:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2480, + "length": null, + "nodeType": "ArrayTypeName", + "src": "962:9:18", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], - "src": "498:6:5" + "src": "961:11:18" }, - "scope": 1621, - "src": "422:83:5", + "scope": 2504, + "src": "904:69:18", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": null, - "documentation": "@dev Function to convert {Set} Tokens into underlying components\n * The ERC20 components do not need to be approved to call this function\n * @param _quantity uint The quantity of Sets desired to redeem in Wei as a multiple of naturalUnit", - "id": 1608, + "documentation": null, + "id": 2489, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "redeem", + "name": "getUnits", "nodeType": "FunctionDefinition", "parameters": { - "id": 1604, + "id": 2484, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1603, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 1608, - "src": "813:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1602, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "813:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "803:30:5" + "parameters": [], + "src": "996:2:18" }, "payable": false, "returnParameters": { - "id": 1607, + "id": 2488, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1606, + "id": 2487, "name": "", "nodeType": "VariableDeclaration", - "scope": 1608, - "src": "866:4:5", + "scope": 2489, + "src": "1032:6:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" }, "typeName": { - "id": 1605, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "866:4:5", + "baseType": { + "id": 2485, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1032:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2486, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1032:6:18", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" } }, "value": null, "visibility": "internal" } ], - "src": "865:6:5" + "src": "1031:8:18" }, - "scope": 1621, - "src": "788:84:5", + "scope": 2504, + "src": "979:61:18", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { - "anonymous": false, + "body": null, "documentation": null, - "id": 1614, - "name": "LogIssuance", - "nodeType": "EventDefinition", + "id": 2496, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", "parameters": { - "id": 1613, + "id": 2494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1610, - "indexed": true, - "name": "_sender", + "id": 2491, + "name": "_issuer", "nodeType": "VariableDeclaration", - "scope": 1614, - "src": "905:23:5", + "scope": 2496, + "src": "1069:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -305,10 +336,10 @@ export const ISetToken = "typeString": "address" }, "typeName": { - "id": 1609, + "id": 2490, "name": "address", "nodeType": "ElementaryTypeName", - "src": "905:7:5", + "src": "1069:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -319,12 +350,11 @@ export const ISetToken = }, { "constant": false, - "id": 1612, - "indexed": false, + "id": 2493, "name": "_quantity", "nodeType": "VariableDeclaration", - "scope": 1614, - "src": "938:14:5", + "scope": 2496, + "src": "1094:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -332,10 +362,10 @@ export const ISetToken = "typeString": "uint256" }, "typeName": { - "id": 1611, + "id": 2492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "938:4:5", + "src": "1094:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -345,28 +375,42 @@ export const ISetToken = "visibility": "internal" } ], - "src": "895:63:5" + "src": "1059:55:18" + }, + "payable": false, + "returnParameters": { + "id": 2495, + "nodeType": "ParameterList", + "parameters": [], + "src": "1131:0:18" }, - "src": "878:81:5" + "scope": 2504, + "src": "1046:86:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" }, { - "anonymous": false, + "body": null, "documentation": null, - "id": 1620, - "name": "LogRedemption", - "nodeType": "EventDefinition", + "id": 2503, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", "parameters": { - "id": 1619, + "id": 2501, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1616, - "indexed": true, - "name": "_sender", + "id": 2498, + "name": "_from", "nodeType": "VariableDeclaration", - "scope": 1620, - "src": "994:23:5", + "scope": 2503, + "src": "1161:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -374,10 +418,10 @@ export const ISetToken = "typeString": "address" }, "typeName": { - "id": 1615, + "id": 2497, "name": "address", "nodeType": "ElementaryTypeName", - "src": "994:7:5", + "src": "1161:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -388,12 +432,11 @@ export const ISetToken = }, { "constant": false, - "id": 1618, - "indexed": false, + "id": 2500, "name": "_quantity", "nodeType": "VariableDeclaration", - "scope": 1620, - "src": "1027:14:5", + "scope": 2503, + "src": "1184:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -401,10 +444,10 @@ export const ISetToken = "typeString": "uint256" }, "typeName": { - "id": 1617, + "id": 2499, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1027:4:5", + "src": "1184:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -414,71 +457,89 @@ export const ISetToken = "visibility": "internal" } ], - "src": "984:63:5" + "src": "1151:53:18" + }, + "payable": false, + "returnParameters": { + "id": 2502, + "nodeType": "ParameterList", + "parameters": [], + "src": "1221:0:18" }, - "src": "965:83:5" + "scope": 2504, + "src": "1138:84:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" } ], - "scope": 1622, - "src": "64:986:5" + "scope": 2505, + "src": "809:415:18" } ], - "src": "0:1051:5" + "src": "597:628:18" }, "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", "exportedSymbols": { "ISetToken": [ - 1621 + 2504 ] }, - "id": 1622, + "id": 2505, "nodeType": "SourceUnit", "nodes": [ { - "id": 1594, + "id": 2472, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:5" + "src": "597:23:18" }, { "baseContracts": [], "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Set Token Interface", + "contractKind": "interface", + "documentation": "@title ISetToken\n@author Set Protocol\n * The ISetToken interface provides a light-weight, structured way to interact with the\nSetToken contract from another contract.", "fullyImplemented": false, - "id": 1621, + "id": 2504, "linearizedBaseContracts": [ - 1621 + 2504 ], "name": "ISetToken", "nodeType": "ContractDefinition", "nodes": [ { "body": null, - "documentation": "@dev Function to convert component into {Set} Tokens\n * Please note that the user's ERC20 component must be approved by\ntheir ERC20 contract to transfer their components to this contract.\n * @param _quantity uint The quantity of Sets desired to issue in Wei as a multiple of naturalUnit", - "id": 1601, + "documentation": null, + "id": 2477, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "issue", + "name": "naturalUnit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1597, + "id": 2473, + "nodeType": "ParameterList", + "parameters": [], + "src": "855:2:18" + }, + "payable": false, + "returnParameters": { + "id": 2476, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1596, - "name": "_quantity", + "id": 2475, + "name": "", "nodeType": "VariableDeclaration", - "scope": 1601, - "src": "446:14:5", + "scope": 2477, + "src": "892:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -486,10 +547,10 @@ export const ISetToken = "typeString": "uint256" }, "typeName": { - "id": 1595, + "id": 2474, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "446:4:5", + "src": "892:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -499,149 +560,167 @@ export const ISetToken = "visibility": "internal" } ], - "src": "436:30:5" + "src": "891:6:18" + }, + "scope": 2504, + "src": "835:63:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2483, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "getComponents", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2478, + "nodeType": "ParameterList", + "parameters": [], + "src": "926:2:18" }, "payable": false, "returnParameters": { - "id": 1600, + "id": 2482, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1599, + "id": 2481, "name": "", "nodeType": "VariableDeclaration", - "scope": 1601, - "src": "499:4:5", + "scope": 2483, + "src": "962:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { - "id": 1598, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "499:4:5", + "baseType": { + "id": 2479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "962:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2480, + "length": null, + "nodeType": "ArrayTypeName", + "src": "962:9:18", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], - "src": "498:6:5" + "src": "961:11:18" }, - "scope": 1621, - "src": "422:83:5", + "scope": 2504, + "src": "904:69:18", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": null, - "documentation": "@dev Function to convert {Set} Tokens into underlying components\n * The ERC20 components do not need to be approved to call this function\n * @param _quantity uint The quantity of Sets desired to redeem in Wei as a multiple of naturalUnit", - "id": 1608, + "documentation": null, + "id": 2489, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "redeem", + "name": "getUnits", "nodeType": "FunctionDefinition", "parameters": { - "id": 1604, + "id": 2484, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1603, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 1608, - "src": "813:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1602, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "813:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "803:30:5" + "parameters": [], + "src": "996:2:18" }, "payable": false, "returnParameters": { - "id": 1607, + "id": 2488, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1606, + "id": 2487, "name": "", "nodeType": "VariableDeclaration", - "scope": 1608, - "src": "866:4:5", + "scope": 2489, + "src": "1032:6:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" }, "typeName": { - "id": 1605, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "866:4:5", + "baseType": { + "id": 2485, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1032:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2486, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1032:6:18", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" } }, "value": null, "visibility": "internal" } ], - "src": "865:6:5" + "src": "1031:8:18" }, - "scope": 1621, - "src": "788:84:5", + "scope": 2504, + "src": "979:61:18", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { - "anonymous": false, + "body": null, "documentation": null, - "id": 1614, - "name": "LogIssuance", - "nodeType": "EventDefinition", + "id": 2496, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", "parameters": { - "id": 1613, + "id": 2494, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1610, - "indexed": true, - "name": "_sender", + "id": 2491, + "name": "_issuer", "nodeType": "VariableDeclaration", - "scope": 1614, - "src": "905:23:5", + "scope": 2496, + "src": "1069:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -649,10 +728,10 @@ export const ISetToken = "typeString": "address" }, "typeName": { - "id": 1609, + "id": 2490, "name": "address", "nodeType": "ElementaryTypeName", - "src": "905:7:5", + "src": "1069:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -663,12 +742,11 @@ export const ISetToken = }, { "constant": false, - "id": 1612, - "indexed": false, + "id": 2493, "name": "_quantity", "nodeType": "VariableDeclaration", - "scope": 1614, - "src": "938:14:5", + "scope": 2496, + "src": "1094:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -676,10 +754,10 @@ export const ISetToken = "typeString": "uint256" }, "typeName": { - "id": 1611, + "id": 2492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "938:4:5", + "src": "1094:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -689,28 +767,42 @@ export const ISetToken = "visibility": "internal" } ], - "src": "895:63:5" + "src": "1059:55:18" + }, + "payable": false, + "returnParameters": { + "id": 2495, + "nodeType": "ParameterList", + "parameters": [], + "src": "1131:0:18" }, - "src": "878:81:5" + "scope": 2504, + "src": "1046:86:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" }, { - "anonymous": false, + "body": null, "documentation": null, - "id": 1620, - "name": "LogRedemption", - "nodeType": "EventDefinition", + "id": 2503, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", "parameters": { - "id": 1619, + "id": 2501, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1616, - "indexed": true, - "name": "_sender", + "id": 2498, + "name": "_from", "nodeType": "VariableDeclaration", - "scope": 1620, - "src": "994:23:5", + "scope": 2503, + "src": "1161:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -718,10 +810,10 @@ export const ISetToken = "typeString": "address" }, "typeName": { - "id": 1615, + "id": 2497, "name": "address", "nodeType": "ElementaryTypeName", - "src": "994:7:5", + "src": "1161:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -732,12 +824,11 @@ export const ISetToken = }, { "constant": false, - "id": 1618, - "indexed": false, + "id": 2500, "name": "_quantity", "nodeType": "VariableDeclaration", - "scope": 1620, - "src": "1027:14:5", + "scope": 2503, + "src": "1184:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -745,10 +836,10 @@ export const ISetToken = "typeString": "uint256" }, "typeName": { - "id": 1617, + "id": 2499, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1027:4:5", + "src": "1184:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -758,22 +849,33 @@ export const ISetToken = "visibility": "internal" } ], - "src": "984:63:5" + "src": "1151:53:18" }, - "src": "965:83:5" + "payable": false, + "returnParameters": { + "id": 2502, + "nodeType": "ParameterList", + "parameters": [], + "src": "1221:0:18" + }, + "scope": 2504, + "src": "1138:84:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" } ], - "scope": 1622, - "src": "64:986:5" + "scope": 2505, + "src": "809:415:18" } ], - "src": "0:1051:5" + "src": "597:628:18" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.578Z" + "updatedAt": "2018-07-07T07:45:08.904Z" } \ No newline at end of file diff --git a/artifacts/ts/ITransferProxy.ts b/artifacts/ts/ITransferProxy.ts new file mode 100644 index 000000000..10db8556d --- /dev/null +++ b/artifacts/ts/ITransferProxy.ts @@ -0,0 +1,337 @@ +export const ITransferProxy = +{ + "contractName": "ITransferProxy", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "transferToVault", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n/**\n * @title ITransferProxy\n * @author Set Protocol\n *\n * The ITransferProxy interface provides a light-weight, structured way to interact with the\n * TransferProxy contract from another contract.\n */\ninterface ITransferProxy {\n\n /**\n * Transfers tokens from an address (that has set allowance on the proxy) to the vault.\n * Can only be called by authorized core contracts.\n *\n * @param _from The address to transfer tokens from\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to transfer\n */\n function transferToVault(\n address _from,\n address _tokenAddress,\n uint _quantity\n )\n external;\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ITransferProxy.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ITransferProxy.sol", + "exportedSymbols": { + "ITransferProxy": [ + 2516 + ] + }, + "id": 2517, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2506, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:19" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ITransferProxy\n@author Set Protocol\n * The ITransferProxy interface provides a light-weight, structured way to interact with the\nTransferProxy contract from another contract.", + "fullyImplemented": false, + "id": 2516, + "linearizedBaseContracts": [ + 2516 + ], + "name": "ITransferProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Transfers tokens from an address (that has set allowance on the proxy) to the vault.\nCan only be called by authorized core contracts.\n * @param _from The address to transfer tokens from\n@param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to transfer", + "id": 2515, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferToVault", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2508, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 2515, + "src": "1254:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1254:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2510, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2515, + "src": "1277:21:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2509, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1277:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2512, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2515, + "src": "1308:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2511, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1308:4:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1244:84:19" + }, + "payable": false, + "returnParameters": { + "id": 2514, + "nodeType": "ParameterList", + "parameters": [], + "src": "1345:0:19" + }, + "scope": 2516, + "src": "1220:126:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2517, + "src": "824:524:19" + } + ], + "src": "597:752:19" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ITransferProxy.sol", + "exportedSymbols": { + "ITransferProxy": [ + 2516 + ] + }, + "id": 2517, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2506, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:19" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ITransferProxy\n@author Set Protocol\n * The ITransferProxy interface provides a light-weight, structured way to interact with the\nTransferProxy contract from another contract.", + "fullyImplemented": false, + "id": 2516, + "linearizedBaseContracts": [ + 2516 + ], + "name": "ITransferProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "Transfers tokens from an address (that has set allowance on the proxy) to the vault.\nCan only be called by authorized core contracts.\n * @param _from The address to transfer tokens from\n@param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to transfer", + "id": 2515, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferToVault", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2508, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 2515, + "src": "1254:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1254:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2510, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2515, + "src": "1277:21:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2509, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1277:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2512, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2515, + "src": "1308:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2511, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1308:4:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1244:84:19" + }, + "payable": false, + "returnParameters": { + "id": 2514, + "nodeType": "ParameterList", + "parameters": [], + "src": "1345:0:19" + }, + "scope": 2516, + "src": "1220:126:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2517, + "src": "824:524:19" + } + ], + "src": "597:752:19" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.904Z" +} \ No newline at end of file diff --git a/artifacts/ts/IVault.ts b/artifacts/ts/IVault.ts new file mode 100644 index 000000000..cf3cc5a74 --- /dev/null +++ b/artifacts/ts/IVault.ts @@ -0,0 +1,1054 @@ +export const IVault = +{ + "contractName": "IVault", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "withdrawTo", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "incrementTokenOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "decrementTokenOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + } + ], + "name": "getOwnerBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n/**\n * @title IVault\n * @author Set Protocol\n *\n * The IVault interface provides a light-weight, structured way to interact with the Vault\n * contract from another contract.\n */\ninterface IVault {\n\n /*\n * Withdraws user's unassociated tokens to user account. Can only be\n * called by authorized core contracts.\n *\n * @param _tokenAddress The address of the ERC20 token\n * @param _to The address to transfer token to\n * @param _quantity The number of tokens to transfer\n */\n function withdrawTo(\n address _tokenAddress,\n address _to,\n uint _quantity\n )\n external;\n\n /*\n * Increment quantity owned of a token for a given address. Can\n * only be called by authorized core contracts.\n *\n * @param _owner The address of the token owner\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to attribute to owner\n */\n function incrementTokenOwner(\n address _owner,\n address _tokenAddress,\n uint _quantity\n )\n external;\n\n /*\n * Decrement quantity owned of a token for a given address. Can only\n * be called by authorized core contracts.\n *\n * @param _owner The address of the token owner\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to deattribute to owner\n */\n function decrementTokenOwner(\n address _owner,\n address _tokenAddress,\n uint _quantity\n )\n external;\n\n /*\n * Get balance of particular contract for owner.\n *\n * @param _owner The address of the token owner\n * @param _tokenAddress The address of the ERC20 token\n */\n function getOwnerBalance(\n address _owner,\n address _tokenAddress\n )\n external\n returns (uint256);\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IVault.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IVault.sol", + "exportedSymbols": { + "IVault": [ + 2555 + ] + }, + "id": 2556, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2518, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:20" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title IVault\n@author Set Protocol\n * The IVault interface provides a light-weight, structured way to interact with the Vault\ncontract from another contract.", + "fullyImplemented": false, + "id": 2555, + "linearizedBaseContracts": [ + 2555 + ], + "name": "IVault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2527, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdrawTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2520, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2527, + "src": "1182:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2519, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1182:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2522, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2527, + "src": "1213:11:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2521, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1213:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2524, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2527, + "src": "1234:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1234:4:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1172:82:20" + }, + "payable": false, + "returnParameters": { + "id": 2526, + "nodeType": "ParameterList", + "parameters": [], + "src": "1271:0:20" + }, + "scope": 2555, + "src": "1153:119:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2536, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "incrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2529, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1659:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1659:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2531, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1683:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1683:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2533, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1714:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2532, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1714:4:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1649:85:20" + }, + "payable": false, + "returnParameters": { + "id": 2535, + "nodeType": "ParameterList", + "parameters": [], + "src": "1751:0:20" + }, + "scope": 2555, + "src": "1621:131:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2545, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "decrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2538, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "2141:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2141:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2540, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "2165:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2165:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2542, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "2196:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2541, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2196:4:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2131:85:20" + }, + "payable": false, + "returnParameters": { + "id": 2544, + "nodeType": "ParameterList", + "parameters": [], + "src": "2233:0:20" + }, + "scope": 2555, + "src": "2103:131:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2554, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "getOwnerBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2547, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "2475:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2475:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2549, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "2499:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2548, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2499:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2465:61:20" + }, + "payable": false, + "returnParameters": { + "id": 2553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2552, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "2561:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2560:9:20" + }, + "scope": 2555, + "src": "2441:129:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2556, + "src": "800:1772:20" + } + ], + "src": "597:1976:20" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/IVault.sol", + "exportedSymbols": { + "IVault": [ + 2555 + ] + }, + "id": 2556, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2518, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:20" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title IVault\n@author Set Protocol\n * The IVault interface provides a light-weight, structured way to interact with the Vault\ncontract from another contract.", + "fullyImplemented": false, + "id": 2555, + "linearizedBaseContracts": [ + 2555 + ], + "name": "IVault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 2527, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdrawTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2520, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2527, + "src": "1182:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2519, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1182:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2522, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 2527, + "src": "1213:11:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2521, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1213:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2524, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2527, + "src": "1234:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1234:4:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1172:82:20" + }, + "payable": false, + "returnParameters": { + "id": 2526, + "nodeType": "ParameterList", + "parameters": [], + "src": "1271:0:20" + }, + "scope": 2555, + "src": "1153:119:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2536, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "incrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2529, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1659:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1659:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2531, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1683:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1683:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2533, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1714:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2532, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1714:4:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1649:85:20" + }, + "payable": false, + "returnParameters": { + "id": 2535, + "nodeType": "ParameterList", + "parameters": [], + "src": "1751:0:20" + }, + "scope": 2555, + "src": "1621:131:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2545, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "decrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2538, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "2141:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2141:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2540, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "2165:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2165:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2542, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 2545, + "src": "2196:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2541, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2196:4:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2131:85:20" + }, + "payable": false, + "returnParameters": { + "id": 2544, + "nodeType": "ParameterList", + "parameters": [], + "src": "2233:0:20" + }, + "scope": 2555, + "src": "2103:131:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 2554, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "getOwnerBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2547, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "2475:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2475:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2549, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "2499:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2548, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2499:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2465:61:20" + }, + "payable": false, + "returnParameters": { + "id": 2553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2552, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2554, + "src": "2561:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2560:9:20" + }, + "scope": 2555, + "src": "2441:129:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2556, + "src": "800:1772:20" + } + ], + "src": "597:1976:20" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.904Z" +} \ No newline at end of file diff --git a/artifacts/ts/LibBytes.ts b/artifacts/ts/LibBytes.ts new file mode 100644 index 000000000..cee6e9ccc --- /dev/null +++ b/artifacts/ts/LibBytes.ts @@ -0,0 +1,3780 @@ +export const LibBytes = +{ + "contractName": "LibBytes", + "abi": [], + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058206cb9a05f48382d6e69ab5a59af18a419ff3ba1f4cf32b4f00a74ad1facb9b30e0029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058206cb9a05f48382d6e69ab5a59af18a419ff3ba1f4cf32b4f00a74ad1facb9b30e0029", + "sourceMap": "601:6649:26:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "601:6649:26:-;;;;;;;;", + "source": "/*\n Copyright 2018 ZeroEx Intl.\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity ^0.4.24;\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n \n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(bytes memory b, uint256 from, uint256 to)\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n // NOTE: Set Protocol changed from `to < b.length` so that the last byte can be sliced off\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length);\n return result;\n } \n}", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "exportedSymbols": { + "LibBytes": [ + 3107 + ] + }, + "id": 3108, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2983, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "575:24:26" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 3107, + "linearizedBaseContracts": [ + 3107 + ], + "name": "LibBytes", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2986, + "libraryName": { + "contractScope": null, + "id": 2984, + "name": "LibBytes", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3107, + "src": "631:8:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LibBytes_$3107", + "typeString": "library LibBytes" + } + }, + "nodeType": "UsingForDirective", + "src": "625:25:26", + "typeName": { + "id": 2985, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "644:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + { + "body": { + "id": 2996, + "nodeType": "Block", + "src": "968:110:26", + "statements": [ + { + "externalReferences": [ + { + "memoryAddress": { + "declaration": 2991, + "isOffset": false, + "isSlot": false, + "src": "1001:13:26", + "valueSize": 1 + } + }, + { + "input": { + "declaration": 2988, + "isOffset": false, + "isSlot": false, + "src": "1022:5:26", + "valueSize": 1 + } + } + ], + "id": 2993, + "nodeType": "InlineAssembly", + "operations": "{\n memoryAddress := add(input, 32)\n}", + "src": "978:79:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 2994, + "name": "memoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "1058:13:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2992, + "id": 2995, + "nodeType": "Return", + "src": "1051:20:26" + } + ] + }, + "documentation": "@dev Gets the memory address for the contents of a byte array.\n @param input Byte array to lookup.\n @return memoryAddress Memory address of the contents of the byte array.", + "id": 2997, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "contentAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2988, + "name": "input", + "nodeType": "VariableDeclaration", + "scope": 2997, + "src": "874:18:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2987, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "874:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "873:20:26" + }, + "payable": false, + "returnParameters": { + "id": 2992, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2991, + "name": "memoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2997, + "src": "941:21:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2990, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "941:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "940:23:26" + }, + "scope": 3107, + "src": "850:228:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3023, + "nodeType": "Block", + "src": "1456:349:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3007, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2999, + "src": "1487:1:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1487:8:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3009, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "1499:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 3010, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1507:2:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "1499:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1487:22:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544", + "id": 3013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1523:40:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_41046b31734c52276370384fb83a6ed9556edf77c382e1949fa233dc03b3aa40", + "typeString": "literal_string \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"" + }, + "value": "GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_41046b31734c52276370384fb83a6ed9556edf77c382e1949fa233dc03b3aa40", + "typeString": "literal_string \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"" + } + ], + "id": 3006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1466:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1466:107:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3015, + "nodeType": "ExpressionStatement", + "src": "1466:107:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3016, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "1645:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3332", + "id": 3017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1654:2:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "1645:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3019, + "nodeType": "ExpressionStatement", + "src": "1645:11:26" + }, + { + "externalReferences": [ + { + "result": { + "declaration": 3004, + "isOffset": false, + "isSlot": false, + "src": "1736:6:26", + "valueSize": 1 + } + }, + { + "b": { + "declaration": 2999, + "isOffset": false, + "isSlot": false, + "src": "1756:1:26", + "valueSize": 1 + } + }, + { + "index": { + "declaration": 3001, + "isOffset": false, + "isSlot": false, + "src": "1759:5:26", + "valueSize": 1 + } + } + ], + "id": 3020, + "nodeType": "InlineAssembly", + "operations": "{\n result := mload(add(b, index))\n}", + "src": "1713:78:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3021, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3004, + "src": "1792:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 3005, + "id": 3022, + "nodeType": "Return", + "src": "1785:13:26" + } + ] + }, + "documentation": "@dev Reads a bytes32 value from a position in a byte array.\n @param b Byte array containing a bytes32 value.\n @param index Index in byte array of bytes32 value.\n @return bytes32 value from byte array.", + "id": 3024, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "readBytes32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3002, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2999, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3024, + "src": "1345:14:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2998, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1345:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3001, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 3024, + "src": "1369:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1369:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1335:53:26" + }, + "payable": false, + "returnParameters": { + "id": 3005, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3004, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 3024, + "src": "1436:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3003, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1436:7:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1435:16:26" + }, + "scope": 3107, + "src": "1315:490:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3054, + "nodeType": "Block", + "src": "2171:4080:26", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3033, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3030, + "src": "2185:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 3034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2194:2:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "2185:11:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3052, + "nodeType": "Block", + "src": "2657:3588:26", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3038, + "name": "source", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3028, + "src": "2735:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3039, + "name": "dest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3026, + "src": "2745:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2735:14:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3043, + "nodeType": "IfStatement", + "src": "2731:59:26", + "trueBody": { + "id": 3042, + "nodeType": "Block", + "src": "2751:39:26", + "statements": [ + { + "expression": null, + "functionReturnParameters": 3032, + "id": 3041, + "nodeType": "Return", + "src": "2769:7:26" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3044, + "name": "source", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3028, + "src": "3470:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 3045, + "name": "dest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3026, + "src": "3479:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3470:13:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3050, + "nodeType": "Block", + "src": "4756:1479:26", + "statements": [ + { + "externalReferences": [ + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "4973:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "4959:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "5021:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "5029:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "5389:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "5073:4:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "5079:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "5914:4:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "6191:4:26", + "valueSize": 1 + } + } + ], + "id": 3049, + "nodeType": "InlineAssembly", + "operations": "{\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n let first := mload(source)\n for {\n }\n slt(dest, dEnd)\n {\n }\n {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n mstore(dest, first)\n}", + "src": "4774:1461:26" + } + ] + }, + "id": 3051, + "nodeType": "IfStatement", + "src": "3466:2769:26", + "trueBody": { + "id": 3048, + "nodeType": "Block", + "src": "3485:1265:26", + "statements": [ + { + "externalReferences": [ + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3783:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3797:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "3845:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3853:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4423:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "3897:4:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3903:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "4473:4:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4485:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4518:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "4568:4:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4532:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "4580:4:26", + "valueSize": 1 + } + } + ], + "id": 3047, + "nodeType": "InlineAssembly", + "operations": "{\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n let last := mload(sEnd)\n for {\n }\n lt(source, sEnd)\n {\n }\n {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n mstore(dEnd, last)\n}", + "src": "3503:1247:26" + } + ] + } + } + ] + }, + "id": 3053, + "nodeType": "IfStatement", + "src": "2181:4064:26", + "trueBody": { + "id": 3037, + "nodeType": "Block", + "src": "2198:453:26", + "statements": [ + { + "externalReferences": [ + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "2473:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "2576:4:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "2521:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "2612:4:26", + "valueSize": 1 + } + } + ], + "id": 3036, + "nodeType": "InlineAssembly", + "operations": "{\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n}", + "src": "2413:238:26" + } + ] + } + } + ] + }, + "documentation": "@dev Copies `length` bytes from memory location `source` to `dest`.\n @param dest memory address to copy bytes to.\n @param source memory address to copy bytes from.\n @param length number of bytes to copy.", + "id": 3055, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "memCopy", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3026, + "name": "dest", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2070:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2070:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3028, + "name": "source", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2092:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3027, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2092:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3030, + "name": "length", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2116:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3029, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2116:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2060:76:26" + }, + "payable": false, + "returnParameters": { + "id": 3032, + "nodeType": "ParameterList", + "parameters": [], + "src": "2171:0:26" + }, + "scope": 3107, + "src": "2044:4207:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3105, + "nodeType": "Block", + "src": "6692:552:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3067, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3059, + "src": "6723:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3068, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3061, + "src": "6731:2:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6723:10:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "46524f4d5f4c4553535f5448414e5f544f5f5245515549524544", + "id": 3070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6747:28:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1b95cec571d66445cedbd96155c82949976c614b261f1c5fe27223590583fd4f", + "typeString": "literal_string \"FROM_LESS_THAN_TO_REQUIRED\"" + }, + "value": "FROM_LESS_THAN_TO_REQUIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1b95cec571d66445cedbd96155c82949976c614b261f1c5fe27223590583fd4f", + "typeString": "literal_string \"FROM_LESS_THAN_TO_REQUIRED\"" + } + ], + "id": 3066, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "6702:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6702:83:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3072, + "nodeType": "ExpressionStatement", + "src": "6702:83:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3074, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3061, + "src": "6919:2:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3057, + "src": "6925:1:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6925:8:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6919:14:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "544f5f4c4553535f5448414e5f4c454e4754485f5245515549524544", + "id": 3078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6947:30:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_22dab502afcaac39972ef428907ba5ff6a51956bfa1c4002b6aa8a752256c29a", + "typeString": "literal_string \"TO_LESS_THAN_LENGTH_REQUIRED\"" + }, + "value": "TO_LESS_THAN_LENGTH_REQUIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_22dab502afcaac39972ef428907ba5ff6a51956bfa1c4002b6aa8a752256c29a", + "typeString": "literal_string \"TO_LESS_THAN_LENGTH_REQUIRED\"" + } + ], + "id": 3073, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "6795:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6795:192:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3080, + "nodeType": "ExpressionStatement", + "src": "6795:192:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3081, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7064:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3084, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3061, + "src": "7083:2:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3085, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3059, + "src": "7088:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7083:9:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "7073:9:26", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 3082, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7077:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7073:20:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "src": "7064:29:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3089, + "nodeType": "ExpressionStatement", + "src": "7064:29:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3091, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7124:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "7124:21:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 3093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7124:23:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3094, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3057, + "src": "7161:1:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "7161:16:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 3096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7161:18:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 3097, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3059, + "src": "7182:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7161:25:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3099, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7200:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7200:13:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3090, + "name": "memCopy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3055, + "src": "7103:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256) pure" + } + }, + "id": 3101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7103:111:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3102, + "nodeType": "ExpressionStatement", + "src": "7103:111:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3103, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7231:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3065, + "id": 3104, + "nodeType": "Return", + "src": "7224:13:26" + } + ] + }, + "documentation": "@dev Returns a slices from a byte array.\n @param b The byte array to take a slice from.\n @param from The starting index for the slice (inclusive).\n @param to The final index for the slice (exclusive).\n @return result The slice containing bytes at indices [from, to)", + "id": 3106, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "slice", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3057, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6578:14:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3056, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6578:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3059, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6594:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6594:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3061, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6608:10:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3060, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6608:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6577:42:26" + }, + "payable": false, + "returnParameters": { + "id": 3065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3064, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6667:19:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3063, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6667:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6666:21:26" + }, + "scope": 3107, + "src": "6563:681:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 3108, + "src": "601:6649:26" + } + ], + "src": "575:6675:26" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "exportedSymbols": { + "LibBytes": [ + 3107 + ] + }, + "id": 3108, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2983, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "575:24:26" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 3107, + "linearizedBaseContracts": [ + 3107 + ], + "name": "LibBytes", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2986, + "libraryName": { + "contractScope": null, + "id": 2984, + "name": "LibBytes", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3107, + "src": "631:8:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LibBytes_$3107", + "typeString": "library LibBytes" + } + }, + "nodeType": "UsingForDirective", + "src": "625:25:26", + "typeName": { + "id": 2985, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "644:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + { + "body": { + "id": 2996, + "nodeType": "Block", + "src": "968:110:26", + "statements": [ + { + "externalReferences": [ + { + "memoryAddress": { + "declaration": 2991, + "isOffset": false, + "isSlot": false, + "src": "1001:13:26", + "valueSize": 1 + } + }, + { + "input": { + "declaration": 2988, + "isOffset": false, + "isSlot": false, + "src": "1022:5:26", + "valueSize": 1 + } + } + ], + "id": 2993, + "nodeType": "InlineAssembly", + "operations": "{\n memoryAddress := add(input, 32)\n}", + "src": "978:79:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 2994, + "name": "memoryAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "1058:13:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2992, + "id": 2995, + "nodeType": "Return", + "src": "1051:20:26" + } + ] + }, + "documentation": "@dev Gets the memory address for the contents of a byte array.\n @param input Byte array to lookup.\n @return memoryAddress Memory address of the contents of the byte array.", + "id": 2997, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "contentAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2988, + "name": "input", + "nodeType": "VariableDeclaration", + "scope": 2997, + "src": "874:18:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2987, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "874:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "873:20:26" + }, + "payable": false, + "returnParameters": { + "id": 2992, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2991, + "name": "memoryAddress", + "nodeType": "VariableDeclaration", + "scope": 2997, + "src": "941:21:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2990, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "941:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "940:23:26" + }, + "scope": 3107, + "src": "850:228:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3023, + "nodeType": "Block", + "src": "1456:349:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3007, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2999, + "src": "1487:1:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1487:8:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3009, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "1499:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 3010, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1507:2:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "1499:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1487:22:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544", + "id": 3013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1523:40:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_41046b31734c52276370384fb83a6ed9556edf77c382e1949fa233dc03b3aa40", + "typeString": "literal_string \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"" + }, + "value": "GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_41046b31734c52276370384fb83a6ed9556edf77c382e1949fa233dc03b3aa40", + "typeString": "literal_string \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"" + } + ], + "id": 3006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "1466:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1466:107:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3015, + "nodeType": "ExpressionStatement", + "src": "1466:107:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3016, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "1645:5:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3332", + "id": 3017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1654:2:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "1645:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3019, + "nodeType": "ExpressionStatement", + "src": "1645:11:26" + }, + { + "externalReferences": [ + { + "result": { + "declaration": 3004, + "isOffset": false, + "isSlot": false, + "src": "1736:6:26", + "valueSize": 1 + } + }, + { + "b": { + "declaration": 2999, + "isOffset": false, + "isSlot": false, + "src": "1756:1:26", + "valueSize": 1 + } + }, + { + "index": { + "declaration": 3001, + "isOffset": false, + "isSlot": false, + "src": "1759:5:26", + "valueSize": 1 + } + } + ], + "id": 3020, + "nodeType": "InlineAssembly", + "operations": "{\n result := mload(add(b, index))\n}", + "src": "1713:78:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3021, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3004, + "src": "1792:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 3005, + "id": 3022, + "nodeType": "Return", + "src": "1785:13:26" + } + ] + }, + "documentation": "@dev Reads a bytes32 value from a position in a byte array.\n @param b Byte array containing a bytes32 value.\n @param index Index in byte array of bytes32 value.\n @return bytes32 value from byte array.", + "id": 3024, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "readBytes32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3002, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2999, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3024, + "src": "1345:14:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2998, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1345:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3001, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 3024, + "src": "1369:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1369:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1335:53:26" + }, + "payable": false, + "returnParameters": { + "id": 3005, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3004, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 3024, + "src": "1436:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3003, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1436:7:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1435:16:26" + }, + "scope": 3107, + "src": "1315:490:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3054, + "nodeType": "Block", + "src": "2171:4080:26", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3033, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3030, + "src": "2185:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 3034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2194:2:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "2185:11:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3052, + "nodeType": "Block", + "src": "2657:3588:26", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3038, + "name": "source", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3028, + "src": "2735:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3039, + "name": "dest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3026, + "src": "2745:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2735:14:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3043, + "nodeType": "IfStatement", + "src": "2731:59:26", + "trueBody": { + "id": 3042, + "nodeType": "Block", + "src": "2751:39:26", + "statements": [ + { + "expression": null, + "functionReturnParameters": 3032, + "id": 3041, + "nodeType": "Return", + "src": "2769:7:26" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3044, + "name": "source", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3028, + "src": "3470:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 3045, + "name": "dest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3026, + "src": "3479:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3470:13:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3050, + "nodeType": "Block", + "src": "4756:1479:26", + "statements": [ + { + "externalReferences": [ + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "4973:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "4959:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "5021:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "5029:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "5389:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "5073:4:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "5079:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "5914:4:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "6191:4:26", + "valueSize": 1 + } + } + ], + "id": 3049, + "nodeType": "InlineAssembly", + "operations": "{\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n let first := mload(source)\n for {\n }\n slt(dest, dEnd)\n {\n }\n {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n mstore(dest, first)\n}", + "src": "4774:1461:26" + } + ] + }, + "id": 3051, + "nodeType": "IfStatement", + "src": "3466:2769:26", + "trueBody": { + "id": 3048, + "nodeType": "Block", + "src": "3485:1265:26", + "statements": [ + { + "externalReferences": [ + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3783:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3797:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "3845:6:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3853:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4423:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "3897:4:26", + "valueSize": 1 + } + }, + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "3903:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "4473:4:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4485:6:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4518:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "4568:4:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "4532:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "4580:4:26", + "valueSize": 1 + } + } + ], + "id": 3047, + "nodeType": "InlineAssembly", + "operations": "{\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n let last := mload(sEnd)\n for {\n }\n lt(source, sEnd)\n {\n }\n {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n mstore(dEnd, last)\n}", + "src": "3503:1247:26" + } + ] + } + } + ] + }, + "id": 3053, + "nodeType": "IfStatement", + "src": "2181:4064:26", + "trueBody": { + "id": 3037, + "nodeType": "Block", + "src": "2198:453:26", + "statements": [ + { + "externalReferences": [ + { + "length": { + "declaration": 3030, + "isOffset": false, + "isSlot": false, + "src": "2473:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "2576:4:26", + "valueSize": 1 + } + }, + { + "source": { + "declaration": 3028, + "isOffset": false, + "isSlot": false, + "src": "2521:6:26", + "valueSize": 1 + } + }, + { + "dest": { + "declaration": 3026, + "isOffset": false, + "isSlot": false, + "src": "2612:4:26", + "valueSize": 1 + } + } + ], + "id": 3036, + "nodeType": "InlineAssembly", + "operations": "{\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n}", + "src": "2413:238:26" + } + ] + } + } + ] + }, + "documentation": "@dev Copies `length` bytes from memory location `source` to `dest`.\n @param dest memory address to copy bytes to.\n @param source memory address to copy bytes from.\n @param length number of bytes to copy.", + "id": 3055, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "memCopy", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3026, + "name": "dest", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2070:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2070:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3028, + "name": "source", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2092:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3027, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2092:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3030, + "name": "length", + "nodeType": "VariableDeclaration", + "scope": 3055, + "src": "2116:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3029, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2116:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2060:76:26" + }, + "payable": false, + "returnParameters": { + "id": 3032, + "nodeType": "ParameterList", + "parameters": [], + "src": "2171:0:26" + }, + "scope": 3107, + "src": "2044:4207:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 3105, + "nodeType": "Block", + "src": "6692:552:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3067, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3059, + "src": "6723:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3068, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3061, + "src": "6731:2:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6723:10:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "46524f4d5f4c4553535f5448414e5f544f5f5245515549524544", + "id": 3070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6747:28:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1b95cec571d66445cedbd96155c82949976c614b261f1c5fe27223590583fd4f", + "typeString": "literal_string \"FROM_LESS_THAN_TO_REQUIRED\"" + }, + "value": "FROM_LESS_THAN_TO_REQUIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1b95cec571d66445cedbd96155c82949976c614b261f1c5fe27223590583fd4f", + "typeString": "literal_string \"FROM_LESS_THAN_TO_REQUIRED\"" + } + ], + "id": 3066, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "6702:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6702:83:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3072, + "nodeType": "ExpressionStatement", + "src": "6702:83:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3074, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3061, + "src": "6919:2:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3057, + "src": "6925:1:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6925:8:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6919:14:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "544f5f4c4553535f5448414e5f4c454e4754485f5245515549524544", + "id": 3078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6947:30:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_22dab502afcaac39972ef428907ba5ff6a51956bfa1c4002b6aa8a752256c29a", + "typeString": "literal_string \"TO_LESS_THAN_LENGTH_REQUIRED\"" + }, + "value": "TO_LESS_THAN_LENGTH_REQUIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_22dab502afcaac39972ef428907ba5ff6a51956bfa1c4002b6aa8a752256c29a", + "typeString": "literal_string \"TO_LESS_THAN_LENGTH_REQUIRED\"" + } + ], + "id": 3073, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "6795:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6795:192:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3080, + "nodeType": "ExpressionStatement", + "src": "6795:192:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3081, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7064:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3084, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3061, + "src": "7083:2:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3085, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3059, + "src": "7088:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7083:9:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "7073:9:26", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 3082, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7077:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7073:20:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "src": "7064:29:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3089, + "nodeType": "ExpressionStatement", + "src": "7064:29:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3091, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7124:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "7124:21:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 3093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7124:23:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3094, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3057, + "src": "7161:1:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "7161:16:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 3096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7161:18:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 3097, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3059, + "src": "7182:4:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7161:25:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3099, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7200:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7200:13:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3090, + "name": "memCopy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3055, + "src": "7103:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256) pure" + } + }, + "id": 3101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7103:111:26", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3102, + "nodeType": "ExpressionStatement", + "src": "7103:111:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 3103, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "7231:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3065, + "id": 3104, + "nodeType": "Return", + "src": "7224:13:26" + } + ] + }, + "documentation": "@dev Returns a slices from a byte array.\n @param b The byte array to take a slice from.\n @param from The starting index for the slice (inclusive).\n @param to The final index for the slice (exclusive).\n @return result The slice containing bytes at indices [from, to)", + "id": 3106, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "slice", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3057, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6578:14:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3056, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6578:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3059, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6594:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6594:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3061, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6608:10:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3060, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6608:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6577:42:26" + }, + "payable": false, + "returnParameters": { + "id": 3065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3064, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 3106, + "src": "6667:19:26", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3063, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6667:5:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6666:21:26" + }, + "scope": 3107, + "src": "6563:681:26", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 3108, + "src": "601:6649:26" + } + ], + "src": "575:6675:26" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.906Z" +} \ No newline at end of file diff --git a/artifacts/ts/Migrations.ts b/artifacts/ts/Migrations.ts index 6c4b6d500..ea20bc993 100644 --- a/artifacts/ts/Migrations.ts +++ b/artifacts/ts/Migrations.ts @@ -65,14 +65,14 @@ export const Migrations = "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f010146100675780638da5cb5b146100aa578063fbdbad3c14610101578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561010d57600080fd5b50610116610266565b6040518082815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820687dff76cd7061b0f19ded19f5891be2d90b14b8016a55e64a74d4fed5e991e80029", - "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f010146100675780638da5cb5b146100aa578063fbdbad3c14610101578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561010d57600080fd5b50610116610266565b6040518082815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820687dff76cd7061b0f19ded19f5891be2d90b14b8016a55e64a74d4fed5e991e80029", + "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f010146100675780638da5cb5b146100aa578063fbdbad3c14610101578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561010d57600080fd5b50610116610266565b6040518082815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a7230582022dc6efc567e7501037ec87ecfa2d8a5380b54d06f2926041190c80a8cd7810b0029", + "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f010146100675780638da5cb5b146100aa578063fbdbad3c14610101578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561010d57600080fd5b50610116610266565b6040518082815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a7230582022dc6efc567e7501037ec87ecfa2d8a5380b54d06f2926041190c80a8cd7810b0029", "sourceMap": "26:472:0:-;;;176:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;176:50:0;211:10;203:5;;:18;;;;;;;;;;;;;;;;;;26:472;;;;;;", "deployedSourceMap": "26:472:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;335:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;335:161:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;50:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;74:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;74:34:0;;;;;;;;;;;;;;;;;;;;;;;230:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;230:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;335:161;396:19;159:5;;;;;;;;;;;145:19;;:10;:19;;;141:26;;;429:10;396:44;;446:8;:21;;;468:22;;446:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;446:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;446:45:0;;;;141:26;335:161;;:::o;50:20::-;;;;;;;;;;;;;:::o;74:34::-;;;;:::o;230:101::-;159:5;;;;;;;;;;;145:19;;:10;:19;;;141:26;;;317:9;292:22;:34;;;;141:26;230:101;:::o", - "source": "pragma solidity 0.4.23;\n\n\ncontract Migrations {\n address public owner;\n uint public lastCompletedMigration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n lastCompletedMigration = completed;\n }\n\n function upgrade(address newAddress) public restricted {\n Migrations upgraded = Migrations(newAddress);\n upgraded.setCompleted(lastCompletedMigration);\n }\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/Migrations.sol", + "source": "pragma solidity 0.4.24;\n\n\ncontract Migrations {\n address public owner;\n uint public lastCompletedMigration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n lastCompletedMigration = completed;\n }\n\n function upgrade(address newAddress) public restricted {\n Migrations upgraded = Migrations(newAddress);\n upgraded.setCompleted(lastCompletedMigration);\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/Migrations.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/Migrations.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ 56 @@ -86,7 +86,7 @@ export const Migrations = "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", "src": "0:23:0" @@ -182,7 +182,7 @@ export const Migrations = "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, + "referencedDeclaration": 5397, "src": "145:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -286,7 +286,7 @@ export const Migrations = "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, + "referencedDeclaration": 5397, "src": "211:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -721,7 +721,7 @@ export const Migrations = "src": "0:499:0" }, "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/Migrations.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ 56 @@ -735,7 +735,7 @@ export const Migrations = "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", "src": "0:23:0" @@ -831,7 +831,7 @@ export const Migrations = "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, + "referencedDeclaration": 5397, "src": "145:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -935,7 +935,7 @@ export const Migrations = "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, + "referencedDeclaration": 5397, "src": "211:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -1371,9 +1371,9 @@ export const Migrations = }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.576Z" + "updatedAt": "2018-07-07T07:45:08.888Z" } \ No newline at end of file diff --git a/artifacts/ts/MintableToken.ts b/artifacts/ts/MintableToken.ts index 042fc66b2..71c458799 100644 --- a/artifacts/ts/MintableToken.ts +++ b/artifacts/ts/MintableToken.ts @@ -362,24 +362,24 @@ export const MintableToken = "type": "function" } ], - "bytecode": "0x60806040526000600360146101000a81548160ff02191690831515021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061173d8061006f6000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b146100d5578063095ea7b31461010457806318160ddd1461016957806323b872dd1461019457806340c10f1914610219578063661884631461027e57806370a08231146102e3578063715018a61461033a5780637d64bcb4146103515780638da5cb5b14610380578063a9059cbb146103d7578063d73dd6231461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100e157600080fd5b506100ea61055b565b604051808215151515815260200191505060405180910390f35b34801561011057600080fd5b5061014f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061056e565b604051808215151515815260200191505060405180910390f35b34801561017557600080fd5b5061017e610660565b6040518082815260200191505060405180910390f35b3480156101a057600080fd5b506101ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061066a565b604051808215151515815260200191505060405180910390f35b34801561022557600080fd5b50610264600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a24565b604051808215151515815260200191505060405180910390f35b34801561028a57600080fd5b506102c9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c0a565b604051808215151515815260200191505060405180910390f35b3480156102ef57600080fd5b50610324600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e9b565b6040518082815260200191505060405180910390f35b34801561034657600080fd5b5061034f610ee3565b005b34801561035d57600080fd5b50610366610fe8565b604051808215151515815260200191505060405180910390f35b34801561038c57600080fd5b506103956110b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e357600080fd5b50610422600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110d6565b604051808215151515815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112f5565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f1565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611578565b005b600360149054906101000a900460ff1681565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106a757600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156106f457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561077f57600080fd5b6107d0826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610863826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a8257600080fd5b600360149054906101000a900460ff16151515610a9e57600080fd5b610ab3826001546115f990919063ffffffff16565b600181905550610b0a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d1b576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610daf565b610d2e83826115e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3f57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561104657600080fd5b600360149054906101000a900460ff1615151561106257600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561111357600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561116057600080fd5b6111b1826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611244826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061138682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d457600080fd5b6115dd81611615565b50565b60008282111515156115ee57fe5b818303905092915050565b6000818301905082811015151561160c57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561165157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820d348d553bd1d3ba152f302ce6f4347203a861bde06ffa733e3173f6d9f76ea200029", - "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b146100d5578063095ea7b31461010457806318160ddd1461016957806323b872dd1461019457806340c10f1914610219578063661884631461027e57806370a08231146102e3578063715018a61461033a5780637d64bcb4146103515780638da5cb5b14610380578063a9059cbb146103d7578063d73dd6231461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100e157600080fd5b506100ea61055b565b604051808215151515815260200191505060405180910390f35b34801561011057600080fd5b5061014f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061056e565b604051808215151515815260200191505060405180910390f35b34801561017557600080fd5b5061017e610660565b6040518082815260200191505060405180910390f35b3480156101a057600080fd5b506101ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061066a565b604051808215151515815260200191505060405180910390f35b34801561022557600080fd5b50610264600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a24565b604051808215151515815260200191505060405180910390f35b34801561028a57600080fd5b506102c9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c0a565b604051808215151515815260200191505060405180910390f35b3480156102ef57600080fd5b50610324600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e9b565b6040518082815260200191505060405180910390f35b34801561034657600080fd5b5061034f610ee3565b005b34801561035d57600080fd5b50610366610fe8565b604051808215151515815260200191505060405180910390f35b34801561038c57600080fd5b506103956110b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e357600080fd5b50610422600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110d6565b604051808215151515815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112f5565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f1565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611578565b005b600360149054906101000a900460ff1681565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106a757600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156106f457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561077f57600080fd5b6107d0826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610863826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a8257600080fd5b600360149054906101000a900460ff16151515610a9e57600080fd5b610ab3826001546115f990919063ffffffff16565b600181905550610b0a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d1b576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610daf565b610d2e83826115e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3f57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561104657600080fd5b600360149054906101000a900460ff1615151561106257600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561111357600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561116057600080fd5b6111b1826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611244826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061138682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d457600080fd5b6115dd81611615565b50565b60008282111515156115ee57fe5b818303905092915050565b6000818301905082811015151561160c57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561165157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820d348d553bd1d3ba152f302ce6f4347203a861bde06ffa733e3173f6d9f76ea200029", - "sourceMap": "390:1114:16:-;;;548:5;518:35;;;;;;;;;;;;;;;;;;;;575:10:11;567:5;;:18;;;;;;;;;;;;;;;;;;390:1114:16;;;;;;", - "deployedSourceMap": "390:1114:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;518:35:16;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:12;;;;;;;;;;;;;;;;;;;;;;;736:470:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;936:312:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;936:312:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:425:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:11;;;;;;1362:140:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1362:140:16;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:11;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35:16;;;;;;;;;;;;;:::o;1829:188:17:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;371:83:12:-;415:7;437:12;;430:19;;371:83;:::o;736:470:17:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;936:312:16:-;1050:4;682:5;;;;;;;;;;;668:19;;:10;:19;;;660:28;;;;;;;;593:15;;;;;;;;;;;592:16;584:25;;;;;;;;1079;1096:7;1079:12;;:16;;:25;;;;:::i;:::-;1064:12;:40;;;;1126:26;1144:7;1126:8;:13;1135:3;1126:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;1110:8;:13;1119:3;1110:13;;;;;;;;;;;;;;;:42;;;;1168:3;1163:18;;;1173:7;1163:18;;;;;;;;;;;;;;;;;;1213:3;1192:34;;1209:1;1192:34;;;1218:7;1192:34;;;;;;;;;;;;;;;;;;1239:4;1232:11;;936:312;;;;:::o;3701:425:17:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:12:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;827:111:11:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;1362:140:16:-;1421:4;719:5:11;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;593:15:16;;;;;;;;;;;592:16;584:25;;;;;;;;1451:4;1433:15;;:22;;;;;;;;;;;;;;;;;;1466:14;;;;;;;;;;1493:4;1486:11;;1362:140;:::o;238:20:11:-;;;;;;;;;;;;;:::o;608:321:12:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:17:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1100:103:11:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1042:110:10:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;1338:171:11:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", + "bytecode": "0x60806040526000600360146101000a81548160ff02191690831515021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061173d8061006f6000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b146100d5578063095ea7b31461010457806318160ddd1461016957806323b872dd1461019457806340c10f1914610219578063661884631461027e57806370a08231146102e3578063715018a61461033a5780637d64bcb4146103515780638da5cb5b14610380578063a9059cbb146103d7578063d73dd6231461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100e157600080fd5b506100ea61055b565b604051808215151515815260200191505060405180910390f35b34801561011057600080fd5b5061014f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061056e565b604051808215151515815260200191505060405180910390f35b34801561017557600080fd5b5061017e610660565b6040518082815260200191505060405180910390f35b3480156101a057600080fd5b506101ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061066a565b604051808215151515815260200191505060405180910390f35b34801561022557600080fd5b50610264600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a24565b604051808215151515815260200191505060405180910390f35b34801561028a57600080fd5b506102c9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c0a565b604051808215151515815260200191505060405180910390f35b3480156102ef57600080fd5b50610324600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e9b565b6040518082815260200191505060405180910390f35b34801561034657600080fd5b5061034f610ee3565b005b34801561035d57600080fd5b50610366610fe8565b604051808215151515815260200191505060405180910390f35b34801561038c57600080fd5b506103956110b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e357600080fd5b50610422600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110d6565b604051808215151515815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112f5565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f1565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611578565b005b600360149054906101000a900460ff1681565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106a757600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156106f457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561077f57600080fd5b6107d0826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610863826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a8257600080fd5b600360149054906101000a900460ff16151515610a9e57600080fd5b610ab3826001546115f990919063ffffffff16565b600181905550610b0a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d1b576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610daf565b610d2e83826115e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3f57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561104657600080fd5b600360149054906101000a900460ff1615151561106257600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561111357600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561116057600080fd5b6111b1826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611244826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061138682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d457600080fd5b6115dd81611615565b50565b60008282111515156115ee57fe5b818303905092915050565b6000818301905082811015151561160c57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561165157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582017727eef96a0866d5a3134173d5ffac32fd13d72efde908792ccd32a0910f10c0029", + "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b146100d5578063095ea7b31461010457806318160ddd1461016957806323b872dd1461019457806340c10f1914610219578063661884631461027e57806370a08231146102e3578063715018a61461033a5780637d64bcb4146103515780638da5cb5b14610380578063a9059cbb146103d7578063d73dd6231461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100e157600080fd5b506100ea61055b565b604051808215151515815260200191505060405180910390f35b34801561011057600080fd5b5061014f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061056e565b604051808215151515815260200191505060405180910390f35b34801561017557600080fd5b5061017e610660565b6040518082815260200191505060405180910390f35b3480156101a057600080fd5b506101ff600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061066a565b604051808215151515815260200191505060405180910390f35b34801561022557600080fd5b50610264600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a24565b604051808215151515815260200191505060405180910390f35b34801561028a57600080fd5b506102c9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c0a565b604051808215151515815260200191505060405180910390f35b3480156102ef57600080fd5b50610324600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e9b565b6040518082815260200191505060405180910390f35b34801561034657600080fd5b5061034f610ee3565b005b34801561035d57600080fd5b50610366610fe8565b604051808215151515815260200191505060405180910390f35b34801561038c57600080fd5b506103956110b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e357600080fd5b50610422600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110d6565b604051808215151515815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112f5565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f1565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611578565b005b600360149054906101000a900460ff1681565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106a757600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156106f457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561077f57600080fd5b6107d0826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610863826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a8257600080fd5b600360149054906101000a900460ff16151515610a9e57600080fd5b610ab3826001546115f990919063ffffffff16565b600181905550610b0a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d1b576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610daf565b610d2e83826115e090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3f57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561104657600080fd5b600360149054906101000a900460ff1615151561106257600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561111357600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561116057600080fd5b6111b1826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115e090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611244826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061138682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d457600080fd5b6115dd81611615565b50565b60008282111515156115ee57fe5b818303905092915050565b6000818301905082811015151561160c57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561165157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582017727eef96a0866d5a3134173d5ffac32fd13d72efde908792ccd32a0910f10c0029", + "sourceMap": "390:1114:44:-;;;548:5;518:35;;;;;;;;;;;;;;;;;;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;390:1114:44;;;;;;", + "deployedSourceMap": "390:1114:44:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;518:35:44;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:40;;;;;;;;;;;;;;;;;;;;;;;736:470:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;936:312:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;936:312:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:425:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:39;;;;;;1362:140:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1362:140:44;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;518:35:44;;;;;;;;;;;;;:::o;1829:188:45:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;371:83:40:-;415:7;437:12;;430:19;;371:83;:::o;736:470:45:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;936:312:44:-;1050:4;682:5;;;;;;;;;;;668:19;;:10;:19;;;660:28;;;;;;;;593:15;;;;;;;;;;;592:16;584:25;;;;;;;;1079;1096:7;1079:12;;:16;;:25;;;;:::i;:::-;1064:12;:40;;;;1126:26;1144:7;1126:8;:13;1135:3;1126:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;1110:8;:13;1119:3;1110:13;;;;;;;;;;;;;;;:42;;;;1168:3;1163:18;;;1173:7;1163:18;;;;;;;;;;;;;;;;;;1213:3;1192:34;;1209:1;1192:34;;;1218:7;1192:34;;;;;;;;;;;;;;;;;;1239:4;1232:11;;936:312;;;;:::o;3701:425:45:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:40:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;827:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;1362:140:44:-;1421:4;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;593:15:44;;;;;;;;;;;592:16;584:25;;;;;;;;1451:4;1433:15;;:22;;;;;;;;;;;;;;;;;;1466:14;;;;;;;;;;1493:4;1486:11;;1362:140;:::o;238:20:39:-;;;;;;;;;;;;;:::o;608:321:40:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:45:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1100:103:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;1338:171:39:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", "source": "pragma solidity ^0.4.23;\n\nimport \"./StandardToken.sol\";\nimport \"../../ownership/Ownable.sol\";\n\n\n/**\n * @title Mintable token\n * @dev Simple ERC20 Token example, with mintable token creation\n * @dev Issue: * https://github.com/OpenZeppelin/openzeppelin-solidity/issues/120\n * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol\n */\ncontract MintableToken is StandardToken, Ownable {\n event Mint(address indexed to, uint256 amount);\n event MintFinished();\n\n bool public mintingFinished = false;\n\n\n modifier canMint() {\n require(!mintingFinished);\n _;\n }\n\n modifier hasMintPermission() {\n require(msg.sender == owner);\n _;\n }\n\n /**\n * @dev Function to mint tokens\n * @param _to The address that will receive the minted tokens.\n * @param _amount The amount of tokens to mint.\n * @return A boolean that indicates if the operation was successful.\n */\n function mint(\n address _to,\n uint256 _amount\n )\n hasMintPermission\n canMint\n public\n returns (bool)\n {\n totalSupply_ = totalSupply_.add(_amount);\n balances[_to] = balances[_to].add(_amount);\n emit Mint(_to, _amount);\n emit Transfer(address(0), _to, _amount);\n return true;\n }\n\n /**\n * @dev Function to stop minting new tokens.\n * @return True if the operation was successful.\n */\n function finishMinting() onlyOwner canMint public returns (bool) {\n mintingFinished = true;\n emit MintFinished();\n return true;\n }\n}\n", "sourcePath": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", "ast": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", "exportedSymbols": { "MintableToken": [ - 2552 + 5135 ] }, - "id": 2553, + "id": 5136, "nodeType": "SourceUnit", "nodes": [ { - "id": 2448, + "id": 5031, "literals": [ "solidity", "^", @@ -387,27 +387,27 @@ export const MintableToken = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:16" + "src": "0:24:44" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "file": "./StandardToken.sol", - "id": 2449, + "id": 5032, "nodeType": "ImportDirective", - "scope": 2553, - "sourceUnit": 2800, - "src": "26:29:16", + "scope": 5136, + "sourceUnit": 5383, + "src": "26:29:44", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "file": "../../ownership/Ownable.sol", - "id": 2450, + "id": 5033, "nodeType": "ImportDirective", - "scope": 2553, - "sourceUnit": 2242, - "src": "56:37:16", + "scope": 5136, + "sourceUnit": 4825, + "src": "56:37:44", "symbolAliases": [], "unitAlias": "" }, @@ -417,57 +417,57 @@ export const MintableToken = "arguments": null, "baseName": { "contractScope": null, - "id": 2451, + "id": 5034, "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "416:13:16", + "referencedDeclaration": 5382, + "src": "416:13:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", + "typeIdentifier": "t_contract$_StandardToken_$5382", "typeString": "contract StandardToken" } }, - "id": 2452, + "id": 5035, "nodeType": "InheritanceSpecifier", - "src": "416:13:16" + "src": "416:13:44" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2453, + "id": 5036, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2241, - "src": "431:7:16", + "referencedDeclaration": 4824, + "src": "431:7:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$2241", + "typeIdentifier": "t_contract$_Ownable_$4824", "typeString": "contract Ownable" } }, - "id": 2454, + "id": 5037, "nodeType": "InheritanceSpecifier", - "src": "431:7:16" + "src": "431:7:44" } ], "contractDependencies": [ - 2241, - 2337, - 2414, - 2446, - 2799 + 4824, + 4920, + 4997, + 5029, + 5382 ], "contractKind": "contract", "documentation": "@title Mintable token\n@dev Simple ERC20 Token example, with mintable token creation\n@dev Issue: * https://github.com/OpenZeppelin/openzeppelin-solidity/issues/120\nBased on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol", "fullyImplemented": true, - "id": 2552, + "id": 5135, "linearizedBaseContracts": [ - 2552, - 2241, - 2799, - 2337, - 2414, - 2446 + 5135, + 4824, + 5382, + 4920, + 4997, + 5029 ], "name": "MintableToken", "nodeType": "ContractDefinition", @@ -475,21 +475,21 @@ export const MintableToken = { "anonymous": false, "documentation": null, - "id": 2460, + "id": 5043, "name": "Mint", "nodeType": "EventDefinition", "parameters": { - "id": 2459, + "id": 5042, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2456, + "id": 5039, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2460, - "src": "454:18:16", + "scope": 5043, + "src": "454:18:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -497,10 +497,10 @@ export const MintableToken = "typeString": "address" }, "typeName": { - "id": 2455, + "id": 5038, "name": "address", "nodeType": "ElementaryTypeName", - "src": "454:7:16", + "src": "454:7:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -511,12 +511,12 @@ export const MintableToken = }, { "constant": false, - "id": 2458, + "id": 5041, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2460, - "src": "474:14:16", + "scope": 5043, + "src": "474:14:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -524,10 +524,10 @@ export const MintableToken = "typeString": "uint256" }, "typeName": { - "id": 2457, + "id": 5040, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "474:7:16", + "src": "474:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -537,31 +537,31 @@ export const MintableToken = "visibility": "internal" } ], - "src": "453:36:16" + "src": "453:36:44" }, - "src": "443:47:16" + "src": "443:47:44" }, { "anonymous": false, "documentation": null, - "id": 2462, + "id": 5045, "name": "MintFinished", "nodeType": "EventDefinition", "parameters": { - "id": 2461, + "id": 5044, "nodeType": "ParameterList", "parameters": [], - "src": "511:2:16" + "src": "511:2:44" }, - "src": "493:21:16" + "src": "493:21:44" }, { "constant": false, - "id": 2465, + "id": 5048, "name": "mintingFinished", "nodeType": "VariableDeclaration", - "scope": 2552, - "src": "518:35:16", + "scope": 5135, + "src": "518:35:44", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -569,10 +569,10 @@ export const MintableToken = "typeString": "bool" }, "typeName": { - "id": 2463, + "id": 5046, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "518:4:16", + "src": "518:4:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -581,14 +581,14 @@ export const MintableToken = "value": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2464, + "id": 5047, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "548:5:16", + "src": "548:5:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -600,9 +600,9 @@ export const MintableToken = }, { "body": { - "id": 2473, + "id": 5056, "nodeType": "Block", - "src": "578:43:16", + "src": "578:43:44", "statements": [ { "expression": { @@ -610,7 +610,7 @@ export const MintableToken = "arguments": [ { "argumentTypes": null, - "id": 2469, + "id": 5052, "isConstant": false, "isLValue": false, "isPure": false, @@ -618,15 +618,15 @@ export const MintableToken = "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "592:16:16", + "src": "592:16:44", "subExpression": { "argumentTypes": null, - "id": 2468, + "id": 5051, "name": "mintingFinished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "593:15:16", + "referencedDeclaration": 5048, + "src": "593:15:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -645,21 +645,21 @@ export const MintableToken = "typeString": "bool" } ], - "id": 2467, + "id": 5050, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "584:7:16", + "referencedDeclaration": 5400, + "src": "584:7:44", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2470, + "id": 5053, "isConstant": false, "isLValue": false, "isPure": false, @@ -667,41 +667,41 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "584:25:16", + "src": "584:25:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2471, + "id": 5054, "nodeType": "ExpressionStatement", - "src": "584:25:16" + "src": "584:25:44" }, { - "id": 2472, + "id": 5055, "nodeType": "PlaceholderStatement", - "src": "615:1:16" + "src": "615:1:44" } ] }, "documentation": null, - "id": 2474, + "id": 5057, "name": "canMint", "nodeType": "ModifierDefinition", "parameters": { - "id": 2466, + "id": 5049, "nodeType": "ParameterList", "parameters": [], - "src": "575:2:16" + "src": "575:2:44" }, - "src": "559:62:16", + "src": "559:62:44", "visibility": "internal" }, { "body": { - "id": 2484, + "id": 5067, "nodeType": "Block", - "src": "654:46:16", + "src": "654:46:44", "statements": [ { "expression": { @@ -713,7 +713,7 @@ export const MintableToken = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2480, + "id": 5063, "isConstant": false, "isLValue": false, "isPure": false, @@ -722,18 +722,18 @@ export const MintableToken = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2477, + "id": 5060, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "668:3:16", + "referencedDeclaration": 5397, + "src": "668:3:44", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2478, + "id": 5061, "isConstant": false, "isLValue": false, "isPure": false, @@ -741,7 +741,7 @@ export const MintableToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "668:10:16", + "src": "668:10:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -751,18 +751,18 @@ export const MintableToken = "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2479, + "id": 5062, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "682:5:16", + "referencedDeclaration": 4742, + "src": "682:5:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "668:19:16", + "src": "668:19:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -776,21 +776,21 @@ export const MintableToken = "typeString": "bool" } ], - "id": 2476, + "id": 5059, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "660:7:16", + "referencedDeclaration": 5400, + "src": "660:7:44", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2481, + "id": 5064, "isConstant": false, "isLValue": false, "isPure": false, @@ -798,58 +798,58 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "660:28:16", + "src": "660:28:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2482, + "id": 5065, "nodeType": "ExpressionStatement", - "src": "660:28:16" + "src": "660:28:44" }, { - "id": 2483, + "id": 5066, "nodeType": "PlaceholderStatement", - "src": "694:1:16" + "src": "694:1:44" } ] }, "documentation": null, - "id": 2485, + "id": 5068, "name": "hasMintPermission", "nodeType": "ModifierDefinition", "parameters": { - "id": 2475, + "id": 5058, "nodeType": "ParameterList", "parameters": [], - "src": "651:2:16" + "src": "651:2:44" }, - "src": "625:75:16", + "src": "625:75:44", "visibility": "internal" }, { "body": { - "id": 2531, + "id": 5114, "nodeType": "Block", - "src": "1058:190:16", + "src": "1058:190:44", "statements": [ { "expression": { "argumentTypes": null, - "id": 2503, + "id": 5086, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2498, + "id": 5081, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "1064:12:16", + "referencedDeclaration": 4839, + "src": "1064:12:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -862,12 +862,12 @@ export const MintableToken = "arguments": [ { "argumentTypes": null, - "id": 2501, + "id": 5084, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1096:7:16", + "referencedDeclaration": 5072, + "src": "1096:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -883,32 +883,32 @@ export const MintableToken = ], "expression": { "argumentTypes": null, - "id": 2499, + "id": 5082, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "1079:12:16", + "referencedDeclaration": 4839, + "src": "1079:12:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2500, + "id": 5083, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1079:16:16", + "referencedDeclaration": 4737, + "src": "1079:16:44", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2502, + "id": 5085, "isConstant": false, "isLValue": false, "isPure": false, @@ -916,26 +916,26 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1079:25:16", + "src": "1079:25:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1064:40:16", + "src": "1064:40:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2504, + "id": 5087, "nodeType": "ExpressionStatement", - "src": "1064:40:16" + "src": "1064:40:44" }, { "expression": { "argumentTypes": null, - "id": 2514, + "id": 5097, "isConstant": false, "isLValue": false, "isPure": false, @@ -944,26 +944,26 @@ export const MintableToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2505, + "id": 5088, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1110:8:16", + "referencedDeclaration": 4837, + "src": "1110:8:44", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2507, + "id": 5090, "indexExpression": { "argumentTypes": null, - "id": 2506, + "id": 5089, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1119:3:16", + "referencedDeclaration": 5070, + "src": "1119:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -974,7 +974,7 @@ export const MintableToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1110:13:16", + "src": "1110:13:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -987,12 +987,12 @@ export const MintableToken = "arguments": [ { "argumentTypes": null, - "id": 2512, + "id": 5095, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1144:7:16", + "referencedDeclaration": 5072, + "src": "1144:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1010,26 +1010,26 @@ export const MintableToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2508, + "id": 5091, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1126:8:16", + "referencedDeclaration": 4837, + "src": "1126:8:44", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2510, + "id": 5093, "indexExpression": { "argumentTypes": null, - "id": 2509, + "id": 5092, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1135:3:16", + "referencedDeclaration": 5070, + "src": "1135:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1040,27 +1040,27 @@ export const MintableToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1126:13:16", + "src": "1126:13:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2511, + "id": 5094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1126:17:16", + "referencedDeclaration": 4737, + "src": "1126:17:44", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2513, + "id": 5096, "isConstant": false, "isLValue": false, "isPure": false, @@ -1068,21 +1068,21 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1126:26:16", + "src": "1126:26:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1110:42:16", + "src": "1110:42:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2515, + "id": 5098, "nodeType": "ExpressionStatement", - "src": "1110:42:16" + "src": "1110:42:44" }, { "eventCall": { @@ -1090,12 +1090,12 @@ export const MintableToken = "arguments": [ { "argumentTypes": null, - "id": 2517, + "id": 5100, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1168:3:16", + "referencedDeclaration": 5070, + "src": "1168:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1103,12 +1103,12 @@ export const MintableToken = }, { "argumentTypes": null, - "id": 2518, + "id": 5101, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1173:7:16", + "referencedDeclaration": 5072, + "src": "1173:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1126,18 +1126,18 @@ export const MintableToken = "typeString": "uint256" } ], - "id": 2516, + "id": 5099, "name": "Mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2460, - "src": "1163:4:16", + "referencedDeclaration": 5043, + "src": "1163:4:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 2519, + "id": 5102, "isConstant": false, "isLValue": false, "isPure": false, @@ -1145,15 +1145,15 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1163:18:16", + "src": "1163:18:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2520, + "id": 5103, "nodeType": "EmitStatement", - "src": "1158:23:16" + "src": "1158:23:44" }, { "eventCall": { @@ -1165,14 +1165,14 @@ export const MintableToken = { "argumentTypes": null, "hexValue": "30", - "id": 2523, + "id": 5106, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1209:1:16", + "src": "1209:1:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1188,20 +1188,20 @@ export const MintableToken = "typeString": "int_const 0" } ], - "id": 2522, + "id": 5105, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1201:7:16", + "src": "1201:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2524, + "id": 5107, "isConstant": false, "isLValue": false, "isPure": true, @@ -1209,7 +1209,7 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1201:10:16", + "src": "1201:10:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1217,12 +1217,12 @@ export const MintableToken = }, { "argumentTypes": null, - "id": 2525, + "id": 5108, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1213:3:16", + "referencedDeclaration": 5070, + "src": "1213:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1230,12 +1230,12 @@ export const MintableToken = }, { "argumentTypes": null, - "id": 2526, + "id": 5109, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1218:7:16", + "referencedDeclaration": 5072, + "src": "1218:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1257,18 +1257,18 @@ export const MintableToken = "typeString": "uint256" } ], - "id": 2521, + "id": 5104, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "1192:8:16", + "referencedDeclaration": 5028, + "src": "1192:8:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2527, + "id": 5110, "isConstant": false, "isLValue": false, "isPure": false, @@ -1276,28 +1276,28 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1192:34:16", + "src": "1192:34:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2528, + "id": 5111, "nodeType": "EmitStatement", - "src": "1187:39:16" + "src": "1187:39:44" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2529, + "id": 5112, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1239:4:16", + "src": "1239:4:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1305,71 +1305,71 @@ export const MintableToken = }, "value": "true" }, - "functionReturnParameters": 2497, - "id": 2530, + "functionReturnParameters": 5080, + "id": 5113, "nodeType": "Return", - "src": "1232:11:16" + "src": "1232:11:44" } ] }, "documentation": "@dev Function to mint tokens\n@param _to The address that will receive the minted tokens.\n@param _amount The amount of tokens to mint.\n@return A boolean that indicates if the operation was successful.", - "id": 2532, + "id": 5115, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2492, + "id": 5075, "modifierName": { "argumentTypes": null, - "id": 2491, + "id": 5074, "name": "hasMintPermission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2485, - "src": "996:17:16", + "referencedDeclaration": 5068, + "src": "996:17:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "996:17:16" + "src": "996:17:44" }, { "arguments": null, - "id": 2494, + "id": 5077, "modifierName": { "argumentTypes": null, - "id": 2493, + "id": 5076, "name": "canMint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, - "src": "1018:7:16", + "referencedDeclaration": 5057, + "src": "1018:7:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1018:7:16" + "src": "1018:7:44" } ], "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 2490, + "id": 5073, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2487, + "id": 5070, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "955:11:16", + "scope": 5115, + "src": "955:11:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1377,10 +1377,10 @@ export const MintableToken = "typeString": "address" }, "typeName": { - "id": 2486, + "id": 5069, "name": "address", "nodeType": "ElementaryTypeName", - "src": "955:7:16", + "src": "955:7:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1391,11 +1391,11 @@ export const MintableToken = }, { "constant": false, - "id": 2489, + "id": 5072, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "972:15:16", + "scope": 5115, + "src": "972:15:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1403,10 +1403,10 @@ export const MintableToken = "typeString": "uint256" }, "typeName": { - "id": 2488, + "id": 5071, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "972:7:16", + "src": "972:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1416,20 +1416,20 @@ export const MintableToken = "visibility": "internal" } ], - "src": "949:42:16" + "src": "949:42:44" }, "payable": false, "returnParameters": { - "id": 2497, + "id": 5080, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2496, + "id": 5079, "name": "", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "1050:4:16", + "scope": 5115, + "src": "1050:4:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1437,10 +1437,10 @@ export const MintableToken = "typeString": "bool" }, "typeName": { - "id": 2495, + "id": 5078, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1050:4:16", + "src": "1050:4:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1450,36 +1450,36 @@ export const MintableToken = "visibility": "internal" } ], - "src": "1049:6:16" + "src": "1049:6:44" }, - "scope": 2552, - "src": "936:312:16", + "scope": 5135, + "src": "936:312:44", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2550, + "id": 5133, "nodeType": "Block", - "src": "1427:75:16", + "src": "1427:75:44", "statements": [ { "expression": { "argumentTypes": null, - "id": 2543, + "id": 5126, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2541, + "id": 5124, "name": "mintingFinished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "1433:15:16", + "referencedDeclaration": 5048, + "src": "1433:15:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1490,14 +1490,14 @@ export const MintableToken = "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2542, + "id": 5125, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1451:4:16", + "src": "1451:4:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1505,15 +1505,15 @@ export const MintableToken = }, "value": "true" }, - "src": "1433:22:16", + "src": "1433:22:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2544, + "id": 5127, "nodeType": "ExpressionStatement", - "src": "1433:22:16" + "src": "1433:22:44" }, { "eventCall": { @@ -1521,18 +1521,18 @@ export const MintableToken = "arguments": [], "expression": { "argumentTypes": [], - "id": 2545, + "id": 5128, "name": "MintFinished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2462, - "src": "1466:12:16", + "referencedDeclaration": 5045, + "src": "1466:12:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2546, + "id": 5129, "isConstant": false, "isLValue": false, "isPure": false, @@ -1540,28 +1540,28 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1466:14:16", + "src": "1466:14:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2547, + "id": 5130, "nodeType": "EmitStatement", - "src": "1461:19:16" + "src": "1461:19:44" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2548, + "id": 5131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1493:4:16", + "src": "1493:4:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1569,78 +1569,78 @@ export const MintableToken = }, "value": "true" }, - "functionReturnParameters": 2540, - "id": 2549, + "functionReturnParameters": 5123, + "id": 5132, "nodeType": "Return", - "src": "1486:11:16" + "src": "1486:11:44" } ] }, "documentation": "@dev Function to stop minting new tokens.\n@return True if the operation was successful.", - "id": 2551, + "id": 5134, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2535, + "id": 5118, "modifierName": { "argumentTypes": null, - "id": 2534, + "id": 5117, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "1387:9:16", + "referencedDeclaration": 4772, + "src": "1387:9:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1387:9:16" + "src": "1387:9:44" }, { "arguments": null, - "id": 2537, + "id": 5120, "modifierName": { "argumentTypes": null, - "id": 2536, + "id": 5119, "name": "canMint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, - "src": "1397:7:16", + "referencedDeclaration": 5057, + "src": "1397:7:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1397:7:16" + "src": "1397:7:44" } ], "name": "finishMinting", "nodeType": "FunctionDefinition", "parameters": { - "id": 2533, + "id": 5116, "nodeType": "ParameterList", "parameters": [], - "src": "1384:2:16" + "src": "1384:2:44" }, "payable": false, "returnParameters": { - "id": 2540, + "id": 5123, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2539, + "id": 5122, "name": "", "nodeType": "VariableDeclaration", - "scope": 2551, - "src": "1421:4:16", + "scope": 5134, + "src": "1421:4:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1648,10 +1648,10 @@ export const MintableToken = "typeString": "bool" }, "typeName": { - "id": 2538, + "id": 5121, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1421:4:16", + "src": "1421:4:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1661,33 +1661,33 @@ export const MintableToken = "visibility": "internal" } ], - "src": "1420:6:16" + "src": "1420:6:44" }, - "scope": 2552, - "src": "1362:140:16", + "scope": 5135, + "src": "1362:140:44", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2553, - "src": "390:1114:16" + "scope": 5136, + "src": "390:1114:44" } ], - "src": "0:1505:16" + "src": "0:1505:44" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/MintableToken.sol", "exportedSymbols": { "MintableToken": [ - 2552 + 5135 ] }, - "id": 2553, + "id": 5136, "nodeType": "SourceUnit", "nodes": [ { - "id": 2448, + "id": 5031, "literals": [ "solidity", "^", @@ -1695,27 +1695,27 @@ export const MintableToken = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:16" + "src": "0:24:44" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "file": "./StandardToken.sol", - "id": 2449, + "id": 5032, "nodeType": "ImportDirective", - "scope": 2553, - "sourceUnit": 2800, - "src": "26:29:16", + "scope": 5136, + "sourceUnit": 5383, + "src": "26:29:44", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "file": "../../ownership/Ownable.sol", - "id": 2450, + "id": 5033, "nodeType": "ImportDirective", - "scope": 2553, - "sourceUnit": 2242, - "src": "56:37:16", + "scope": 5136, + "sourceUnit": 4825, + "src": "56:37:44", "symbolAliases": [], "unitAlias": "" }, @@ -1725,57 +1725,57 @@ export const MintableToken = "arguments": null, "baseName": { "contractScope": null, - "id": 2451, + "id": 5034, "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "416:13:16", + "referencedDeclaration": 5382, + "src": "416:13:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", + "typeIdentifier": "t_contract$_StandardToken_$5382", "typeString": "contract StandardToken" } }, - "id": 2452, + "id": 5035, "nodeType": "InheritanceSpecifier", - "src": "416:13:16" + "src": "416:13:44" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2453, + "id": 5036, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2241, - "src": "431:7:16", + "referencedDeclaration": 4824, + "src": "431:7:44", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$2241", + "typeIdentifier": "t_contract$_Ownable_$4824", "typeString": "contract Ownable" } }, - "id": 2454, + "id": 5037, "nodeType": "InheritanceSpecifier", - "src": "431:7:16" + "src": "431:7:44" } ], "contractDependencies": [ - 2241, - 2337, - 2414, - 2446, - 2799 + 4824, + 4920, + 4997, + 5029, + 5382 ], "contractKind": "contract", "documentation": "@title Mintable token\n@dev Simple ERC20 Token example, with mintable token creation\n@dev Issue: * https://github.com/OpenZeppelin/openzeppelin-solidity/issues/120\nBased on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol", "fullyImplemented": true, - "id": 2552, + "id": 5135, "linearizedBaseContracts": [ - 2552, - 2241, - 2799, - 2337, - 2414, - 2446 + 5135, + 4824, + 5382, + 4920, + 4997, + 5029 ], "name": "MintableToken", "nodeType": "ContractDefinition", @@ -1783,21 +1783,21 @@ export const MintableToken = { "anonymous": false, "documentation": null, - "id": 2460, + "id": 5043, "name": "Mint", "nodeType": "EventDefinition", "parameters": { - "id": 2459, + "id": 5042, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2456, + "id": 5039, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2460, - "src": "454:18:16", + "scope": 5043, + "src": "454:18:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1805,10 +1805,10 @@ export const MintableToken = "typeString": "address" }, "typeName": { - "id": 2455, + "id": 5038, "name": "address", "nodeType": "ElementaryTypeName", - "src": "454:7:16", + "src": "454:7:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1819,12 +1819,12 @@ export const MintableToken = }, { "constant": false, - "id": 2458, + "id": 5041, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2460, - "src": "474:14:16", + "scope": 5043, + "src": "474:14:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1832,10 +1832,10 @@ export const MintableToken = "typeString": "uint256" }, "typeName": { - "id": 2457, + "id": 5040, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "474:7:16", + "src": "474:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1845,31 +1845,31 @@ export const MintableToken = "visibility": "internal" } ], - "src": "453:36:16" + "src": "453:36:44" }, - "src": "443:47:16" + "src": "443:47:44" }, { "anonymous": false, "documentation": null, - "id": 2462, + "id": 5045, "name": "MintFinished", "nodeType": "EventDefinition", "parameters": { - "id": 2461, + "id": 5044, "nodeType": "ParameterList", "parameters": [], - "src": "511:2:16" + "src": "511:2:44" }, - "src": "493:21:16" + "src": "493:21:44" }, { "constant": false, - "id": 2465, + "id": 5048, "name": "mintingFinished", "nodeType": "VariableDeclaration", - "scope": 2552, - "src": "518:35:16", + "scope": 5135, + "src": "518:35:44", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1877,10 +1877,10 @@ export const MintableToken = "typeString": "bool" }, "typeName": { - "id": 2463, + "id": 5046, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "518:4:16", + "src": "518:4:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1889,14 +1889,14 @@ export const MintableToken = "value": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2464, + "id": 5047, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "548:5:16", + "src": "548:5:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1908,9 +1908,9 @@ export const MintableToken = }, { "body": { - "id": 2473, + "id": 5056, "nodeType": "Block", - "src": "578:43:16", + "src": "578:43:44", "statements": [ { "expression": { @@ -1918,7 +1918,7 @@ export const MintableToken = "arguments": [ { "argumentTypes": null, - "id": 2469, + "id": 5052, "isConstant": false, "isLValue": false, "isPure": false, @@ -1926,15 +1926,15 @@ export const MintableToken = "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "592:16:16", + "src": "592:16:44", "subExpression": { "argumentTypes": null, - "id": 2468, + "id": 5051, "name": "mintingFinished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "593:15:16", + "referencedDeclaration": 5048, + "src": "593:15:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1953,21 +1953,21 @@ export const MintableToken = "typeString": "bool" } ], - "id": 2467, + "id": 5050, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "584:7:16", + "referencedDeclaration": 5400, + "src": "584:7:44", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2470, + "id": 5053, "isConstant": false, "isLValue": false, "isPure": false, @@ -1975,41 +1975,41 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "584:25:16", + "src": "584:25:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2471, + "id": 5054, "nodeType": "ExpressionStatement", - "src": "584:25:16" + "src": "584:25:44" }, { - "id": 2472, + "id": 5055, "nodeType": "PlaceholderStatement", - "src": "615:1:16" + "src": "615:1:44" } ] }, "documentation": null, - "id": 2474, + "id": 5057, "name": "canMint", "nodeType": "ModifierDefinition", "parameters": { - "id": 2466, + "id": 5049, "nodeType": "ParameterList", "parameters": [], - "src": "575:2:16" + "src": "575:2:44" }, - "src": "559:62:16", + "src": "559:62:44", "visibility": "internal" }, { "body": { - "id": 2484, + "id": 5067, "nodeType": "Block", - "src": "654:46:16", + "src": "654:46:44", "statements": [ { "expression": { @@ -2021,7 +2021,7 @@ export const MintableToken = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2480, + "id": 5063, "isConstant": false, "isLValue": false, "isPure": false, @@ -2030,18 +2030,18 @@ export const MintableToken = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2477, + "id": 5060, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "668:3:16", + "referencedDeclaration": 5397, + "src": "668:3:44", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2478, + "id": 5061, "isConstant": false, "isLValue": false, "isPure": false, @@ -2049,7 +2049,7 @@ export const MintableToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "668:10:16", + "src": "668:10:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2059,18 +2059,18 @@ export const MintableToken = "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2479, + "id": 5062, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "682:5:16", + "referencedDeclaration": 4742, + "src": "682:5:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "668:19:16", + "src": "668:19:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2084,21 +2084,21 @@ export const MintableToken = "typeString": "bool" } ], - "id": 2476, + "id": 5059, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "660:7:16", + "referencedDeclaration": 5400, + "src": "660:7:44", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2481, + "id": 5064, "isConstant": false, "isLValue": false, "isPure": false, @@ -2106,58 +2106,58 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "660:28:16", + "src": "660:28:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2482, + "id": 5065, "nodeType": "ExpressionStatement", - "src": "660:28:16" + "src": "660:28:44" }, { - "id": 2483, + "id": 5066, "nodeType": "PlaceholderStatement", - "src": "694:1:16" + "src": "694:1:44" } ] }, "documentation": null, - "id": 2485, + "id": 5068, "name": "hasMintPermission", "nodeType": "ModifierDefinition", "parameters": { - "id": 2475, + "id": 5058, "nodeType": "ParameterList", "parameters": [], - "src": "651:2:16" + "src": "651:2:44" }, - "src": "625:75:16", + "src": "625:75:44", "visibility": "internal" }, { "body": { - "id": 2531, + "id": 5114, "nodeType": "Block", - "src": "1058:190:16", + "src": "1058:190:44", "statements": [ { "expression": { "argumentTypes": null, - "id": 2503, + "id": 5086, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2498, + "id": 5081, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "1064:12:16", + "referencedDeclaration": 4839, + "src": "1064:12:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2170,12 +2170,12 @@ export const MintableToken = "arguments": [ { "argumentTypes": null, - "id": 2501, + "id": 5084, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1096:7:16", + "referencedDeclaration": 5072, + "src": "1096:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2191,32 +2191,32 @@ export const MintableToken = ], "expression": { "argumentTypes": null, - "id": 2499, + "id": 5082, "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "1079:12:16", + "referencedDeclaration": 4839, + "src": "1079:12:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2500, + "id": 5083, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1079:16:16", + "referencedDeclaration": 4737, + "src": "1079:16:44", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2502, + "id": 5085, "isConstant": false, "isLValue": false, "isPure": false, @@ -2224,26 +2224,26 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1079:25:16", + "src": "1079:25:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1064:40:16", + "src": "1064:40:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2504, + "id": 5087, "nodeType": "ExpressionStatement", - "src": "1064:40:16" + "src": "1064:40:44" }, { "expression": { "argumentTypes": null, - "id": 2514, + "id": 5097, "isConstant": false, "isLValue": false, "isPure": false, @@ -2252,26 +2252,26 @@ export const MintableToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2505, + "id": 5088, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1110:8:16", + "referencedDeclaration": 4837, + "src": "1110:8:44", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2507, + "id": 5090, "indexExpression": { "argumentTypes": null, - "id": 2506, + "id": 5089, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1119:3:16", + "referencedDeclaration": 5070, + "src": "1119:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2282,7 +2282,7 @@ export const MintableToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1110:13:16", + "src": "1110:13:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2295,12 +2295,12 @@ export const MintableToken = "arguments": [ { "argumentTypes": null, - "id": 2512, + "id": 5095, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1144:7:16", + "referencedDeclaration": 5072, + "src": "1144:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2318,26 +2318,26 @@ export const MintableToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2508, + "id": 5091, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1126:8:16", + "referencedDeclaration": 4837, + "src": "1126:8:44", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2510, + "id": 5093, "indexExpression": { "argumentTypes": null, - "id": 2509, + "id": 5092, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1135:3:16", + "referencedDeclaration": 5070, + "src": "1135:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2348,27 +2348,27 @@ export const MintableToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1126:13:16", + "src": "1126:13:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2511, + "id": 5094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1126:17:16", + "referencedDeclaration": 4737, + "src": "1126:17:44", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2513, + "id": 5096, "isConstant": false, "isLValue": false, "isPure": false, @@ -2376,21 +2376,21 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1126:26:16", + "src": "1126:26:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1110:42:16", + "src": "1110:42:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2515, + "id": 5098, "nodeType": "ExpressionStatement", - "src": "1110:42:16" + "src": "1110:42:44" }, { "eventCall": { @@ -2398,12 +2398,12 @@ export const MintableToken = "arguments": [ { "argumentTypes": null, - "id": 2517, + "id": 5100, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1168:3:16", + "referencedDeclaration": 5070, + "src": "1168:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2411,12 +2411,12 @@ export const MintableToken = }, { "argumentTypes": null, - "id": 2518, + "id": 5101, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1173:7:16", + "referencedDeclaration": 5072, + "src": "1173:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2434,18 +2434,18 @@ export const MintableToken = "typeString": "uint256" } ], - "id": 2516, + "id": 5099, "name": "Mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2460, - "src": "1163:4:16", + "referencedDeclaration": 5043, + "src": "1163:4:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 2519, + "id": 5102, "isConstant": false, "isLValue": false, "isPure": false, @@ -2453,15 +2453,15 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1163:18:16", + "src": "1163:18:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2520, + "id": 5103, "nodeType": "EmitStatement", - "src": "1158:23:16" + "src": "1158:23:44" }, { "eventCall": { @@ -2473,14 +2473,14 @@ export const MintableToken = { "argumentTypes": null, "hexValue": "30", - "id": 2523, + "id": 5106, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1209:1:16", + "src": "1209:1:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2496,20 +2496,20 @@ export const MintableToken = "typeString": "int_const 0" } ], - "id": 2522, + "id": 5105, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1201:7:16", + "src": "1201:7:44", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2524, + "id": 5107, "isConstant": false, "isLValue": false, "isPure": true, @@ -2517,7 +2517,7 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1201:10:16", + "src": "1201:10:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2525,12 +2525,12 @@ export const MintableToken = }, { "argumentTypes": null, - "id": 2525, + "id": 5108, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2487, - "src": "1213:3:16", + "referencedDeclaration": 5070, + "src": "1213:3:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2538,12 +2538,12 @@ export const MintableToken = }, { "argumentTypes": null, - "id": 2526, + "id": 5109, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2489, - "src": "1218:7:16", + "referencedDeclaration": 5072, + "src": "1218:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2565,18 +2565,18 @@ export const MintableToken = "typeString": "uint256" } ], - "id": 2521, + "id": 5104, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "1192:8:16", + "referencedDeclaration": 5028, + "src": "1192:8:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2527, + "id": 5110, "isConstant": false, "isLValue": false, "isPure": false, @@ -2584,28 +2584,28 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1192:34:16", + "src": "1192:34:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2528, + "id": 5111, "nodeType": "EmitStatement", - "src": "1187:39:16" + "src": "1187:39:44" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2529, + "id": 5112, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1239:4:16", + "src": "1239:4:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2613,71 +2613,71 @@ export const MintableToken = }, "value": "true" }, - "functionReturnParameters": 2497, - "id": 2530, + "functionReturnParameters": 5080, + "id": 5113, "nodeType": "Return", - "src": "1232:11:16" + "src": "1232:11:44" } ] }, "documentation": "@dev Function to mint tokens\n@param _to The address that will receive the minted tokens.\n@param _amount The amount of tokens to mint.\n@return A boolean that indicates if the operation was successful.", - "id": 2532, + "id": 5115, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2492, + "id": 5075, "modifierName": { "argumentTypes": null, - "id": 2491, + "id": 5074, "name": "hasMintPermission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2485, - "src": "996:17:16", + "referencedDeclaration": 5068, + "src": "996:17:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "996:17:16" + "src": "996:17:44" }, { "arguments": null, - "id": 2494, + "id": 5077, "modifierName": { "argumentTypes": null, - "id": 2493, + "id": 5076, "name": "canMint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, - "src": "1018:7:16", + "referencedDeclaration": 5057, + "src": "1018:7:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1018:7:16" + "src": "1018:7:44" } ], "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 2490, + "id": 5073, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2487, + "id": 5070, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "955:11:16", + "scope": 5115, + "src": "955:11:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2685,10 +2685,10 @@ export const MintableToken = "typeString": "address" }, "typeName": { - "id": 2486, + "id": 5069, "name": "address", "nodeType": "ElementaryTypeName", - "src": "955:7:16", + "src": "955:7:44", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2699,11 +2699,11 @@ export const MintableToken = }, { "constant": false, - "id": 2489, + "id": 5072, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "972:15:16", + "scope": 5115, + "src": "972:15:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2711,10 +2711,10 @@ export const MintableToken = "typeString": "uint256" }, "typeName": { - "id": 2488, + "id": 5071, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "972:7:16", + "src": "972:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2724,20 +2724,20 @@ export const MintableToken = "visibility": "internal" } ], - "src": "949:42:16" + "src": "949:42:44" }, "payable": false, "returnParameters": { - "id": 2497, + "id": 5080, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2496, + "id": 5079, "name": "", "nodeType": "VariableDeclaration", - "scope": 2532, - "src": "1050:4:16", + "scope": 5115, + "src": "1050:4:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2745,10 +2745,10 @@ export const MintableToken = "typeString": "bool" }, "typeName": { - "id": 2495, + "id": 5078, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1050:4:16", + "src": "1050:4:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2758,36 +2758,36 @@ export const MintableToken = "visibility": "internal" } ], - "src": "1049:6:16" + "src": "1049:6:44" }, - "scope": 2552, - "src": "936:312:16", + "scope": 5135, + "src": "936:312:44", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2550, + "id": 5133, "nodeType": "Block", - "src": "1427:75:16", + "src": "1427:75:44", "statements": [ { "expression": { "argumentTypes": null, - "id": 2543, + "id": 5126, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2541, + "id": 5124, "name": "mintingFinished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "1433:15:16", + "referencedDeclaration": 5048, + "src": "1433:15:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2798,14 +2798,14 @@ export const MintableToken = "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2542, + "id": 5125, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1451:4:16", + "src": "1451:4:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2813,15 +2813,15 @@ export const MintableToken = }, "value": "true" }, - "src": "1433:22:16", + "src": "1433:22:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2544, + "id": 5127, "nodeType": "ExpressionStatement", - "src": "1433:22:16" + "src": "1433:22:44" }, { "eventCall": { @@ -2829,18 +2829,18 @@ export const MintableToken = "arguments": [], "expression": { "argumentTypes": [], - "id": 2545, + "id": 5128, "name": "MintFinished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2462, - "src": "1466:12:16", + "referencedDeclaration": 5045, + "src": "1466:12:44", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2546, + "id": 5129, "isConstant": false, "isLValue": false, "isPure": false, @@ -2848,28 +2848,28 @@ export const MintableToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1466:14:16", + "src": "1466:14:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2547, + "id": 5130, "nodeType": "EmitStatement", - "src": "1461:19:16" + "src": "1461:19:44" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2548, + "id": 5131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1493:4:16", + "src": "1493:4:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2877,78 +2877,78 @@ export const MintableToken = }, "value": "true" }, - "functionReturnParameters": 2540, - "id": 2549, + "functionReturnParameters": 5123, + "id": 5132, "nodeType": "Return", - "src": "1486:11:16" + "src": "1486:11:44" } ] }, "documentation": "@dev Function to stop minting new tokens.\n@return True if the operation was successful.", - "id": 2551, + "id": 5134, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2535, + "id": 5118, "modifierName": { "argumentTypes": null, - "id": 2534, + "id": 5117, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "1387:9:16", + "referencedDeclaration": 4772, + "src": "1387:9:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1387:9:16" + "src": "1387:9:44" }, { "arguments": null, - "id": 2537, + "id": 5120, "modifierName": { "argumentTypes": null, - "id": 2536, + "id": 5119, "name": "canMint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2474, - "src": "1397:7:16", + "referencedDeclaration": 5057, + "src": "1397:7:44", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1397:7:16" + "src": "1397:7:44" } ], "name": "finishMinting", "nodeType": "FunctionDefinition", "parameters": { - "id": 2533, + "id": 5116, "nodeType": "ParameterList", "parameters": [], - "src": "1384:2:16" + "src": "1384:2:44" }, "payable": false, "returnParameters": { - "id": 2540, + "id": 5123, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2539, + "id": 5122, "name": "", "nodeType": "VariableDeclaration", - "scope": 2551, - "src": "1421:4:16", + "scope": 5134, + "src": "1421:4:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2956,10 +2956,10 @@ export const MintableToken = "typeString": "bool" }, "typeName": { - "id": 2538, + "id": 5121, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1421:4:16", + "src": "1421:4:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2969,26 +2969,26 @@ export const MintableToken = "visibility": "internal" } ], - "src": "1420:6:16" + "src": "1420:6:44" }, - "scope": 2552, - "src": "1362:140:16", + "scope": 5135, + "src": "1362:140:44", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2553, - "src": "390:1114:16" + "scope": 5136, + "src": "390:1114:44" } ], - "src": "0:1505:16" + "src": "0:1505:44" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.596Z" + "updatedAt": "2018-07-07T07:45:08.918Z" } \ No newline at end of file diff --git a/artifacts/ts/MockOrderLibrary.ts b/artifacts/ts/MockOrderLibrary.ts new file mode 100644 index 000000000..75bf2b6c2 --- /dev/null +++ b/artifacts/ts/MockOrderLibrary.ts @@ -0,0 +1,1385 @@ +export const MockOrderLibrary = +{ + "contractName": "MockOrderLibrary", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_addresses", + "type": "address[4]" + }, + { + "name": "_values", + "type": "uint256[5]" + } + ], + "name": "testGenerateOrderHash", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderHash", + "type": "bytes32" + }, + { + "name": "_signerAddress", + "type": "address" + }, + { + "name": "_v", + "type": "uint8" + }, + { + "name": "_r", + "type": "bytes32" + }, + { + "name": "_s", + "type": "bytes32" + } + ], + "name": "testValidateSignature", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506108ad806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806388759aeb14610051578063c4dec7b11461008e575b600080fd5b34801561005d57600080fd5b5061007860048036036100739190810190610642565b6100cb565b604051610085919061073e565b60405180910390f35b34801561009a57600080fd5b506100b560048036036100b0919081019061067f565b6100df565b6040516100c29190610723565b60405180910390f35b60006100d783836100f9565b905092915050565b60006100ee868686868661035c565b905095945050505050565b600082600060048110151561010a57fe5b602002015183600160048110151561011e57fe5b602002015184600260048110151561013257fe5b602002015185600360048110151561014657fe5b602002015185600060058110151561015a57fe5b602002015186600160058110151561016e57fe5b602002015187600260058110151561018257fe5b602002015188600360058110151561019657fe5b60200201518960046005811015156101aa57fe5b6020020151604051602001808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186815260200185815260200184815260200183815260200182815260200199505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156103275780518252602082019150602081019050602083039250610302565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905092915050565b60008060606040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152509050600181896040516020018083805190602001908083835b6020831015156103d557805182526020820191506020810190506020830392506103b0565b6001836020036101000a0380198251168184511680821785525050505050509050018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561044d5780518252602082019150602081019050602083039250610428565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208787876040516000815260200160405260405161049a9493929190610759565b60206040516020810390808403906000865af11580156104be573d6000803e3d6000fd5b5050506020604051035191508673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149250505095945050505050565b60006105128235610832565b905092915050565b600082601f830112151561052d57600080fd5b600461054061053b826107cb565b61079e565b9150818385602084028201111561055657600080fd5b60005b83811015610586578161056c8882610506565b845260208401935060208301925050600181019050610559565b5050505092915050565b600082601f83011215156105a357600080fd5b60056105b66105b1826107ed565b61079e565b915081838560208402820111156105cc57600080fd5b60005b838110156105fc57816105e2888261061a565b8452602084019350602083019250506001810190506105cf565b5050505092915050565b60006106128235610852565b905092915050565b6000610626823561085c565b905092915050565b600061063a8235610866565b905092915050565b600080610120838503121561065657600080fd5b60006106648582860161051a565b925050608061067585828601610590565b9150509250929050565b600080600080600060a0868803121561069757600080fd5b60006106a588828901610606565b95505060206106b688828901610506565b94505060406106c78882890161062e565b93505060606106d888828901610606565b92505060806106e988828901610606565b9150509295509295909350565b6106ff8161080f565b82525050565b61070e8161081b565b82525050565b61071d81610825565b82525050565b600060208201905061073860008301846106f6565b92915050565b60006020820190506107536000830184610705565b92915050565b600060808201905061076e6000830187610705565b61077b6020830186610714565b6107886040830185610705565b6107956060830184610705565b95945050505050565b6000604051905081810181811067ffffffffffffffff821117156107c157600080fd5b8060405250919050565b600067ffffffffffffffff8211156107e257600080fd5b602082029050919050565b600067ffffffffffffffff82111561080457600080fd5b602082029050919050565b60008115159050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000819050919050565b600060ff821690509190505600a265627a7a7230582027a763099107722af98eebabfa6a0c3e801bf23e397e56412b2169a9056587a36c6578706572696d656e74616cf50037", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806388759aeb14610051578063c4dec7b11461008e575b600080fd5b34801561005d57600080fd5b5061007860048036036100739190810190610642565b6100cb565b604051610085919061073e565b60405180910390f35b34801561009a57600080fd5b506100b560048036036100b0919081019061067f565b6100df565b6040516100c29190610723565b60405180910390f35b60006100d783836100f9565b905092915050565b60006100ee868686868661035c565b905095945050505050565b600082600060048110151561010a57fe5b602002015183600160048110151561011e57fe5b602002015184600260048110151561013257fe5b602002015185600360048110151561014657fe5b602002015185600060058110151561015a57fe5b602002015186600160058110151561016e57fe5b602002015187600260058110151561018257fe5b602002015188600360058110151561019657fe5b60200201518960046005811015156101aa57fe5b6020020151604051602001808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140186815260200185815260200184815260200183815260200182815260200199505050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156103275780518252602082019150602081019050602083039250610302565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905092915050565b60008060606040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152509050600181896040516020018083805190602001908083835b6020831015156103d557805182526020820191506020810190506020830392506103b0565b6001836020036101000a0380198251168184511680821785525050505050509050018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561044d5780518252602082019150602081019050602083039250610428565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208787876040516000815260200160405260405161049a9493929190610759565b60206040516020810390808403906000865af11580156104be573d6000803e3d6000fd5b5050506020604051035191508673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149250505095945050505050565b60006105128235610832565b905092915050565b600082601f830112151561052d57600080fd5b600461054061053b826107cb565b61079e565b9150818385602084028201111561055657600080fd5b60005b83811015610586578161056c8882610506565b845260208401935060208301925050600181019050610559565b5050505092915050565b600082601f83011215156105a357600080fd5b60056105b66105b1826107ed565b61079e565b915081838560208402820111156105cc57600080fd5b60005b838110156105fc57816105e2888261061a565b8452602084019350602083019250506001810190506105cf565b5050505092915050565b60006106128235610852565b905092915050565b6000610626823561085c565b905092915050565b600061063a8235610866565b905092915050565b600080610120838503121561065657600080fd5b60006106648582860161051a565b925050608061067585828601610590565b9150509250929050565b600080600080600060a0868803121561069757600080fd5b60006106a588828901610606565b95505060206106b688828901610506565b94505060406106c78882890161062e565b93505060606106d888828901610606565b92505060806106e988828901610606565b9150509295509295909350565b6106ff8161080f565b82525050565b61070e8161081b565b82525050565b61071d81610825565b82525050565b600060208201905061073860008301846106f6565b92915050565b60006020820190506107536000830184610705565b92915050565b600060808201905061076e6000830187610705565b61077b6020830186610714565b6107886040830185610705565b6107956060830184610705565b95945050505050565b6000604051905081810181811067ffffffffffffffff821117156107c157600080fd5b8060405250919050565b600067ffffffffffffffff8211156107e257600080fd5b602082029050919050565b600067ffffffffffffffff82111561080457600080fd5b602082029050919050565b60008115159050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000819050919050565b600060ff821690509190505600a265627a7a7230582027a763099107722af98eebabfa6a0c3e801bf23e397e56412b2169a9056587a36c6578706572696d656e74616cf50037", + "sourceMap": "184:672:36:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;184:672:36;;;;;;;", + "deployedSourceMap": "184:672:36:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;216:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;216:259:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;481:373;;8:9:-1;5:2;;;30:1;27;20:12;5:2;481:373:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;216:259;353:7;383:85;427:10;451:7;383:30;:85::i;:::-;376:92;;216:259;;;;:::o;481:373::-;680:4;707:140;751:10;775:14;803:2;819;835;707:30;:140::i;:::-;700:147;;481:373;;;;;;;:::o;1706:688:25:-;1841:7;1965:10;1976:1;1965:13;;;;;;;;;;;;;2010:10;2021:1;2010:13;;;;;;;;;;;;;2057:10;2068:1;2057:13;;;;;;;;;;;;;2102:10;2113:1;2102:13;;;;;;;;;;;;;2149:7;2157:1;2149:10;;;;;;;;;;;;;2192:7;2200:1;2192:10;;;;;;;;;;;;;2243:7;2251:1;2243:10;;;;;;;;;;;;;2288:7;2296:1;2288:10;;;;;;;;;;;;;2341:7;2349:1;2341:10;;;;;;;;;;;;;1931:446;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1931:446:25;;;1908:479;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1908:479:25;;;;;;;;;;;;;;;;1901:486;;1706:688;;;;:::o;2758:647::-;2955:4;3032:18;3092:22;:59;;;;;;;;;;;;;;;;;;;;3221:131;3271:9;3282:10;3254:39;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3254:39:25;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3254:39:25;;;3244:50;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3244:50:25;;;;;;;;;;;;;;;;3308:2;3324;3340;3221:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3221:131:25;;;;;;;;3208:144;;3384:14;3370:28;;:10;:28;;;3363:35;;2758:647;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;;57:66;;;;;149:615;;264:3;257:4;249:6;245:17;241:27;234:35;231:2;;;282:1;279;272:12;231:2;306:3;324:78;339:62;394:6;339:62;;;324:78;;;315:87;;419:5;478:6;525:3;517:4;509:6;505:17;500:3;496:27;493:36;490:2;;;542:1;539;532:12;490:2;567:1;552:206;577:6;574:1;571:13;552:206;;;635:3;657:37;690:3;678:10;657:37;;;652:3;645:50;718:4;713:3;709:14;702:21;;746:4;741:3;737:14;730:21;;609:149;599:1;596;592:9;587:14;;552:206;;;556:14;224:540;;;;;;;;791:615;;906:3;899:4;891:6;887:17;883:27;876:35;873:2;;;924:1;921;914:12;873:2;948:3;966:78;981:62;1036:6;981:62;;;966:78;;;957:87;;1061:5;1120:6;1167:3;1159:4;1151:6;1147:17;1142:3;1138:27;1135:36;1132:2;;;1184:1;1181;1174:12;1132:2;1209:1;1194:206;1219:6;1216:1;1213:13;1194:206;;;1277:3;1299:37;1332:3;1320:10;1299:37;;;1294:3;1287:50;1360:4;1355:3;1351:14;1344:21;;1388:4;1383:3;1379:14;1372:21;;1251:149;1241:1;1238;1234:9;1229:14;;1194:206;;;1198:14;866:540;;;;;;;;1414:118;;1481:46;1519:6;1506:20;1481:46;;;1472:55;;1466:66;;;;;1539:118;;1606:46;1644:6;1631:20;1606:46;;;1597:55;;1591:66;;;;;1664:114;;1729:44;1765:6;1752:20;1729:44;;;1720:53;;1714:64;;;;;1785:460;;;1952:3;1940:9;1931:7;1927:23;1923:33;1920:2;;;1969:1;1966;1959:12;1920:2;2004:1;2021:76;2089:7;2080:6;2069:9;2065:22;2021:76;;;2011:86;;1983:120;2134:3;2153:76;2221:7;2212:6;2201:9;2197:22;2153:76;;;2143:86;;2113:122;1914:331;;;;;;2252:739;;;;;;2422:3;2410:9;2401:7;2397:23;2393:33;2390:2;;;2439:1;2436;2429:12;2390:2;2474:1;2491:53;2536:7;2527:6;2516:9;2512:22;2491:53;;;2481:63;;2453:97;2581:2;2599:53;2644:7;2635:6;2624:9;2620:22;2599:53;;;2589:63;;2560:98;2689:2;2707:51;2750:7;2741:6;2730:9;2726:22;2707:51;;;2697:61;;2668:96;2795:2;2813:53;2858:7;2849:6;2838:9;2834:22;2813:53;;;2803:63;;2774:98;2903:3;2922:53;2967:7;2958:6;2947:9;2943:22;2922:53;;;2912:63;;2882:99;2384:607;;;;;;;;;2998:101;3065:28;3087:5;3065:28;;;3060:3;3053:41;3047:52;;;3106:110;3179:31;3204:5;3179:31;;;3174:3;3167:44;3161:55;;;3223:104;3292:29;3315:5;3292:29;;;3287:3;3280:42;3274:53;;;3334:181;;3436:2;3425:9;3421:18;3413:26;;3450:55;3502:1;3491:9;3487:17;3478:6;3450:55;;;3407:108;;;;;3522:193;;3630:2;3619:9;3615:18;3607:26;;3644:61;3702:1;3691:9;3687:17;3678:6;3644:61;;;3601:114;;;;;3722:489;;3910:3;3899:9;3895:19;3887:27;;3925:61;3983:1;3972:9;3968:17;3959:6;3925:61;;;3997:58;4051:2;4040:9;4036:18;4027:6;3997:58;;;4066:62;4124:2;4113:9;4109:18;4100:6;4066:62;;;4139;4197:2;4186:9;4182:18;4173:6;4139:62;;;3881:330;;;;;;;;4218:256;;4280:2;4274:9;4264:19;;4318:4;4310:6;4306:17;4417:6;4405:10;4402:22;4381:18;4369:10;4366:34;4363:62;4360:2;;;4438:1;4435;4428:12;4360:2;4458:10;4454:2;4447:22;4258:216;;;;;4481:233;;4638:18;4630:6;4627:30;4624:2;;;4670:1;4667;4660:12;4624:2;4699:4;4691:6;4687:17;4679:25;;4561:153;;;;4721:233;;4878:18;4870:6;4867:30;4864:2;;;4910:1;4907;4900:12;4864:2;4939:4;4931:6;4927:17;4919:25;;4801:153;;;;4961:92;;5041:5;5034:13;5027:21;5016:32;;5010:43;;;;5060:79;;5129:5;5118:16;;5112:27;;;;5146:88;;5224:4;5217:5;5213:16;5202:27;;5196:38;;;;5241:128;;5321:42;5314:5;5310:54;5299:65;;5293:76;;;;5376:79;;5445:5;5434:16;;5428:27;;;;5462:79;;5531:5;5520:16;;5514:27;;;;5548:88;;5626:4;5619:5;5615:16;5604:27;;5598:38;;;", + "source": "pragma solidity 0.4.24;\npragma experimental \"ABIEncoderV2\";\n\nimport { OrderLibrary } from \"../../core/lib/OrderLibrary.sol\";\n\n// Mock contract implementation of OrderLibrary functions\ncontract MockOrderLibrary {\n function testGenerateOrderHash(\n address[4] _addresses,\n uint[5] _values\n )\n public\n pure\n returns(bytes32)\n {\n return OrderLibrary.generateOrderHash(\n _addresses,\n _values\n );\n }\n\n function testValidateSignature(\n bytes32 _orderHash,\n address _signerAddress,\n uint8 _v,\n bytes32 _r,\n bytes32 _s\n )\n public\n pure\n returns(bool)\n {\n return OrderLibrary.validateSignature(\n _orderHash,\n _signerAddress,\n _v,\n _r,\n _s\n );\n }\n}\n\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/lib/MockOrderLibrary.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/lib/MockOrderLibrary.sol", + "exportedSymbols": { + "MockOrderLibrary": [ + 4513 + ] + }, + "id": 4514, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4464, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:36" + }, + { + "id": 4465, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:35:36" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/OrderLibrary.sol", + "file": "../../core/lib/OrderLibrary.sol", + "id": 4467, + "nodeType": "ImportDirective", + "scope": 4514, + "sourceUnit": 2982, + "src": "61:63:36", + "symbolAliases": [ + { + "foreign": 4466, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4513, + "linearizedBaseContracts": [ + 4513 + ], + "name": "MockOrderLibrary", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4486, + "nodeType": "Block", + "src": "366:109:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4482, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4471, + "src": "427:10:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + { + "argumentTypes": null, + "id": 4483, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4475, + "src": "451:7:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4480, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "383:12:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 4481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "generateOrderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2938, + "src": "383:30:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$5_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address[4] memory,uint256[5] memory) pure returns (bytes32)" + } + }, + "id": 4484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "383:85:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 4479, + "id": 4485, + "nodeType": "Return", + "src": "376:92:36" + } + ] + }, + "documentation": null, + "id": 4487, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "testGenerateOrderHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4471, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 4487, + "src": "256:21:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 4468, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "256:7:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4470, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 4469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "264:1:36", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "256:10:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4475, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 4487, + "src": "287:15:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 4472, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "287:4:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4474, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 4473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "292:1:36", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "287:7:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "246:62:36" + }, + "payable": false, + "returnParameters": { + "id": 4479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4478, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4487, + "src": "353:7:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4477, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "353:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "352:9:36" + }, + "scope": 4513, + "src": "216:259:36", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4511, + "nodeType": "Block", + "src": "690:164:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4504, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4489, + "src": "751:10:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 4505, + "name": "_signerAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "775:14:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4506, + "name": "_v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4493, + "src": "803:2:36", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 4507, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4495, + "src": "819:2:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 4508, + "name": "_s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4497, + "src": "835:2:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4502, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "707:12:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 4503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "validateSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 2980, + "src": "707:30:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32,address,uint8,bytes32,bytes32) pure returns (bool)" + } + }, + "id": 4509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "707:140:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4501, + "id": 4510, + "nodeType": "Return", + "src": "700:147:36" + } + ] + }, + "documentation": null, + "id": 4512, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "testValidateSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4489, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "521:18:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4488, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "521:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4491, + "name": "_signerAddress", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "549:22:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "549:7:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4493, + "name": "_v", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "581:8:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4492, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "581:5:36", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4495, + "name": "_r", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "599:10:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4494, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "599:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4497, + "name": "_s", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "619:10:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4496, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "619:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "511:124:36" + }, + "payable": false, + "returnParameters": { + "id": 4501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4500, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "680:4:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4499, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "680:4:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "679:6:36" + }, + "scope": 4513, + "src": "481:373:36", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4514, + "src": "184:672:36" + } + ], + "src": "0:858:36" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/lib/MockOrderLibrary.sol", + "exportedSymbols": { + "MockOrderLibrary": [ + 4513 + ] + }, + "id": 4514, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4464, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:36" + }, + { + "id": 4465, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:35:36" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/OrderLibrary.sol", + "file": "../../core/lib/OrderLibrary.sol", + "id": 4467, + "nodeType": "ImportDirective", + "scope": 4514, + "sourceUnit": 2982, + "src": "61:63:36", + "symbolAliases": [ + { + "foreign": 4466, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4513, + "linearizedBaseContracts": [ + 4513 + ], + "name": "MockOrderLibrary", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4486, + "nodeType": "Block", + "src": "366:109:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4482, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4471, + "src": "427:10:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + { + "argumentTypes": null, + "id": 4483, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4475, + "src": "451:7:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4480, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "383:12:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 4481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "generateOrderHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2938, + "src": "383:30:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$5_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (address[4] memory,uint256[5] memory) pure returns (bytes32)" + } + }, + "id": 4484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "383:85:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 4479, + "id": 4485, + "nodeType": "Return", + "src": "376:92:36" + } + ] + }, + "documentation": null, + "id": 4487, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "testGenerateOrderHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4471, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 4487, + "src": "256:21:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 4468, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "256:7:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4470, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 4469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "264:1:36", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "256:10:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4475, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 4487, + "src": "287:15:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 4472, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "287:4:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4474, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 4473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "292:1:36", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "287:7:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "246:62:36" + }, + "payable": false, + "returnParameters": { + "id": 4479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4478, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4487, + "src": "353:7:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4477, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "353:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "352:9:36" + }, + "scope": 4513, + "src": "216:259:36", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4511, + "nodeType": "Block", + "src": "690:164:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4504, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4489, + "src": "751:10:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 4505, + "name": "_signerAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4491, + "src": "775:14:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4506, + "name": "_v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4493, + "src": "803:2:36", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 4507, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4495, + "src": "819:2:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 4508, + "name": "_s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4497, + "src": "835:2:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4502, + "name": "OrderLibrary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2981, + "src": "707:12:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_OrderLibrary_$2981_$", + "typeString": "type(library OrderLibrary)" + } + }, + "id": 4503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "validateSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 2980, + "src": "707:30:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32,address,uint8,bytes32,bytes32) pure returns (bool)" + } + }, + "id": 4509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "707:140:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4501, + "id": 4510, + "nodeType": "Return", + "src": "700:147:36" + } + ] + }, + "documentation": null, + "id": 4512, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "testValidateSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4489, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "521:18:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4488, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "521:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4491, + "name": "_signerAddress", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "549:22:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "549:7:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4493, + "name": "_v", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "581:8:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4492, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "581:5:36", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4495, + "name": "_r", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "599:10:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4494, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "599:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4497, + "name": "_s", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "619:10:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4496, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "619:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "511:124:36" + }, + "payable": false, + "returnParameters": { + "id": 4501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4500, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "680:4:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4499, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "680:4:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "679:6:36" + }, + "scope": 4513, + "src": "481:373:36", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4514, + "src": "184:672:36" + } + ], + "src": "0:858:36" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.916Z" +} \ No newline at end of file diff --git a/artifacts/ts/MockTokenInvalidReturn.ts b/artifacts/ts/MockTokenInvalidReturn.ts new file mode 100644 index 000000000..1f7682aa3 --- /dev/null +++ b/artifacts/ts/MockTokenInvalidReturn.ts @@ -0,0 +1,10449 @@ +export const MockTokenInvalidReturn = +{ + "contractName": "MockTokenInvalidReturn", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "initialAccount", + "type": "address" + }, + { + "name": "initialBalance", + "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_addedValue", + "type": "uint256" + } + ], + "name": "increaseApproval", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseApproval", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040516200147f3803806200147f8339810180604052810190808051906020019092919080519060200190929190805182019291906020018051820192919060200180519060200190929190505050836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836005819055508260039080519060200190620000c3929190620000ef565b508160049080519060200190620000dc929190620000ef565b508060028190555050505050506200019e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013257805160ff191683800117855562000163565b8280016001018555821562000163579182015b828111156200016257825182559160200191906001019062000145565b5b50905062000172919062000176565b5090565b6200019b91905b80821115620001975760008160009055506001016200017d565b5090565b90565b6112d180620001ae6000396000f3006080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a557806323b872dd146101d0578063313ce56714610251578063661884631461027c57806370a08231146102dd57806395d89b4114610334578063a9059cbb146103c4578063d73dd62314610425578063dd62ed3e14610486575b600080fd5b3480156100c057600080fd5b506100c96104fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059b565b6040518082815260200191505060405180910390f35b3480156101b157600080fd5b506101ba61068d565b6040518082815260200191505060405180910390f35b3480156101dc57600080fd5b5061023b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610697565b6040518082815260200191505060405180910390f35b34801561025d57600080fd5b50610266610a51565b6040518082815260200191505060405180910390f35b34801561028857600080fd5b506102c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a57565b6040518082815260200191505060405180910390f35b3480156102e957600080fd5b5061031e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ce8565b6040518082815260200191505060405180910390f35b34801561034057600080fd5b50610349610d30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038957808201518184015260208101905061036e565b50505050905090810190601f1680156103b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d057600080fd5b5061040f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dce565b6040518082815260200191505060405180910390f35b34801561043157600080fd5b50610470600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fed565b6040518082815260200191505060405180910390f35b34801561049257600080fd5b506104e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111e9565b6040518082815260200191505060405180910390f35b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105935780601f1061056857610100808354040283529160200191610593565b820191906000526020600020905b81548152906001019060200180831161057657829003601f168201915b505050505081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36004905092915050565b6000600554905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106d457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561072157600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107ac57600080fd5b6107fd826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610890826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061096182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600490509392505050565b60025481565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b68576000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bfc565b610b7b838261127090919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600491505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dc65780601f10610d9b57610100808354040283529160200191610dc6565b820191906000526020600020905b815481529060010190602001808311610da957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e0b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e5857600080fd5b610ea9826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f3c826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36004905092915050565b600061107e82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128990919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36004905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561127e57fe5b818303905092915050565b6000818301905082811015151561129c57fe5b809050929150505600a165627a7a72305820bb5d4b4a60423647aa96e3179879ea60a3aeb1e357e25eb38a785ecd44a98a9d0029", + "deployedBytecode": "0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a557806323b872dd146101d0578063313ce56714610251578063661884631461027c57806370a08231146102dd57806395d89b4114610334578063a9059cbb146103c4578063d73dd62314610425578063dd62ed3e14610486575b600080fd5b3480156100c057600080fd5b506100c96104fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059b565b6040518082815260200191505060405180910390f35b3480156101b157600080fd5b506101ba61068d565b6040518082815260200191505060405180910390f35b3480156101dc57600080fd5b5061023b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610697565b6040518082815260200191505060405180910390f35b34801561025d57600080fd5b50610266610a51565b6040518082815260200191505060405180910390f35b34801561028857600080fd5b506102c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a57565b6040518082815260200191505060405180910390f35b3480156102e957600080fd5b5061031e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ce8565b6040518082815260200191505060405180910390f35b34801561034057600080fd5b50610349610d30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038957808201518184015260208101905061036e565b50505050905090810190601f1680156103b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d057600080fd5b5061040f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dce565b6040518082815260200191505060405180910390f35b34801561043157600080fd5b50610470600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fed565b6040518082815260200191505060405180910390f35b34801561049257600080fd5b506104e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111e9565b6040518082815260200191505060405180910390f35b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105935780601f1061056857610100808354040283529160200191610593565b820191906000526020600020905b81548152906001019060200180831161057657829003601f168201915b505050505081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36004905092915050565b6000600554905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106d457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561072157600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107ac57600080fd5b6107fd826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610890826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061096182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127090919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600490509392505050565b60025481565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b68576000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bfc565b610b7b838261127090919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600491505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dc65780601f10610d9b57610100808354040283529160200191610dc6565b820191906000526020600020905b815481529060010190602001808311610da957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e0b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e5857600080fd5b610ea9826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461127090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f3c826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36004905092915050565b600061107e82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128990919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36004905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561127e57fe5b818303905092915050565b6000818301905082811015151561129c57fe5b809050929150505600a165627a7a72305820bb5d4b4a60423647aa96e3179879ea60a3aeb1e357e25eb38a785ecd44a98a9d0029", + "sourceMap": "113:5382:31:-;;;582:295;8:9:-1;5:2;;;30:1;27;20:12;5:2;582:295:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;758:14;731:8;:24;740:14;731:24;;;;;;;;;;;;;;;:41;;;;792:14;778:11;:28;;;;819:5;812:4;:12;;;;;;;;;;;;:::i;:::-;;839:7;830:6;:16;;;;;;;;;;;;:::i;:::-;;863:9;852:8;:20;;;;582:295;;;;;113:5382;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "113:5382:31:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;315:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;315:18:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;315:18:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3178:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3178:209:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;937:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;937:82:31;;;;;;;;;;;;;;;;;;;;;;;2091:469;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2091:469:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;288:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;288:23:31;;;;;;;;;;;;;;;;;;;;;;;5063:430;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5063:430:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1717:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1717:99:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;337:20:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;337:20:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1173:342;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1173:342:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4311:295;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4311:295:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3706:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3706:153:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;315:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3178:209::-;3264:7;3313:6;3281:7;:19;3289:10;3281:19;;;;;;;;;;;;;;;:29;3301:8;3281:29;;;;;;;;;;;;;;;:38;;;;3351:8;3330:38;;3339:10;3330:38;;;3361:6;3330:38;;;;;;;;;;;;;;;;;;3381:1;3374:8;;3178:209;;;;:::o;937:82::-;981:7;1003:11;;996:18;;937:82;:::o;2091:469::-;2196:7;2236:1;2221:17;;:3;:17;;;;2213:26;;;;;;;;2263:8;:15;2272:5;2263:15;;;;;;;;;;;;;;;;2253:6;:25;;2245:34;;;;;;;;2303:7;:14;2311:5;2303:14;;;;;;;;;;;;;;;:26;2318:10;2303:26;;;;;;;;;;;;;;;;2293:6;:36;;2285:45;;;;;;;;2355:27;2375:6;2355:8;:15;2364:5;2355:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;2337:8;:15;2346:5;2337:15;;;;;;;;;;;;;;;:45;;;;2404:25;2422:6;2404:8;:13;2413:3;2404:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;2388:8;:13;2397:3;2388:13;;;;;;;;;;;;;;;:41;;;;2464:38;2495:6;2464:7;:14;2472:5;2464:14;;;;;;;;;;;;;;;:26;2479:10;2464:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;2435:7;:14;2443:5;2435:14;;;;;;;;;;;;;;;:26;2450:10;2435:26;;;;;;;;;;;;;;;:67;;;;2529:3;2513:28;;2522:5;2513:28;;;2534:6;2513:28;;;;;;;;;;;;;;;;;;2554:1;2547:8;;2091:469;;;;;:::o;288:23::-;;;;:::o;5063:430::-;5168:7;5185:16;5204:7;:19;5212:10;5204:19;;;;;;;;;;;;;;;:29;5224:8;5204:29;;;;;;;;;;;;;;;;5185:48;;5262:8;5243:16;:27;5239:164;;;5312:1;5280:7;:19;5288:10;5280:19;;;;;;;;;;;;;;;:29;5300:8;5280:29;;;;;;;;;;;;;;;:33;;;;5239:164;;;5366:30;5379:16;5366:8;:12;;:30;;;;:::i;:::-;5334:7;:19;5342:10;5334:19;;;;;;;;;;;;;;;:29;5354:8;5334:29;;;;;;;;;;;;;;;:62;;;;5239:164;5434:8;5413:61;;5422:10;5413:61;;;5444:7;:19;5452:10;5444:19;;;;;;;;;;;;;;;:29;5464:8;5444:29;;;;;;;;;;;;;;;;5413:61;;;;;;;;;;;;;;;;;;5487:1;5480:8;;5063:430;;;;;:::o;1717:99::-;1773:7;1795:8;:16;1804:6;1795:16;;;;;;;;;;;;;;;;1788:23;;1717:99;;;:::o;337:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1173:342::-;1255:7;1295:1;1280:17;;:3;:17;;;;1272:26;;;;;;;;1322:8;:20;1331:10;1322:20;;;;;;;;;;;;;;;;1312:6;:30;;1304:39;;;;;;;;1373:32;1398:6;1373:8;:20;1382:10;1373:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;1350:8;:20;1359:10;1350:20;;;;;;;;;;;;;;;:55;;;;1427:25;1445:6;1427:8;:13;1436:3;1427:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1411:8;:13;1420:3;1411:13;;;;;;;;;;;;;;;:41;;;;1484:3;1463:33;;1472:10;1463:33;;;1489:6;1463:33;;;;;;;;;;;;;;;;;;1509:1;1502:8;;1173:342;;;;:::o;4311:295::-;4411:7;4468:46;4502:11;4468:7;:19;4476:10;4468:19;;;;;;;;;;;;;;;:29;4488:8;4468:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;4428:7;:19;4436:10;4428:19;;;;;;;;;;;;;;;:29;4448:8;4428:29;;;;;;;;;;;;;;;:87;;;;4547:8;4526:61;;4535:10;4526:61;;;4557:7;:19;4565:10;4557:19;;;;;;;;;;;;;;;:29;4577:8;4557:29;;;;;;;;;;;;;;;;4526:61;;;;;;;;;;;;;;;;;;4600:1;4593:8;;4311:295;;;;:::o;3706:153::-;3805:7;3829;:15;3837:6;3829:15;;;;;;;;;;;;;;;:25;3845:8;3829:25;;;;;;;;;;;;;;;;3822:32;;3706:153;;;;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "source": "pragma solidity 0.4.24;\n\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\n\n// mock class using BasicToken\ncontract MockTokenInvalidReturn {\n\n using SafeMath for uint;\n mapping(address => uint256) balances;\n mapping (address => mapping (address => uint256)) internal allowed;\n\n uint256 public decimals;\n string public name;\n string public symbol;\n uint256 public totalSupply;\n\n event Transfer(\n address indexed from,\n address indexed to,\n uint256 value\n );\n\n event Approval(\n address indexed owner,\n address indexed spender,\n uint256 value\n );\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol,\n uint256 _decimals)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n decimals = _decimals;\n }\n\n /**\n * @dev Total number of tokens in existence\n */\n function totalSupply() public view returns (uint256) {\n return totalSupply;\n }\n\n /**\n * @dev Transfer token for a specified address\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(\n address _to,\n uint256 _value\n )\n public\n returns(uint256)\n {\n require(_to != address(0));\n require(_value <= balances[msg.sender]);\n\n balances[msg.sender] = balances[msg.sender].sub(_value);\n balances[_to] = balances[_to].add(_value);\n emit Transfer(msg.sender, _to, _value);\n return 4;\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param _owner The address to query the the balance of.\n * @return An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address _owner) public view returns (uint256) {\n return balances[_owner];\n }\n\n /**\n * @dev Transfer tokens from one address to another\n * @param _from address The address which you want to send tokens from\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transferFrom(\n address _from,\n address _to,\n uint256 _value\n )\n public\n returns(uint256)\n {\n require(_to != address(0));\n require(_value <= balances[_from]);\n require(_value <= allowed[_from][msg.sender]);\n\n balances[_from] = balances[_from].sub(_value);\n balances[_to] = balances[_to].add(_value);\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n emit Transfer(_from, _to, _value);\n return 4;\n }\n\n /**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param _spender The address which will spend the funds.\n * @param _value The amount of tokens to be spent.\n */\n function approve(\n address _spender,\n uint256 _value\n )\n public\n returns(uint256)\n {\n allowed[msg.sender][_spender] = _value;\n emit Approval(msg.sender, _spender, _value);\n return 4;\n }\n\n /**\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\n * @param _owner address The address which owns the funds.\n * @param _spender address The address which will spend the funds.\n * @return A uint256 specifying the amount of tokens still available for the spender.\n */\n function allowance(\n address _owner,\n address _spender\n )\n public\n view\n returns (uint256)\n {\n return allowed[_owner][_spender];\n }\n\n /**\n * @dev Increase the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To increment\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param _spender The address which will spend the funds.\n * @param _addedValue The amount of tokens to increase the allowance by.\n */\n function increaseApproval(\n address _spender,\n uint256 _addedValue\n )\n public\n returns(uint256)\n {\n allowed[msg.sender][_spender] = (\n allowed[msg.sender][_spender].add(_addedValue));\n emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n return 4;\n }\n\n /**\n * @dev Decrease the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To decrement\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param _spender The address which will spend the funds.\n * @param _subtractedValue The amount of tokens to decrease the allowance by.\n */\n function decreaseApproval(\n address _spender,\n uint256 _subtractedValue\n )\n public\n returns(uint256)\n {\n uint256 oldValue = allowed[msg.sender][_spender];\n if (_subtractedValue > oldValue) {\n allowed[msg.sender][_spender] = 0;\n } else {\n allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);\n }\n emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n return 4;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/MockTokenInvalidReturn.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/MockTokenInvalidReturn.sol", + "exportedSymbols": { + "MockTokenInvalidReturn": [ + 3918 + ] + }, + "id": 3919, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3531, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:31" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 3532, + "nodeType": "ImportDirective", + "scope": 3919, + "sourceUnit": 4739, + "src": "25:55:31", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3918, + "linearizedBaseContracts": [ + 3918 + ], + "name": "MockTokenInvalidReturn", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3535, + "libraryName": { + "contractScope": null, + "id": 3533, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "156:8:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "150:24:31", + "typeName": { + "id": 3534, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "169:4:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3539, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "177:36:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3538, + "keyType": { + "id": 3536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "185:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "177:27:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "196:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3545, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "217:66:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 3544, + "keyType": { + "id": 3540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "226:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "217:49:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3543, + "keyType": { + "id": 3541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "246:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "237:28:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "257:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3547, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "288:23:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "288:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3549, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "315:18:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3548, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "315:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3551, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "337:20:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3550, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "337:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3553, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "361:26:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "361:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3561, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3555, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3561, + "src": "412:20:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3554, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "412:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3557, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3561, + "src": "438:18:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "438:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3559, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 3561, + "src": "462:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "462:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "406:73:31" + }, + "src": "392:88:31" + }, + { + "anonymous": false, + "documentation": null, + "id": 3569, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3563, + "indexed": true, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3569, + "src": "504:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3562, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "504:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3565, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3569, + "src": "531:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3564, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "531:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3567, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 3569, + "src": "560:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "498:79:31" + }, + "src": "484:94:31" + }, + { + "body": { + "id": 3604, + "nodeType": "Block", + "src": "725:152:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3582, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "731:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3584, + "indexExpression": { + "argumentTypes": null, + "id": 3583, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3571, + "src": "740:14:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "731:24:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3585, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3573, + "src": "758:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "731:41:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3587, + "nodeType": "ExpressionStatement", + "src": "731:41:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3588, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3553 + ], + "referencedDeclaration": 3553, + "src": "778:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3589, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3573, + "src": "792:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "778:28:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3591, + "nodeType": "ExpressionStatement", + "src": "778:28:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3592, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "812:4:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3593, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3575, + "src": "819:5:31", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "812:12:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3595, + "nodeType": "ExpressionStatement", + "src": "812:12:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3596, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "830:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3597, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3577, + "src": "839:7:31", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "830:16:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3599, + "nodeType": "ExpressionStatement", + "src": "830:16:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3600, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "852:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3601, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3579, + "src": "863:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "852:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3603, + "nodeType": "ExpressionStatement", + "src": "852:20:31" + } + ] + }, + "documentation": null, + "id": 3605, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3571, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "599:22:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "599:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3573, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "627:22:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3572, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "627:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3575, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "655:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3574, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "655:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3577, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "673:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3576, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "673:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3579, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "693:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3578, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "693:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:118:31" + }, + "payable": false, + "returnParameters": { + "id": 3581, + "nodeType": "ParameterList", + "parameters": [], + "src": "725:0:31" + }, + "scope": 3918, + "src": "582:295:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3612, + "nodeType": "Block", + "src": "990:29:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3610, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3553 + ], + "referencedDeclaration": 3553, + "src": "1003:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3609, + "id": 3611, + "nodeType": "Return", + "src": "996:18:31" + } + ] + }, + "documentation": "@dev Total number of tokens in existence", + "id": 3613, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3606, + "nodeType": "ParameterList", + "parameters": [], + "src": "957:2:31" + }, + "payable": false, + "returnParameters": { + "id": 3609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3608, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3613, + "src": "981:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3607, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "981:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "980:9:31" + }, + "scope": 3918, + "src": "937:82:31", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3672, + "nodeType": "Block", + "src": "1266:249:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3623, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1280:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1295:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1287:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1287:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1280:17:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3622, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1272:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1272:26:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3629, + "nodeType": "ExpressionStatement", + "src": "1272:26:31" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3631, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1312:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3632, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1322:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3635, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3633, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1331:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1331:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1322:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1312:30:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3630, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1304:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1304:39:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3638, + "nodeType": "ExpressionStatement", + "src": "1304:39:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3639, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1350:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3642, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3640, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1359:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1359:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1350:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3648, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1398:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3643, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1373:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3646, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3644, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1382:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1382:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1373:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "1373:24:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1373:32:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1350:55:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3651, + "nodeType": "ExpressionStatement", + "src": "1350:55:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3652, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1411:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3654, + "indexExpression": { + "argumentTypes": null, + "id": 3653, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1420:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1411:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3659, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1445:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3655, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1427:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3657, + "indexExpression": { + "argumentTypes": null, + "id": 3656, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1436:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1427:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "1427:17:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1427:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1411:41:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3662, + "nodeType": "ExpressionStatement", + "src": "1411:41:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3664, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1472:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1472:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3666, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1484:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3667, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1489:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3663, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "1463:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1463:33:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3669, + "nodeType": "EmitStatement", + "src": "1458:38:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1509:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3621, + "id": 3671, + "nodeType": "Return", + "src": "1502:8:31" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", + "id": 3673, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3615, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3673, + "src": "1196:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3614, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1196:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3617, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3673, + "src": "1213:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3616, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1213:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1190:41:31" + }, + "payable": false, + "returnParameters": { + "id": 3621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3620, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3673, + "src": "1255:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3619, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1255:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1254:9:31" + }, + "scope": 3918, + "src": "1173:342:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3684, + "nodeType": "Block", + "src": "1782:34:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3680, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1795:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3682, + "indexExpression": { + "argumentTypes": null, + "id": 3681, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "1804:6:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1795:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3679, + "id": 3683, + "nodeType": "Return", + "src": "1788:23:31" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", + "id": 3685, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3675, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 3685, + "src": "1736:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1736:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1735:16:31" + }, + "payable": false, + "returnParameters": { + "id": 3679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3685, + "src": "1773:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1773:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:9:31" + }, + "scope": 3918, + "src": "1717:99:31", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3770, + "nodeType": "Block", + "src": "2207:353:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3697, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2221:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2236:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2228:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2228:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2221:17:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3696, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2213:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2213:26:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3703, + "nodeType": "ExpressionStatement", + "src": "2213:26:31" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3705, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2253:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3706, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2263:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3708, + "indexExpression": { + "argumentTypes": null, + "id": 3707, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2272:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2263:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2253:25:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3704, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2245:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2245:34:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3711, + "nodeType": "ExpressionStatement", + "src": "2245:34:31" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3713, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2293:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3714, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "2303:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3716, + "indexExpression": { + "argumentTypes": null, + "id": 3715, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2311:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2303:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3719, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3717, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2318:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2318:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2303:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2293:36:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3712, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2285:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2285:45:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3722, + "nodeType": "ExpressionStatement", + "src": "2285:45:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3723, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2337:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3725, + "indexExpression": { + "argumentTypes": null, + "id": 3724, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2346:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2337:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3730, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2375:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3726, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2355:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3728, + "indexExpression": { + "argumentTypes": null, + "id": 3727, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2364:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2355:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2355:19:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2355:27:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2337:45:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3733, + "nodeType": "ExpressionStatement", + "src": "2337:45:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3734, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2388:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3736, + "indexExpression": { + "argumentTypes": null, + "id": 3735, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2397:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2388:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3741, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2422:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3737, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2404:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3739, + "indexExpression": { + "argumentTypes": null, + "id": 3738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2413:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "2404:17:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2404:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2388:41:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3744, + "nodeType": "ExpressionStatement", + "src": "2388:41:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3745, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "2435:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3749, + "indexExpression": { + "argumentTypes": null, + "id": 3746, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2443:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2435:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3750, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3747, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2450:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2450:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2435:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3758, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2495:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3751, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "2464:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3753, + "indexExpression": { + "argumentTypes": null, + "id": 3752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2472:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2464:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3756, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3754, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2479:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2479:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2464:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2464:30:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2464:38:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2435:67:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3761, + "nodeType": "ExpressionStatement", + "src": "2435:67:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3763, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2522:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3764, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2529:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3765, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2534:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3762, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "2513:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2513:28:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3767, + "nodeType": "EmitStatement", + "src": "2508:33:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2554:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3695, + "id": 3769, + "nodeType": "Return", + "src": "2547:8:31" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", + "id": 3771, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3687, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2118:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3686, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3689, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2137:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2137:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3691, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2154:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2154:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2112:60:31" + }, + "payable": false, + "returnParameters": { + "id": 3695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3694, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2196:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2196:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2195:9:31" + }, + "scope": 3918, + "src": "2091:469:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3798, + "nodeType": "Block", + "src": "3275:112:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3780, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "3281:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3784, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3781, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "3289:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3289:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3281:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3785, + "indexExpression": { + "argumentTypes": null, + "id": 3783, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3773, + "src": "3301:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3281:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3786, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3775, + "src": "3313:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3281:38:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3788, + "nodeType": "ExpressionStatement", + "src": "3281:38:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "3339:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3339:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3792, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3773, + "src": "3351:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3793, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3775, + "src": "3361:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3789, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3569, + "src": "3330:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3330:38:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3795, + "nodeType": "EmitStatement", + "src": "3325:43:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3381:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3779, + "id": 3797, + "nodeType": "Return", + "src": "3374:8:31" + } + ] + }, + "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.", + "id": 3799, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3773, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3799, + "src": "3200:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3772, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3200:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3775, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3799, + "src": "3222:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3222:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3194:46:31" + }, + "payable": false, + "returnParameters": { + "id": 3779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3778, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3799, + "src": "3264:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3264:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3263:9:31" + }, + "scope": 3918, + "src": "3178:209:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3814, + "nodeType": "Block", + "src": "3816:43:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3808, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "3829:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3810, + "indexExpression": { + "argumentTypes": null, + "id": 3809, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3801, + "src": "3837:6:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3829:15:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3812, + "indexExpression": { + "argumentTypes": null, + "id": 3811, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3803, + "src": "3845:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3829:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3807, + "id": 3813, + "nodeType": "Return", + "src": "3822:32:31" + } + ] + }, + "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param _owner address The address which owns the funds.\n@param _spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", + "id": 3815, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3804, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3801, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 3815, + "src": "3730:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3800, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3730:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3803, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3815, + "src": "3750:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3750:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3724:47:31" + }, + "payable": false, + "returnParameters": { + "id": 3807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3806, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3815, + "src": "3805:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3805, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3805:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3804:9:31" + }, + "scope": 3918, + "src": "3706:153:31", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3856, + "nodeType": "Block", + "src": "4422:184:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3824, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "4428:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3828, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3825, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4436:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4436:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4428:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3829, + "indexExpression": { + "argumentTypes": null, + "id": 3827, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4448:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4428:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3837, + "name": "_addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3819, + "src": "4502:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3830, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "4468:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3833, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3831, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4476:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4476:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4468:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3835, + "indexExpression": { + "argumentTypes": null, + "id": 3834, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4488:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4468:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4468:33:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4468:46:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3839, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4460:55:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4428:87:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3841, + "nodeType": "ExpressionStatement", + "src": "4428:87:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3843, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4535:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4535:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3845, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4547:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3846, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "4557:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3849, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3847, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4565:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4565:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4557:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3851, + "indexExpression": { + "argumentTypes": null, + "id": 3850, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4577:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4557:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3842, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3569, + "src": "4526:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4526:61:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3853, + "nodeType": "EmitStatement", + "src": "4521:66:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4600:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3823, + "id": 3855, + "nodeType": "Return", + "src": "4593:8:31" + } + ] + }, + "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.", + "id": 3857, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "increaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3817, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3857, + "src": "4342:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3816, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4342:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3819, + "name": "_addedValue", + "nodeType": "VariableDeclaration", + "scope": 3857, + "src": "4364:19:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4364:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4336:51:31" + }, + "payable": false, + "returnParameters": { + "id": 3823, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3822, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3857, + "src": "4411:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3821, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4411:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4410:9:31" + }, + "scope": 3918, + "src": "4311:295:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3916, + "nodeType": "Block", + "src": "5179:314:31", + "statements": [ + { + "assignments": [ + 3867 + ], + "declarations": [ + { + "constant": false, + "id": 3867, + "name": "oldValue", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5185:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3866, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5185:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3874, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3868, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5204:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3871, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3869, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5212:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5212:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5204:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3873, + "indexExpression": { + "argumentTypes": null, + "id": 3872, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5224:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5204:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5185:48:31" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3875, + "name": "_subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "5243:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 3876, + "name": "oldValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3867, + "src": "5262:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5243:27:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3900, + "nodeType": "Block", + "src": "5326:77:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3888, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5334:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3892, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3889, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5342:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5342:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5334:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3893, + "indexExpression": { + "argumentTypes": null, + "id": 3891, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5354:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5334:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3896, + "name": "_subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "5379:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3894, + "name": "oldValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3867, + "src": "5366:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "5366:12:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5366:30:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5334:62:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3899, + "nodeType": "ExpressionStatement", + "src": "5334:62:31" + } + ] + }, + "id": 3901, + "nodeType": "IfStatement", + "src": "5239:164:31", + "trueBody": { + "id": 3887, + "nodeType": "Block", + "src": "5272:48:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3878, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5280:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3882, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3879, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5288:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5288:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5280:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3883, + "indexExpression": { + "argumentTypes": null, + "id": 3881, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5300:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5280:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 3884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5312:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5280:33:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3886, + "nodeType": "ExpressionStatement", + "src": "5280:33:31" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3903, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5422:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5422:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3905, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5434:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3906, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5444:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3909, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3907, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5452:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5452:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5444:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3911, + "indexExpression": { + "argumentTypes": null, + "id": 3910, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5464:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5444:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3902, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3569, + "src": "5413:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5413:61:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3913, + "nodeType": "EmitStatement", + "src": "5408:66:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5487:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3865, + "id": 3915, + "nodeType": "Return", + "src": "5480:8:31" + } + ] + }, + "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.", + "id": 3917, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "decreaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3862, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3859, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5094:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5094:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3861, + "name": "_subtractedValue", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5116:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3860, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5116:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5088:56:31" + }, + "payable": false, + "returnParameters": { + "id": 3865, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3864, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5168:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3863, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5168:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5167:9:31" + }, + "scope": 3918, + "src": "5063:430:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3919, + "src": "113:5382:31" + } + ], + "src": "0:5496:31" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/MockTokenInvalidReturn.sol", + "exportedSymbols": { + "MockTokenInvalidReturn": [ + 3918 + ] + }, + "id": 3919, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3531, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:31" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 3532, + "nodeType": "ImportDirective", + "scope": 3919, + "sourceUnit": 4739, + "src": "25:55:31", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3918, + "linearizedBaseContracts": [ + 3918 + ], + "name": "MockTokenInvalidReturn", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3535, + "libraryName": { + "contractScope": null, + "id": 3533, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "156:8:31", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "150:24:31", + "typeName": { + "id": 3534, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "169:4:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3539, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "177:36:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3538, + "keyType": { + "id": 3536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "185:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "177:27:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "196:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3545, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "217:66:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 3544, + "keyType": { + "id": 3540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "226:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "217:49:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3543, + "keyType": { + "id": 3541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "246:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "237:28:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "257:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3547, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "288:23:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "288:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3549, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "315:18:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3548, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "315:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3551, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "337:20:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3550, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "337:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3553, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "361:26:31", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "361:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3561, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3555, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3561, + "src": "412:20:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3554, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "412:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3557, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3561, + "src": "438:18:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "438:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3559, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 3561, + "src": "462:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "462:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "406:73:31" + }, + "src": "392:88:31" + }, + { + "anonymous": false, + "documentation": null, + "id": 3569, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3563, + "indexed": true, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3569, + "src": "504:21:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3562, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "504:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3565, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3569, + "src": "531:23:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3564, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "531:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3567, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 3569, + "src": "560:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "498:79:31" + }, + "src": "484:94:31" + }, + { + "body": { + "id": 3604, + "nodeType": "Block", + "src": "725:152:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3582, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "731:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3584, + "indexExpression": { + "argumentTypes": null, + "id": 3583, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3571, + "src": "740:14:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "731:24:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3585, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3573, + "src": "758:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "731:41:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3587, + "nodeType": "ExpressionStatement", + "src": "731:41:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3588, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3553 + ], + "referencedDeclaration": 3553, + "src": "778:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3589, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3573, + "src": "792:14:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "778:28:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3591, + "nodeType": "ExpressionStatement", + "src": "778:28:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3592, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "812:4:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3593, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3575, + "src": "819:5:31", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "812:12:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3595, + "nodeType": "ExpressionStatement", + "src": "812:12:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3596, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "830:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3597, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3577, + "src": "839:7:31", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "830:16:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3599, + "nodeType": "ExpressionStatement", + "src": "830:16:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3600, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "852:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3601, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3579, + "src": "863:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "852:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3603, + "nodeType": "ExpressionStatement", + "src": "852:20:31" + } + ] + }, + "documentation": null, + "id": 3605, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3571, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "599:22:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "599:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3573, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "627:22:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3572, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "627:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3575, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "655:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3574, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "655:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3577, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "673:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3576, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "673:6:31", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3579, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "693:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3578, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "693:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:118:31" + }, + "payable": false, + "returnParameters": { + "id": 3581, + "nodeType": "ParameterList", + "parameters": [], + "src": "725:0:31" + }, + "scope": 3918, + "src": "582:295:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3612, + "nodeType": "Block", + "src": "990:29:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3610, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3553 + ], + "referencedDeclaration": 3553, + "src": "1003:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3609, + "id": 3611, + "nodeType": "Return", + "src": "996:18:31" + } + ] + }, + "documentation": "@dev Total number of tokens in existence", + "id": 3613, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3606, + "nodeType": "ParameterList", + "parameters": [], + "src": "957:2:31" + }, + "payable": false, + "returnParameters": { + "id": 3609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3608, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3613, + "src": "981:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3607, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "981:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "980:9:31" + }, + "scope": 3918, + "src": "937:82:31", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3672, + "nodeType": "Block", + "src": "1266:249:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3623, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1280:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1295:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1287:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1287:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1280:17:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3622, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1272:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1272:26:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3629, + "nodeType": "ExpressionStatement", + "src": "1272:26:31" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3631, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1312:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3632, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1322:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3635, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3633, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1331:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1331:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1322:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1312:30:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3630, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1304:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1304:39:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3638, + "nodeType": "ExpressionStatement", + "src": "1304:39:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3639, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1350:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3642, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3640, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1359:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1359:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1350:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3648, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1398:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3643, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1373:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3646, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3644, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1382:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1382:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1373:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "1373:24:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1373:32:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1350:55:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3651, + "nodeType": "ExpressionStatement", + "src": "1350:55:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3652, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1411:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3654, + "indexExpression": { + "argumentTypes": null, + "id": 3653, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1420:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1411:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3659, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1445:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3655, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1427:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3657, + "indexExpression": { + "argumentTypes": null, + "id": 3656, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1436:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1427:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "1427:17:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1427:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1411:41:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3662, + "nodeType": "ExpressionStatement", + "src": "1411:41:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3664, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1472:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1472:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3666, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3615, + "src": "1484:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3667, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3617, + "src": "1489:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3663, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "1463:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1463:33:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3669, + "nodeType": "EmitStatement", + "src": "1458:38:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1509:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3621, + "id": 3671, + "nodeType": "Return", + "src": "1502:8:31" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", + "id": 3673, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3615, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3673, + "src": "1196:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3614, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1196:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3617, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3673, + "src": "1213:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3616, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1213:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1190:41:31" + }, + "payable": false, + "returnParameters": { + "id": 3621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3620, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3673, + "src": "1255:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3619, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1255:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1254:9:31" + }, + "scope": 3918, + "src": "1173:342:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3684, + "nodeType": "Block", + "src": "1782:34:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3680, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "1795:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3682, + "indexExpression": { + "argumentTypes": null, + "id": 3681, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "1804:6:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1795:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3679, + "id": 3683, + "nodeType": "Return", + "src": "1788:23:31" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", + "id": 3685, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3675, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 3685, + "src": "1736:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1736:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1735:16:31" + }, + "payable": false, + "returnParameters": { + "id": 3679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3678, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3685, + "src": "1773:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1773:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:9:31" + }, + "scope": 3918, + "src": "1717:99:31", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3770, + "nodeType": "Block", + "src": "2207:353:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3697, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2221:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2236:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2228:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2228:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2221:17:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3696, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2213:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2213:26:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3703, + "nodeType": "ExpressionStatement", + "src": "2213:26:31" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3705, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2253:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3706, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2263:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3708, + "indexExpression": { + "argumentTypes": null, + "id": 3707, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2272:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2263:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2253:25:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3704, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2245:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2245:34:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3711, + "nodeType": "ExpressionStatement", + "src": "2245:34:31" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3713, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2293:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3714, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "2303:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3716, + "indexExpression": { + "argumentTypes": null, + "id": 3715, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2311:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2303:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3719, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3717, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2318:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2318:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2303:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2293:36:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3712, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2285:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2285:45:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3722, + "nodeType": "ExpressionStatement", + "src": "2285:45:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3723, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2337:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3725, + "indexExpression": { + "argumentTypes": null, + "id": 3724, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2346:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2337:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3730, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2375:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3726, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2355:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3728, + "indexExpression": { + "argumentTypes": null, + "id": 3727, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2364:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2355:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2355:19:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2355:27:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2337:45:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3733, + "nodeType": "ExpressionStatement", + "src": "2337:45:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3734, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2388:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3736, + "indexExpression": { + "argumentTypes": null, + "id": 3735, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2397:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2388:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3741, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2422:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3737, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "2404:8:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3739, + "indexExpression": { + "argumentTypes": null, + "id": 3738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2413:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2404:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "2404:17:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2404:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2388:41:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3744, + "nodeType": "ExpressionStatement", + "src": "2388:41:31" + }, + { + "expression": { + "argumentTypes": null, + "id": 3760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3745, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "2435:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3749, + "indexExpression": { + "argumentTypes": null, + "id": 3746, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2443:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2435:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3750, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3747, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2450:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2450:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2435:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3758, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2495:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3751, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "2464:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3753, + "indexExpression": { + "argumentTypes": null, + "id": 3752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2472:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2464:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3756, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3754, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2479:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2479:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2464:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2464:30:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2464:38:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2435:67:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3761, + "nodeType": "ExpressionStatement", + "src": "2435:67:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3763, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3687, + "src": "2522:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3764, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "2529:3:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3765, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "2534:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3762, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "2513:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2513:28:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3767, + "nodeType": "EmitStatement", + "src": "2508:33:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2554:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3695, + "id": 3769, + "nodeType": "Return", + "src": "2547:8:31" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", + "id": 3771, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3687, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2118:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3686, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3689, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2137:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2137:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3691, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2154:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2154:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2112:60:31" + }, + "payable": false, + "returnParameters": { + "id": 3695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3694, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "2196:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2196:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2195:9:31" + }, + "scope": 3918, + "src": "2091:469:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3798, + "nodeType": "Block", + "src": "3275:112:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3780, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "3281:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3784, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3781, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "3289:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3289:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3281:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3785, + "indexExpression": { + "argumentTypes": null, + "id": 3783, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3773, + "src": "3301:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3281:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3786, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3775, + "src": "3313:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3281:38:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3788, + "nodeType": "ExpressionStatement", + "src": "3281:38:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "3339:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3339:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3792, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3773, + "src": "3351:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3793, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3775, + "src": "3361:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3789, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3569, + "src": "3330:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3330:38:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3795, + "nodeType": "EmitStatement", + "src": "3325:43:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3381:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3779, + "id": 3797, + "nodeType": "Return", + "src": "3374:8:31" + } + ] + }, + "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.", + "id": 3799, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3773, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3799, + "src": "3200:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3772, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3200:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3775, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 3799, + "src": "3222:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3222:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3194:46:31" + }, + "payable": false, + "returnParameters": { + "id": 3779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3778, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3799, + "src": "3264:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3264:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3263:9:31" + }, + "scope": 3918, + "src": "3178:209:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3814, + "nodeType": "Block", + "src": "3816:43:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3808, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "3829:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3810, + "indexExpression": { + "argumentTypes": null, + "id": 3809, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3801, + "src": "3837:6:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3829:15:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3812, + "indexExpression": { + "argumentTypes": null, + "id": 3811, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3803, + "src": "3845:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3829:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3807, + "id": 3813, + "nodeType": "Return", + "src": "3822:32:31" + } + ] + }, + "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param _owner address The address which owns the funds.\n@param _spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", + "id": 3815, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3804, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3801, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 3815, + "src": "3730:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3800, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3730:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3803, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3815, + "src": "3750:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3750:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3724:47:31" + }, + "payable": false, + "returnParameters": { + "id": 3807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3806, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3815, + "src": "3805:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3805, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3805:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3804:9:31" + }, + "scope": 3918, + "src": "3706:153:31", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3856, + "nodeType": "Block", + "src": "4422:184:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3824, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "4428:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3828, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3825, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4436:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4436:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4428:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3829, + "indexExpression": { + "argumentTypes": null, + "id": 3827, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4448:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4428:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3837, + "name": "_addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3819, + "src": "4502:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3830, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "4468:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3833, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3831, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4476:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4476:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4468:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3835, + "indexExpression": { + "argumentTypes": null, + "id": 3834, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4488:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4468:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4468:33:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4468:46:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3839, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4460:55:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4428:87:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3841, + "nodeType": "ExpressionStatement", + "src": "4428:87:31" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3843, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4535:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4535:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3845, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4547:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3846, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "4557:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3849, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3847, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "4565:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4565:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4557:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3851, + "indexExpression": { + "argumentTypes": null, + "id": 3850, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "4577:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4557:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3842, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3569, + "src": "4526:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4526:61:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3853, + "nodeType": "EmitStatement", + "src": "4521:66:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4600:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3823, + "id": 3855, + "nodeType": "Return", + "src": "4593:8:31" + } + ] + }, + "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.", + "id": 3857, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "increaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3817, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3857, + "src": "4342:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3816, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4342:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3819, + "name": "_addedValue", + "nodeType": "VariableDeclaration", + "scope": 3857, + "src": "4364:19:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4364:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4336:51:31" + }, + "payable": false, + "returnParameters": { + "id": 3823, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3822, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3857, + "src": "4411:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3821, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4411:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4410:9:31" + }, + "scope": 3918, + "src": "4311:295:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3916, + "nodeType": "Block", + "src": "5179:314:31", + "statements": [ + { + "assignments": [ + 3867 + ], + "declarations": [ + { + "constant": false, + "id": 3867, + "name": "oldValue", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5185:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3866, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5185:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3874, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3868, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5204:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3871, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3869, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5212:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5212:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5204:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3873, + "indexExpression": { + "argumentTypes": null, + "id": 3872, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5224:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5204:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5185:48:31" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3875, + "name": "_subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "5243:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 3876, + "name": "oldValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3867, + "src": "5262:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5243:27:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3900, + "nodeType": "Block", + "src": "5326:77:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3888, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5334:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3892, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3889, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5342:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5342:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5334:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3893, + "indexExpression": { + "argumentTypes": null, + "id": 3891, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5354:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5334:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3896, + "name": "_subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3861, + "src": "5379:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3894, + "name": "oldValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3867, + "src": "5366:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "5366:12:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5366:30:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5334:62:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3899, + "nodeType": "ExpressionStatement", + "src": "5334:62:31" + } + ] + }, + "id": 3901, + "nodeType": "IfStatement", + "src": "5239:164:31", + "trueBody": { + "id": 3887, + "nodeType": "Block", + "src": "5272:48:31", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3878, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5280:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3882, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3879, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5288:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5288:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5280:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3883, + "indexExpression": { + "argumentTypes": null, + "id": 3881, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5300:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5280:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 3884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5312:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5280:33:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3886, + "nodeType": "ExpressionStatement", + "src": "5280:33:31" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3903, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5422:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5422:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3905, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5434:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3906, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "5444:7:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3909, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3907, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "5452:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5452:10:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5444:19:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3911, + "indexExpression": { + "argumentTypes": null, + "id": 3910, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "5464:8:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5444:29:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3902, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3569, + "src": "5413:8:31", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5413:61:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3913, + "nodeType": "EmitStatement", + "src": "5408:66:31" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "34", + "id": 3914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5487:1:31", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "functionReturnParameters": 3865, + "id": 3915, + "nodeType": "Return", + "src": "5480:8:31" + } + ] + }, + "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.", + "id": 3917, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "decreaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3862, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3859, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5094:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5094:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3861, + "name": "_subtractedValue", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5116:24:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3860, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5116:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5088:56:31" + }, + "payable": false, + "returnParameters": { + "id": 3865, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3864, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3917, + "src": "5168:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3863, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5168:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5167:9:31" + }, + "scope": 3918, + "src": "5063:430:31", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 3919, + "src": "113:5382:31" + } + ], + "src": "0:5496:31" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.910Z" +} \ No newline at end of file diff --git a/artifacts/ts/MockTokenNoXferReturn.ts b/artifacts/ts/MockTokenNoXferReturn.ts new file mode 100644 index 000000000..b510bb5a8 --- /dev/null +++ b/artifacts/ts/MockTokenNoXferReturn.ts @@ -0,0 +1,5957 @@ +export const MockTokenNoXferReturn = +{ + "contractName": "MockTokenNoXferReturn", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "initialAccount", + "type": "address" + }, + { + "name": "initialBalance", + "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_decimals", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50604051610c7d380380610c7d8339810180604052810190808051906020019092919080519060200190929190805182019291906020018051820192919060200180519060200190929190505050836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360058190555082600390805190602001906100be9291906100e7565b5081600490805190602001906100d59291906100e7565b5080600281905550505050505061018c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061012857805160ff1916838001178555610156565b82800160010185558215610156579182015b8281111561015557825182559160200191906001019061013a565b5b5090506101639190610167565b5090565b61018991905b8082111561018557600081600090555060010161016d565b5090565b90565b610ae28061019b6000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610093578063095ea7b31461012357806318160ddd1461017057806323b872dd1461019b578063313ce5671461020857806370a082311461023357806395d89b411461028a578063a9059cbb1461031a575b600080fd5b34801561009f57600080fd5b506100a8610367565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100e85780820151818401526020810190506100cd565b50505050905090810190601f1680156101155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012f57600080fd5b5061016e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610405565b005b34801561017c57600080fd5b5061018561048a565b6040518082815260200191505060405180910390f35b3480156101a757600080fd5b50610206600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610494565b005b34801561021457600080fd5b5061021d6107e2565b6040518082815260200191505060405180910390f35b34801561023f57600080fd5b50610274600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107e8565b6040518082815260200191505060405180910390f35b34801561029657600080fd5b5061029f610830565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102df5780820151818401526020810190506102c4565b50505050905090810190601f16801561030c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032657600080fd5b50610365600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108ce565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103fd5780601f106103d2576101008083540402835291602001916103fd565b820191906000526020600020905b8154815290600101906020018083116103e057829003601f168201915b505050505081565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000600554905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156104d057600080fd5b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561051d57600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156105a857600080fd5b6105f9816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a8190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061068c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061075d81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a8190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60025481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108c65780601f1061089b576101008083540402835291602001916108c6565b820191906000526020600020905b8154815290600101906020018083116108a957829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561090a57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561095757600080fd5b6109a8816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a8190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a3b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000828211151515610a8f57fe5b818303905092915050565b60008183019050828110151515610aad57fe5b809050929150505600a165627a7a723058208c8951d5465a4dd7df8d578b0ce98a0d93f021a048abac0d227425d5f67904560029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610093578063095ea7b31461012357806318160ddd1461017057806323b872dd1461019b578063313ce5671461020857806370a082311461023357806395d89b411461028a578063a9059cbb1461031a575b600080fd5b34801561009f57600080fd5b506100a8610367565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100e85780820151818401526020810190506100cd565b50505050905090810190601f1680156101155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012f57600080fd5b5061016e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610405565b005b34801561017c57600080fd5b5061018561048a565b6040518082815260200191505060405180910390f35b3480156101a757600080fd5b50610206600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610494565b005b34801561021457600080fd5b5061021d6107e2565b6040518082815260200191505060405180910390f35b34801561023f57600080fd5b50610274600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107e8565b6040518082815260200191505060405180910390f35b34801561029657600080fd5b5061029f610830565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102df5780820151818401526020810190506102c4565b50505050905090810190601f16801561030c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032657600080fd5b50610365600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108ce565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103fd5780601f106103d2576101008083540402835291602001916103fd565b820191906000526020600020905b8154815290600101906020018083116103e057829003601f168201915b505050505081565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000600554905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156104d057600080fd5b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561051d57600080fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156105a857600080fd5b6105f9816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a8190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061068c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061075d81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a8190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60025481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108c65780601f1061089b576101008083540402835291602001916108c6565b820191906000526020600020905b8154815290600101906020018083116108a957829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561090a57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561095757600080fd5b6109a8816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a8190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a3b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000828211151515610a8f57fe5b818303905092915050565b60008183019050828110151515610aad57fe5b809050929150505600a165627a7a723058208c8951d5465a4dd7df8d578b0ce98a0d93f021a048abac0d227425d5f67904560029", + "sourceMap": "113:2816:32:-;;;395:295;8:9:-1;5:2;;;30:1;27;20:12;5:2;395:295:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;571:14;544:8;:24;553:14;544:24;;;;;;;;;;;;;;;:41;;;;605:14;591:11;:28;;;;632:5;625:4;:12;;;;;;;;;;;;:::i;:::-;;652:7;643:6;:16;;;;;;;;;;;;:::i;:::-;;676:9;665:8;:20;;;;395:295;;;;;113:2816;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "113:2816:32:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;318:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;318:18:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;318:18:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2820:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2820:107:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;750:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;750:82:32;;;;;;;;;;;;;;;;;;;;;;;1807:395;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1807:395:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;291:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;291:23:32;;;;;;;;;;;;;;;;;;;;;;;1433:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1433:99:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;340:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;340:20:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;340:20:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;986:245;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:245:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;318:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2820:107::-;2916:6;2884:7;:19;2892:10;2884:19;;;;;;;;;;;;;;;:29;2904:8;2884:29;;;;;;;;;;;;;;;:38;;;;2820:107;;:::o;750:82::-;794:7;816:11;;809:18;;750:82;:::o;1807:395::-;1931:1;1916:17;;:3;:17;;;;1908:26;;;;;;;;1958:8;:15;1967:5;1958:15;;;;;;;;;;;;;;;;1948:6;:25;;1940:34;;;;;;;;1998:7;:14;2006:5;1998:14;;;;;;;;;;;;;;;:26;2013:10;1998:26;;;;;;;;;;;;;;;;1988:6;:36;;1980:45;;;;;;;;2050:27;2070:6;2050:8;:15;2059:5;2050:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;2032:8;:15;2041:5;2032:15;;;;;;;;;;;;;;;:45;;;;2099:25;2117:6;2099:8;:13;2108:3;2099:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;2083:8;:13;2092:3;2083:13;;;;;;;;;;;;;;;:41;;;;2159:38;2190:6;2159:7;:14;2167:5;2159:14;;;;;;;;;;;;;;;:26;2174:10;2159:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;2130:7;:14;2138:5;2130:14;;;;;;;;;;;;;;;:26;2145:10;2130:26;;;;;;;;;;;;;;;:67;;;;1807:395;;;:::o;291:23::-;;;;:::o;1433:99::-;1489:7;1511:8;:16;1520:6;1511:16;;;;;;;;;;;;;;;;1504:23;;1433:99;;;:::o;340:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;986:245::-;1069:1;1054:17;;:3;:17;;;;1046:26;;;;;;;;1096:8;:20;1105:10;1096:20;;;;;;;;;;;;;;;;1086:6;:30;;1078:39;;;;;;;;1147:32;1172:6;1147:8;:20;1156:10;1147:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;1124:8;:20;1133:10;1124:20;;;;;;;;;;;;;;;:55;;;;1201:25;1219:6;1201:8;:13;1210:3;1201:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1185:8;:13;1194:3;1185:13;;;;;;;;;;;;;;;:41;;;;986:245;;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "source": "pragma solidity 0.4.24;\n\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\n\n// mock class using BasicToken\ncontract MockTokenNoXferReturn {\n\n using SafeMath for uint256;\n\n mapping(address => uint256) balances;\n mapping (address => mapping (address => uint256)) internal allowed;\n\n uint256 public decimals;\n string public name;\n string public symbol;\n uint256 public totalSupply;\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol,\n uint256 _decimals)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n decimals = _decimals;\n }\n\n /**\n * @dev Total number of tokens in existence\n */\n function totalSupply() public view returns (uint256) {\n return totalSupply;\n }\n\n /**\n * @dev Transfer token for a specified address\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(address _to, uint256 _value) public {\n require(_to != address(0));\n require(_value <= balances[msg.sender]);\n\n balances[msg.sender] = balances[msg.sender].sub(_value);\n balances[_to] = balances[_to].add(_value);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param _owner The address to query the the balance of.\n * @return An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address _owner) public view returns (uint256) {\n return balances[_owner];\n }\n\n /**\n * @dev Transfer tokens from one address to another\n * @param _from address The address which you want to send tokens from\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transferFrom(\n address _from,\n address _to,\n uint256 _value\n )\n public\n {\n require(_to != address(0));\n require(_value <= balances[_from]);\n require(_value <= allowed[_from][msg.sender]);\n\n balances[_from] = balances[_from].sub(_value);\n balances[_to] = balances[_to].add(_value);\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n }\n\n /**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param _spender The address which will spend the funds.\n * @param _value The amount of tokens to be spent.\n */\n function approve(address _spender, uint256 _value) public {\n allowed[msg.sender][_spender] = _value;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/MockTokenNoXferReturn.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/MockTokenNoXferReturn.sol", + "exportedSymbols": { + "MockTokenNoXferReturn": [ + 4141 + ] + }, + "id": 4142, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3920, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:32" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 3921, + "nodeType": "ImportDirective", + "scope": 4142, + "sourceUnit": 4739, + "src": "25:55:32", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4141, + "linearizedBaseContracts": [ + 4141 + ], + "name": "MockTokenNoXferReturn", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3924, + "libraryName": { + "contractScope": null, + "id": 3922, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "155:8:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "149:27:32", + "typeName": { + "id": 3923, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "168:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3928, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "180:36:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3927, + "keyType": { + "id": 3925, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "188:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "180:27:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "199:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3934, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "220:66:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 3933, + "keyType": { + "id": 3929, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "229:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "220:49:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3932, + "keyType": { + "id": 3930, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "249:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "240:28:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3931, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "260:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3936, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "291:23:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "291:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3938, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "318:18:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3937, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "318:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3940, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "340:20:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3939, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "340:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3942, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "364:26:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "364:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 3977, + "nodeType": "Block", + "src": "538:152:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3955, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "544:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3957, + "indexExpression": { + "argumentTypes": null, + "id": 3956, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3944, + "src": "553:14:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "544:24:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3958, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3946, + "src": "571:14:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "544:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3960, + "nodeType": "ExpressionStatement", + "src": "544:41:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3961, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3942 + ], + "referencedDeclaration": 3942, + "src": "591:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3962, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3946, + "src": "605:14:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "591:28:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3964, + "nodeType": "ExpressionStatement", + "src": "591:28:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3965, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3938, + "src": "625:4:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3966, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3948, + "src": "632:5:32", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "625:12:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3968, + "nodeType": "ExpressionStatement", + "src": "625:12:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3969, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3940, + "src": "643:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3970, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3950, + "src": "652:7:32", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "643:16:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3972, + "nodeType": "ExpressionStatement", + "src": "643:16:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3973, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3936, + "src": "665:8:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3974, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3952, + "src": "676:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "665:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3976, + "nodeType": "ExpressionStatement", + "src": "665:20:32" + } + ] + }, + "documentation": null, + "id": 3978, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3953, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3944, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "412:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "412:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3946, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "440:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3945, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "440:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3948, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "468:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3947, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "468:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3950, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "486:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3949, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "486:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3952, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "506:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3951, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "506:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "406:118:32" + }, + "payable": false, + "returnParameters": { + "id": 3954, + "nodeType": "ParameterList", + "parameters": [], + "src": "538:0:32" + }, + "scope": 4141, + "src": "395:295:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3985, + "nodeType": "Block", + "src": "803:29:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3983, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3942 + ], + "referencedDeclaration": 3942, + "src": "816:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3982, + "id": 3984, + "nodeType": "Return", + "src": "809:18:32" + } + ] + }, + "documentation": "@dev Total number of tokens in existence", + "id": 3986, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3979, + "nodeType": "ParameterList", + "parameters": [], + "src": "770:2:32" + }, + "payable": false, + "returnParameters": { + "id": 3982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3981, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3986, + "src": "794:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "794:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "793:9:32" + }, + "scope": 4141, + "src": "750:82:32", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4034, + "nodeType": "Block", + "src": "1040:191:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3994, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "1054:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1069:1:32", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1061:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1061:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1054:17:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3993, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1046:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1046:26:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4000, + "nodeType": "ExpressionStatement", + "src": "1046:26:32" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4002, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3990, + "src": "1086:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4003, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1096:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4006, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4004, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1105:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1105:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1096:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1086:30:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4001, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1078:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1078:39:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4009, + "nodeType": "ExpressionStatement", + "src": "1078:39:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4010, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1124:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4013, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4011, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1133:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1133:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1124:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4019, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3990, + "src": "1172:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4014, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1147:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4017, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4015, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1156:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1156:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1147:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "1147:24:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1147:32:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1124:55:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4022, + "nodeType": "ExpressionStatement", + "src": "1124:55:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4023, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1185:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4025, + "indexExpression": { + "argumentTypes": null, + "id": 4024, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "1194:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1185:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4030, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3990, + "src": "1219:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4026, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1201:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4028, + "indexExpression": { + "argumentTypes": null, + "id": 4027, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "1210:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1201:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "1201:17:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1201:25:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1185:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4033, + "nodeType": "ExpressionStatement", + "src": "1185:41:32" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", + "id": 4035, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3988, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 4035, + "src": "1004:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3987, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1004:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3990, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4035, + "src": "1017:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1017:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1003:29:32" + }, + "payable": false, + "returnParameters": { + "id": 3992, + "nodeType": "ParameterList", + "parameters": [], + "src": "1040:0:32" + }, + "scope": 4141, + "src": "986:245:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4046, + "nodeType": "Block", + "src": "1498:34:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4042, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1511:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4044, + "indexExpression": { + "argumentTypes": null, + "id": 4043, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4037, + "src": "1520:6:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1511:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4041, + "id": 4045, + "nodeType": "Return", + "src": "1504:23:32" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", + "id": 4047, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4037, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 4047, + "src": "1452:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1452:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1451:16:32" + }, + "payable": false, + "returnParameters": { + "id": 4041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4040, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4047, + "src": "1489:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4039, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1489:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1488:9:32" + }, + "scope": 4141, + "src": "1433:99:32", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4122, + "nodeType": "Block", + "src": "1902:300:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4057, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "1916:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1931:1:32", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4058, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1923:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1923:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1916:17:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4056, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1908:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1908:26:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4063, + "nodeType": "ExpressionStatement", + "src": "1908:26:32" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4065, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "1948:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4066, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1958:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4068, + "indexExpression": { + "argumentTypes": null, + "id": 4067, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "1967:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1958:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1948:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4064, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1940:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1940:34:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4071, + "nodeType": "ExpressionStatement", + "src": "1940:34:32" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4073, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "1988:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4074, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "1998:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4076, + "indexExpression": { + "argumentTypes": null, + "id": 4075, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2006:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1998:14:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4079, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4077, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2013:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2013:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1998:26:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1988:36:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4072, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1980:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1980:45:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4082, + "nodeType": "ExpressionStatement", + "src": "1980:45:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4083, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2032:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4085, + "indexExpression": { + "argumentTypes": null, + "id": 4084, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2041:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2032:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4090, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "2070:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4086, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2050:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4088, + "indexExpression": { + "argumentTypes": null, + "id": 4087, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2059:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2050:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2050:19:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2050:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2032:45:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4093, + "nodeType": "ExpressionStatement", + "src": "2032:45:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4094, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2083:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4096, + "indexExpression": { + "argumentTypes": null, + "id": 4095, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "2092:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2083:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4101, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "2117:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4097, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2099:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4099, + "indexExpression": { + "argumentTypes": null, + "id": 4098, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "2108:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2099:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "2099:17:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2099:25:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2083:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4104, + "nodeType": "ExpressionStatement", + "src": "2083:41:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4105, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "2130:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4109, + "indexExpression": { + "argumentTypes": null, + "id": 4106, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2138:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2130:14:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4110, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4107, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2145:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2145:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2130:26:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4118, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "2190:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4111, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "2159:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4113, + "indexExpression": { + "argumentTypes": null, + "id": 4112, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2167:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2159:14:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4116, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4114, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2174:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2174:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2159:26:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2159:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2159:38:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2130:67:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4121, + "nodeType": "ExpressionStatement", + "src": "2130:67:32" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", + "id": 4123, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4049, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 4123, + "src": "1834:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4048, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1834:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4051, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 4123, + "src": "1853:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4050, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1853:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4053, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4123, + "src": "1870:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4052, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1870:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1828:60:32" + }, + "payable": false, + "returnParameters": { + "id": 4055, + "nodeType": "ParameterList", + "parameters": [], + "src": "1902:0:32" + }, + "scope": 4141, + "src": "1807:395:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4139, + "nodeType": "Block", + "src": "2878:49:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4130, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "2884:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4134, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4131, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2892:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2892:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2884:19:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4135, + "indexExpression": { + "argumentTypes": null, + "id": 4133, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4125, + "src": "2904:8:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2884:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4136, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4127, + "src": "2916:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2884:38:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4138, + "nodeType": "ExpressionStatement", + "src": "2884:38:32" + } + ] + }, + "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.", + "id": 4140, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4125, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 4140, + "src": "2837:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2837:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4127, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4140, + "src": "2855:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2855:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2836:34:32" + }, + "payable": false, + "returnParameters": { + "id": 4129, + "nodeType": "ParameterList", + "parameters": [], + "src": "2878:0:32" + }, + "scope": 4141, + "src": "2820:107:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4142, + "src": "113:2816:32" + } + ], + "src": "0:2930:32" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/MockTokenNoXferReturn.sol", + "exportedSymbols": { + "MockTokenNoXferReturn": [ + 4141 + ] + }, + "id": 4142, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3920, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:32" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 3921, + "nodeType": "ImportDirective", + "scope": 4142, + "sourceUnit": 4739, + "src": "25:55:32", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4141, + "linearizedBaseContracts": [ + 4141 + ], + "name": "MockTokenNoXferReturn", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3924, + "libraryName": { + "contractScope": null, + "id": 3922, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "155:8:32", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "149:27:32", + "typeName": { + "id": 3923, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "168:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 3928, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "180:36:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3927, + "keyType": { + "id": 3925, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "188:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "180:27:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "199:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3934, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "220:66:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 3933, + "keyType": { + "id": 3929, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "229:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "220:49:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3932, + "keyType": { + "id": 3930, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "249:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "240:28:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3931, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "260:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3936, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "291:23:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "291:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3938, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "318:18:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3937, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "318:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3940, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "340:20:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3939, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "340:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3942, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 4141, + "src": "364:26:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "364:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 3977, + "nodeType": "Block", + "src": "538:152:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3955, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "544:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3957, + "indexExpression": { + "argumentTypes": null, + "id": 3956, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3944, + "src": "553:14:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "544:24:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3958, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3946, + "src": "571:14:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "544:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3960, + "nodeType": "ExpressionStatement", + "src": "544:41:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3961, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3942 + ], + "referencedDeclaration": 3942, + "src": "591:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3962, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3946, + "src": "605:14:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "591:28:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3964, + "nodeType": "ExpressionStatement", + "src": "591:28:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3965, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3938, + "src": "625:4:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3966, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3948, + "src": "632:5:32", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "625:12:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3968, + "nodeType": "ExpressionStatement", + "src": "625:12:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3969, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3940, + "src": "643:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3970, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3950, + "src": "652:7:32", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "643:16:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3972, + "nodeType": "ExpressionStatement", + "src": "643:16:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 3975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3973, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3936, + "src": "665:8:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3974, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3952, + "src": "676:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "665:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3976, + "nodeType": "ExpressionStatement", + "src": "665:20:32" + } + ] + }, + "documentation": null, + "id": 3978, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3953, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3944, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "412:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "412:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3946, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "440:22:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3945, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "440:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3948, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "468:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3947, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "468:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3950, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "486:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3949, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "486:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3952, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 3978, + "src": "506:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3951, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "506:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "406:118:32" + }, + "payable": false, + "returnParameters": { + "id": 3954, + "nodeType": "ParameterList", + "parameters": [], + "src": "538:0:32" + }, + "scope": 4141, + "src": "395:295:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3985, + "nodeType": "Block", + "src": "803:29:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3983, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3942 + ], + "referencedDeclaration": 3942, + "src": "816:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3982, + "id": 3984, + "nodeType": "Return", + "src": "809:18:32" + } + ] + }, + "documentation": "@dev Total number of tokens in existence", + "id": 3986, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3979, + "nodeType": "ParameterList", + "parameters": [], + "src": "770:2:32" + }, + "payable": false, + "returnParameters": { + "id": 3982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3981, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3986, + "src": "794:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "794:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "793:9:32" + }, + "scope": 4141, + "src": "750:82:32", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4034, + "nodeType": "Block", + "src": "1040:191:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3994, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "1054:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1069:1:32", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1061:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1061:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1054:17:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3993, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1046:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1046:26:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4000, + "nodeType": "ExpressionStatement", + "src": "1046:26:32" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4002, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3990, + "src": "1086:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4003, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1096:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4006, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4004, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1105:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1105:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1096:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1086:30:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4001, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1078:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1078:39:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4009, + "nodeType": "ExpressionStatement", + "src": "1078:39:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4010, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1124:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4013, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4011, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1133:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1133:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1124:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4019, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3990, + "src": "1172:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4014, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1147:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4017, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4015, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "1156:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1156:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1147:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "1147:24:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1147:32:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1124:55:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4022, + "nodeType": "ExpressionStatement", + "src": "1124:55:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4023, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1185:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4025, + "indexExpression": { + "argumentTypes": null, + "id": 4024, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "1194:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1185:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4030, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3990, + "src": "1219:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4026, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1201:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4028, + "indexExpression": { + "argumentTypes": null, + "id": 4027, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3988, + "src": "1210:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1201:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "1201:17:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1201:25:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1185:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4033, + "nodeType": "ExpressionStatement", + "src": "1185:41:32" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", + "id": 4035, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3988, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 4035, + "src": "1004:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3987, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1004:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3990, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4035, + "src": "1017:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1017:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1003:29:32" + }, + "payable": false, + "returnParameters": { + "id": 3992, + "nodeType": "ParameterList", + "parameters": [], + "src": "1040:0:32" + }, + "scope": 4141, + "src": "986:245:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4046, + "nodeType": "Block", + "src": "1498:34:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4042, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1511:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4044, + "indexExpression": { + "argumentTypes": null, + "id": 4043, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4037, + "src": "1520:6:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1511:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4041, + "id": 4045, + "nodeType": "Return", + "src": "1504:23:32" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address.\n@param _owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", + "id": 4047, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4037, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 4047, + "src": "1452:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1452:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1451:16:32" + }, + "payable": false, + "returnParameters": { + "id": 4041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4040, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4047, + "src": "1489:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4039, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1489:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1488:9:32" + }, + "scope": 4141, + "src": "1433:99:32", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4122, + "nodeType": "Block", + "src": "1902:300:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4057, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "1916:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1931:1:32", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4058, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1923:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1923:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1916:17:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4056, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1908:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1908:26:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4063, + "nodeType": "ExpressionStatement", + "src": "1908:26:32" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4065, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "1948:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4066, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "1958:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4068, + "indexExpression": { + "argumentTypes": null, + "id": 4067, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "1967:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1958:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1948:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4064, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1940:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1940:34:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4071, + "nodeType": "ExpressionStatement", + "src": "1940:34:32" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4073, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "1988:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4074, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "1998:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4076, + "indexExpression": { + "argumentTypes": null, + "id": 4075, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2006:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1998:14:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4079, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4077, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2013:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2013:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1998:26:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1988:36:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4072, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1980:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1980:45:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4082, + "nodeType": "ExpressionStatement", + "src": "1980:45:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4083, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2032:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4085, + "indexExpression": { + "argumentTypes": null, + "id": 4084, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2041:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2032:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4090, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "2070:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4086, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2050:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4088, + "indexExpression": { + "argumentTypes": null, + "id": 4087, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2059:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2050:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2050:19:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2050:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2032:45:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4093, + "nodeType": "ExpressionStatement", + "src": "2032:45:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4094, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2083:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4096, + "indexExpression": { + "argumentTypes": null, + "id": 4095, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "2092:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2083:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4101, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "2117:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4097, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3928, + "src": "2099:8:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4099, + "indexExpression": { + "argumentTypes": null, + "id": 4098, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "2108:3:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2099:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "2099:17:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2099:25:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2083:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4104, + "nodeType": "ExpressionStatement", + "src": "2083:41:32" + }, + { + "expression": { + "argumentTypes": null, + "id": 4120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4105, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "2130:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4109, + "indexExpression": { + "argumentTypes": null, + "id": 4106, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2138:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2130:14:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4110, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4107, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2145:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2145:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2130:26:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4118, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "2190:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4111, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "2159:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4113, + "indexExpression": { + "argumentTypes": null, + "id": 4112, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4049, + "src": "2167:5:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2159:14:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4116, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4114, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2174:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2174:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2159:26:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "2159:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 4119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2159:38:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2130:67:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4121, + "nodeType": "ExpressionStatement", + "src": "2130:67:32" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", + "id": 4123, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4049, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 4123, + "src": "1834:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4048, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1834:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4051, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 4123, + "src": "1853:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4050, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1853:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4053, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4123, + "src": "1870:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4052, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1870:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1828:60:32" + }, + "payable": false, + "returnParameters": { + "id": 4055, + "nodeType": "ParameterList", + "parameters": [], + "src": "1902:0:32" + }, + "scope": 4141, + "src": "1807:395:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4139, + "nodeType": "Block", + "src": "2878:49:32", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4130, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "2884:7:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4134, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4131, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "2892:3:32", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2892:10:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2884:19:32", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4135, + "indexExpression": { + "argumentTypes": null, + "id": 4133, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4125, + "src": "2904:8:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2884:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4136, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4127, + "src": "2916:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2884:38:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4138, + "nodeType": "ExpressionStatement", + "src": "2884:38:32" + } + ] + }, + "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.", + "id": 4140, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4125, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 4140, + "src": "2837:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2837:7:32", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4127, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4140, + "src": "2855:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2855:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2836:34:32" + }, + "payable": false, + "returnParameters": { + "id": 4129, + "nodeType": "ParameterList", + "parameters": [], + "src": "2878:0:32" + }, + "scope": 4141, + "src": "2820:107:32", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4142, + "src": "113:2816:32" + } + ], + "src": "0:2930:32" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.913Z" +} \ No newline at end of file diff --git a/artifacts/ts/MockZeroExOrderDataHandlerLibrary.ts b/artifacts/ts/MockZeroExOrderDataHandlerLibrary.ts new file mode 100644 index 000000000..a89c3e1bf --- /dev/null +++ b/artifacts/ts/MockZeroExOrderDataHandlerLibrary.ts @@ -0,0 +1,3421 @@ +export const MockZeroExOrderDataHandlerLibrary = +{ + "contractName": "MockZeroExOrderDataHandlerLibrary", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_orderData", + "type": "bytes" + } + ], + "name": "parseOrderDataHeader", + "outputs": [ + { + "name": "", + "type": "uint256[4]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderData", + "type": "bytes" + } + ], + "name": "parseFillAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderData", + "type": "bytes" + } + ], + "name": "parseSignature", + "outputs": [ + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_orderData", + "type": "bytes" + } + ], + "name": "parseZeroExOrderData", + "outputs": [ + { + "name": "", + "type": "address[4]" + }, + { + "name": "", + "type": "uint256[6]" + }, + { + "name": "", + "type": "bytes" + }, + { + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610d90806100206000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806339a3968b14610067578063aa688c58146100a4578063c66479bb146100e4578063f596d10a14610121575b600080fd5b34801561007357600080fd5b5061008e6004803603610089919081019061093d565b61015e565b60405161009b9190610bf4565b60405180910390f35b3480156100b057600080fd5b506100cb60048036036100c6919081019061093d565b610170565b6040516100db9493929190610b21565b60405180910390f35b3480156100f057600080fd5b5061010b6004803603610106919081019061093d565b6102e2565b6040516101189190610b77565b60405180910390f35b34801561012d57600080fd5b506101486004803603610143919081019061093d565b610337565b6040516101559190610b92565b60405180910390f35b600061016982610368565b9050919050565b61017861079b565b6101806107be565b60608061018b6107e1565b61019486610389565b9050608060405190810160405280826000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525060c060405190810160405280836080015181526020018360a0015181526020018360c0015181526020018360e00151815260200183610100015181526020018361012001518152508261014001518361016001518191508090509450945094509450509193509193565b6102ea61089b565b6102f26108be565b6102fb836103dd565b90506080604051908101604052808260000151815260200182602001518152602001826040015181526020018260600151815250915050919050565b60606103416108be565b600061034c846103dd565b91508160000151905061035f8482610426565b92505050919050565b60008060006103768461045e565b9150608082015190508092505050919050565b6103916107e1565b6103996108be565b6103a16107e1565b6103aa846103dd565b91506103d16103c2858460000151856020015161046e565b836040015184606001516104cb565b90508092505050919050565b6103e56108be565b6103ed6108be565b60006103f88461045e565b9050805182526020810151602083015260408101516040830152606081015160608301528192505050919050565b60608061045260a061044260a0866105e290919063ffffffff16565b866105fe9092919063ffffffff16565b90508091505092915050565b6000602082019050809050919050565b6060600080606061047e8761045e565b925061049386846105e290919063ffffffff16565b91506104bc826104ac87856105e290919063ffffffff16565b896105fe9092919063ffffffff16565b90508093505050509392505050565b6104d36107e1565b6104db6107e1565b60006104e68661045e565b9050805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e0830152610100810151610100830152610120810151610120830152610575610140610565610140886105e290919063ffffffff16565b886105fe9092919063ffffffff16565b8261014001819052506105cd610596610140876105e290919063ffffffff16565b6105bd866105af6101408a6105e290919063ffffffff16565b6105e290919063ffffffff16565b886105fe9092919063ffffffff16565b82610160018190525081925050509392505050565b600081830190508281101515156105f557fe5b80905092915050565b6060818311151515610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90610bb4565b60405180910390fd5b8351821115151561068b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068290610bd4565b60405180910390fd5b8282036040519080825280601f01601f1916602001820160405280156106c05781602001602082028038833980820191505090505b5090506106e16106cf8261045e565b846106d98761045e565b0183516106eb565b8090509392505050565b6020811015610715576001816020036101000a038019835116818551168082178652505050610795565b8282141561072257610796565b828211156107615760208103905080820181840181515b828510156107565784518652602085019450602086019550610739565b808252505050610794565b60208103905080820181840183515b8186121561078d5782518252602083039250602082039150610770565b8086525050505b5b5b505050565b608060405190810160405280600490602082028038833980820191505090505090565b60c060405190810160405280600690602082028038833980820191505090505090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b608060405190810160405280600490602082028038833980820191505090505090565b608060405190810160405280600081526020016000815260200160008152602001600081525090565b600082601f83011215156108fa57600080fd5b813561090d61090882610c3c565b610c0f565b9150808252602083016020830185838301111561092957600080fd5b610934838284610d03565b50505092915050565b60006020828403121561094f57600080fd5b600082013567ffffffffffffffff81111561096957600080fd5b610975848285016108e7565b91505092915050565b61098781610cd9565b82525050565b61099681610c86565b61099f82610c68565b60005b828110156109d1576109b585835161097e565b6109be82610cb2565b91506020850194506001810190506109a2565b5050505050565b6109e181610c91565b6109ea82610c72565b60005b82811015610a1c57610a00858351610b12565b610a0982610cbf565b91506020850194506001810190506109ed565b5050505050565b610a2c81610c9c565b610a3582610c7c565b60005b82811015610a6757610a4b858351610b12565b610a5482610ccc565b9150602085019450600181019050610a38565b5050505050565b6000610a7982610ca7565b808452610a8d816020860160208601610d12565b610a9681610d45565b602085010191505092915050565b6000601a82527f46524f4d5f4c4553535f5448414e5f544f5f52455155495245440000000000006020830152604082019050919050565b6000601c82527f544f5f4c4553535f5448414e5f4c454e4754485f5245515549524544000000006020830152604082019050919050565b610b1b81610cf9565b82525050565b600061018082019050610b37600083018761098d565b610b446080830186610a23565b818103610140830152610b578185610a6e565b9050818103610160830152610b6c8184610a6e565b905095945050505050565b6000608082019050610b8c60008301846109d8565b92915050565b60006020820190508181036000830152610bac8184610a6e565b905092915050565b60006020820190508181036000830152610bcd81610aa4565b9050919050565b60006020820190508181036000830152610bed81610adb565b9050919050565b6000602082019050610c096000830184610b12565b92915050565b6000604051905081810181811067ffffffffffffffff82111715610c3257600080fd5b8060405250919050565b600067ffffffffffffffff821115610c5357600080fd5b601f19601f8301169050602081019050919050565b6000819050919050565b6000819050919050565b6000819050919050565b600060049050919050565b600060049050919050565b600060069050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610d30578082015181840152602081019050610d15565b83811115610d3f576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820922bbb8221df4fc7b3d37b6a2f16a4e3aaf92d9a7e38c96660eddaf4af930fc76c6578706572696d656e74616cf50037", + "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806339a3968b14610067578063aa688c58146100a4578063c66479bb146100e4578063f596d10a14610121575b600080fd5b34801561007357600080fd5b5061008e6004803603610089919081019061093d565b61015e565b60405161009b9190610bf4565b60405180910390f35b3480156100b057600080fd5b506100cb60048036036100c6919081019061093d565b610170565b6040516100db9493929190610b21565b60405180910390f35b3480156100f057600080fd5b5061010b6004803603610106919081019061093d565b6102e2565b6040516101189190610b77565b60405180910390f35b34801561012d57600080fd5b506101486004803603610143919081019061093d565b610337565b6040516101559190610b92565b60405180910390f35b600061016982610368565b9050919050565b61017861079b565b6101806107be565b60608061018b6107e1565b61019486610389565b9050608060405190810160405280826000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525060c060405190810160405280836080015181526020018360a0015181526020018360c0015181526020018360e00151815260200183610100015181526020018361012001518152508261014001518361016001518191508090509450945094509450509193509193565b6102ea61089b565b6102f26108be565b6102fb836103dd565b90506080604051908101604052808260000151815260200182602001518152602001826040015181526020018260600151815250915050919050565b60606103416108be565b600061034c846103dd565b91508160000151905061035f8482610426565b92505050919050565b60008060006103768461045e565b9150608082015190508092505050919050565b6103916107e1565b6103996108be565b6103a16107e1565b6103aa846103dd565b91506103d16103c2858460000151856020015161046e565b836040015184606001516104cb565b90508092505050919050565b6103e56108be565b6103ed6108be565b60006103f88461045e565b9050805182526020810151602083015260408101516040830152606081015160608301528192505050919050565b60608061045260a061044260a0866105e290919063ffffffff16565b866105fe9092919063ffffffff16565b90508091505092915050565b6000602082019050809050919050565b6060600080606061047e8761045e565b925061049386846105e290919063ffffffff16565b91506104bc826104ac87856105e290919063ffffffff16565b896105fe9092919063ffffffff16565b90508093505050509392505050565b6104d36107e1565b6104db6107e1565b60006104e68661045e565b9050805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e0830152610100810151610100830152610120810151610120830152610575610140610565610140886105e290919063ffffffff16565b886105fe9092919063ffffffff16565b8261014001819052506105cd610596610140876105e290919063ffffffff16565b6105bd866105af6101408a6105e290919063ffffffff16565b6105e290919063ffffffff16565b886105fe9092919063ffffffff16565b82610160018190525081925050509392505050565b600081830190508281101515156105f557fe5b80905092915050565b6060818311151515610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90610bb4565b60405180910390fd5b8351821115151561068b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068290610bd4565b60405180910390fd5b8282036040519080825280601f01601f1916602001820160405280156106c05781602001602082028038833980820191505090505b5090506106e16106cf8261045e565b846106d98761045e565b0183516106eb565b8090509392505050565b6020811015610715576001816020036101000a038019835116818551168082178652505050610795565b8282141561072257610796565b828211156107615760208103905080820181840181515b828510156107565784518652602085019450602086019550610739565b808252505050610794565b60208103905080820181840183515b8186121561078d5782518252602083039250602082039150610770565b8086525050505b5b5b505050565b608060405190810160405280600490602082028038833980820191505090505090565b60c060405190810160405280600690602082028038833980820191505090505090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b608060405190810160405280600490602082028038833980820191505090505090565b608060405190810160405280600081526020016000815260200160008152602001600081525090565b600082601f83011215156108fa57600080fd5b813561090d61090882610c3c565b610c0f565b9150808252602083016020830185838301111561092957600080fd5b610934838284610d03565b50505092915050565b60006020828403121561094f57600080fd5b600082013567ffffffffffffffff81111561096957600080fd5b610975848285016108e7565b91505092915050565b61098781610cd9565b82525050565b61099681610c86565b61099f82610c68565b60005b828110156109d1576109b585835161097e565b6109be82610cb2565b91506020850194506001810190506109a2565b5050505050565b6109e181610c91565b6109ea82610c72565b60005b82811015610a1c57610a00858351610b12565b610a0982610cbf565b91506020850194506001810190506109ed565b5050505050565b610a2c81610c9c565b610a3582610c7c565b60005b82811015610a6757610a4b858351610b12565b610a5482610ccc565b9150602085019450600181019050610a38565b5050505050565b6000610a7982610ca7565b808452610a8d816020860160208601610d12565b610a9681610d45565b602085010191505092915050565b6000601a82527f46524f4d5f4c4553535f5448414e5f544f5f52455155495245440000000000006020830152604082019050919050565b6000601c82527f544f5f4c4553535f5448414e5f4c454e4754485f5245515549524544000000006020830152604082019050919050565b610b1b81610cf9565b82525050565b600061018082019050610b37600083018761098d565b610b446080830186610a23565b818103610140830152610b578185610a6e565b9050818103610160830152610b6c8184610a6e565b905095945050505050565b6000608082019050610b8c60008301846109d8565b92915050565b60006020820190508181036000830152610bac8184610a6e565b905092915050565b60006020820190508181036000830152610bcd81610aa4565b9050919050565b60006020820190508181036000830152610bed81610adb565b9050919050565b6000602082019050610c096000830184610b12565b92915050565b6000604051905081810181811067ffffffffffffffff82111715610c3257600080fd5b8060405250919050565b600067ffffffffffffffff821115610c5357600080fd5b601f19601f8301169050602081019050919050565b6000819050919050565b6000819050919050565b6000819050919050565b600060049050919050565b600060049050919050565b600060069050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610d30578082015181840152602081019050610d15565b83811115610d3f576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820922bbb8221df4fc7b3d37b6a2f16a4e3aaf92d9a7e38c96660eddaf4af930fc76c6578706572696d656e74616cf50037", + "sourceMap": "213:1780:37:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;213:1780:37;;;;;;;", + "deployedSourceMap": "213:1780:37:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;674:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;674:175:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:771;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1220:771:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:406;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:406:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;855:359;;8:9:-1;5:2;;;30:1;27;20:12;5:2;855:359:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;674:175;762:7;792:50;831:10;792:38;:50::i;:::-;785:57;;674:175;;;:::o;1220:771::-;1312:10;;:::i;:::-;1324;;:::i;:::-;1336:5;1343;1364:41;;:::i;:::-;1408:55;1452:10;1408:43;:55::i;:::-;1364:99;;1474:510;;;;;;;;;1513:5;:18;;;1474:510;;;;;;;;1549:5;:18;;;1474:510;;;;;;;;1585:5;:25;;;1474:510;;;;;;;;1628:5;:19;;;1474:510;;;;;;;;;;;;;;;;1693:5;:22;;;1474:510;;;;1733:5;:22;;;1474:510;;;;1773:5;:14;;;1474:510;;;;1805:5;:14;;;1474:510;;;;1837:5;:27;;;1474:510;;;;1882:5;:10;;;1474:510;;;1920:5;:20;;;1954:5;:20;;;1474:510;;;;;;;;;;;;;;1220:771;;;;;;:::o;262:406::-;355:10;;:::i;:::-;381:49;;:::i;:::-;433:51;473:10;433:39;:51::i;:::-;381:103;;494:167;;;;;;;;;515:6;:22;;;494:167;;;;551:6;:18;;;494:167;;;;583:6;:27;;;494:167;;;;624:6;:27;;;494:167;;;;;262:406;;;;:::o;855:359::-;942:5;963:49;;:::i;:::-;1076:23;1015:51;1055:10;1015:39;:51::i;:::-;963:103;;1102:6;:22;;;1076:48;;1141:66;1179:10;1191:15;1141:37;:66::i;:::-;1134:73;;855:359;;;;;:::o;4373:314:13:-;4463:7;4486:21;4547:18;4510:27;:10;:25;:27::i;:::-;4486:51;;4638:3;4623:13;4619:23;4613:30;4599:44;;4670:10;4663:17;;4373:314;;;;;:::o;7788:435::-;7882:5;;:::i;:::-;7910:26;;:::i;:::-;7978:18;;:::i;:::-;7939:28;7956:10;7939:16;:28::i;:::-;7910:57;;7999:194;8029:72;8046:10;8058:6;:22;;;8082:6;:18;;;8029:16;:72::i;:::-;8115:6;:27;;;8156:6;:27;;;7999:16;:194::i;:::-;7978:215;;8211:5;8204:12;;7788:435;;;;;:::o;3758:609::-;3849:12;;:::i;:::-;3877:26;;:::i;:::-;3914:21;3938:27;:10;:25;:27::i;:::-;3914:51;;4029:13;4023:20;4006:6;3999:45;4125:2;4110:13;4106:22;4100:29;4095:2;4087:6;4083:15;4076:54;4207:2;4192:13;4188:22;4182:29;4177:2;4169:6;4165:15;4158:54;4298:2;4283:13;4279:22;4273:29;4268:2;4260:6;4256:15;4249:54;4354:6;4347:13;;3758:609;;;;;:::o;4693:239::-;4805:5;4826:22;4851:48;4868:3;4873:25;4894:3;4873:16;:20;;:25;;;;:::i;:::-;4851:10;:16;;:48;;;;;:::i;:::-;4826:73;;4916:9;4909:16;;4693:239;;;;;:::o;850:228:26:-;941:21;1029:2;1022:5;1018:14;1001:31;;1058:13;1051:20;;850:228;;;:::o;4938:444:13:-;5071:5;5092:21;5153:25;5226:18;5116:27;:10;:25;:27::i;:::-;5092:51;;5181:35;5199:16;5181:13;:17;;:35;;;;:::i;:::-;5153:63;;5247:106;5277:17;5308:35;5330:12;5308:17;:21;;:35;;;;:::i;:::-;5247:10;:16;;:106;;;;;:::i;:::-;5226:127;;5370:5;5363:12;;4938:444;;;;;;;;:::o;5388:2394::-;5567:5;;:::i;:::-;5595:18;;:::i;:::-;5623:21;5647:29;:12;:27;:29::i;:::-;5623:53;;6689:13;6683:20;6666:5;6659:45;6776:2;6761:13;6757:22;6751:29;6745:2;6738:5;6734:14;6727:54;6853:2;6838:13;6834:22;6828:29;6822:2;6815:5;6811:14;6804:54;6937:2;6922:13;6918:22;6912:29;6906:2;6899:5;6895:14;6888:54;7023:3;7008:13;7004:23;6998:30;6991:3;6984:5;6980:15;6973:56;7111:3;7096:13;7092:23;7086:30;7080:3;7073:5;7069:15;7062:55;7199:3;7184:13;7180:23;7174:30;7168:3;7161:5;7157:15;7150:55;7279:3;7264:13;7260:23;7254:30;7248:3;7241:5;7237:15;7230:55;7359:3;7344:13;7340:23;7334:30;7328:3;7321:5;7317:15;7310:55;7457:3;7442:13;7438:23;7432:30;7426:3;7419:5;7415:15;7408:55;7514;7533:3;7538:30;7564:3;7538:21;:25;;:30;;;;:::i;:::-;7514:12;:18;;:55;;;;;:::i;:::-;7491:5;:20;;:78;;;;7602:143;7634:30;7660:3;7634:21;:25;;:30;;;;:::i;:::-;7678:57;7713:21;7678:30;7704:3;7678:21;:25;;:30;;;;:::i;:::-;:34;;:57;;;;:::i;:::-;7602:12;:18;;:143;;;;;:::i;:::-;7579:5;:20;;:166;;;;7763:5;7756:12;;5388:2394;;;;;;;:::o;1214:123:38:-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;6563:681:26:-;6667:19;6731:2;6723:4;:10;;6702:83;;;;;;;;;;;;;;;;;;;;;;;;6925:1;:8;6919:2;:14;;6795:192;;;;;;;;;;;;;;;;;;;;;;;;7088:4;7083:2;:9;7073:20;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;7073:20:26;;;;7064:29;;7103:111;7124:23;:6;:21;:23::i;:::-;7182:4;7161:18;:1;:16;:18::i;:::-;:25;7200:6;:13;7103:7;:111::i;:::-;7231:6;7224:13;;6563:681;;;;;:::o;2044:4207::-;2194:2;2185:6;:11;2181:4064;;;2483:1;2473:6;2469:2;2465:15;2460:3;2456:25;2452:33;2534:4;2530:9;2521:6;2515:13;2511:29;2583:4;2576;2570:11;2566:22;2624:1;2621;2618:8;2612:4;2605:22;2422:219;;;;;;2745:4;2735:6;:14;2731:59;;;2769:7;;2731:59;3479:4;3470:6;:13;3466:2769;;;3805:2;3797:6;3793:15;3783:25;;3853:6;3845;3841:19;3903:6;3897:4;3893:17;4210:4;4204:11;4413:198;4431:4;4423:6;4420:16;4413:198;;;4485:6;4479:13;4473:4;4466:27;4540:2;4532:6;4528:15;4518:25;;4586:2;4580:4;4576:13;4568:21;;4413:198;;;4713:4;4707;4700:18;3512:1224;;;;;;4981:2;4973:6;4969:15;4959:25;;5029:6;5021;5017:19;5079:6;5073:4;5069:17;5389:6;5383:13;5903:191;5920:4;5914;5910:15;5903:191;;;5974:4;5968:11;5962:4;5955:25;6023:2;6017:4;6013:13;6005:21;;6069:2;6063:4;6059:13;6051:21;;5903:191;;;6197:5;6191:4;6184:19;4783:1438;;;;2181:4064;2044:4207;;;;:::o;213:1780:37:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;213:1780:37;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;213:1780:37;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;213:1780:37;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6:440:-1:-;;107:3;100:4;92:6;88:17;84:27;77:35;74:2;;;125:1;122;115:12;74:2;162:6;149:20;184:64;199:48;240:6;199:48;;;184:64;;;175:73;;268:6;261:5;254:21;304:4;296:6;292:17;337:4;330:5;326:16;372:3;363:6;358:3;354:16;351:25;348:2;;;389:1;386;379:12;348:2;399:41;433:6;428:3;423;399:41;;;67:379;;;;;;;;454:345;;567:2;555:9;546:7;542:23;538:32;535:2;;;583:1;580;573:12;535:2;646:1;635:9;631:17;618:31;669:18;661:6;658:30;655:2;;;701:1;698;691:12;655:2;721:62;775:7;766:6;755:9;751:22;721:62;;;711:72;;597:192;529:270;;;;;806:110;879:31;904:5;879:31;;;874:3;867:44;861:55;;;956:521;1079:52;1125:5;1079:52;;;1177:54;1225:5;1177:54;;;1252:1;1237:228;1262:6;1259:1;1256:13;1237:228;;;1302:53;1351:3;1342:6;1336:13;1302:53;;;1372:58;1423:6;1372:58;;;1362:68;;1453:4;1448:3;1444:14;1437:21;;1284:1;1281;1277:9;1272:14;;1237:228;;;1241:14;1058:419;;;;;1518:521;1641:52;1687:5;1641:52;;;1739:54;1787:5;1739:54;;;1814:1;1799:228;1824:6;1821:1;1818:13;1799:228;;;1864:53;1913:3;1904:6;1898:13;1864:53;;;1934:58;1985:6;1934:58;;;1924:68;;2015:4;2010:3;2006:14;1999:21;;1846:1;1843;1839:9;1834:14;;1799:228;;;1803:14;1620:419;;;;;2080:521;2203:52;2249:5;2203:52;;;2301:54;2349:5;2301:54;;;2376:1;2361:228;2386:6;2383:1;2380:13;2361:228;;;2426:53;2475:3;2466:6;2460:13;2426:53;;;2496:58;2547:6;2496:58;;;2486:68;;2577:4;2572:3;2568:14;2561:21;;2408:1;2405;2401:9;2396:14;;2361:228;;;2365:14;2182:419;;;;;2609:297;;2709:38;2741:5;2709:38;;;2764:6;2759:3;2752:19;2776:63;2832:6;2825:4;2820:3;2816:14;2809:4;2802:5;2798:16;2776:63;;;2871:29;2893:6;2871:29;;;2864:4;2859:3;2855:14;2851:50;2844:57;;2689:217;;;;;;2914:296;;3069:2;3064:3;3057:15;3106:66;3101:2;3096:3;3092:12;3085:88;3201:2;3196:3;3192:12;3185:19;;3050:160;;;;3219:296;;3374:2;3369:3;3362:15;3411:66;3406:2;3401:3;3397:12;3390:88;3506:2;3501:3;3497:12;3490:19;;3355:160;;;;3523:110;3596:31;3621:5;3596:31;;;3591:3;3584:44;3578:55;;;3640:852;;3960:3;3949:9;3945:19;3937:27;;3975:107;4079:1;4068:9;4064:17;4055:6;3975:107;;;4093:109;4197:3;4186:9;4182:19;4173:6;4093:109;;;4251:9;4245:4;4241:20;4235:3;4224:9;4220:19;4213:49;4276:66;4337:4;4328:6;4276:66;;;4268:74;;4391:9;4385:4;4381:20;4375:3;4364:9;4360:19;4353:49;4416:66;4477:4;4468:6;4416:66;;;4408:74;;3931:561;;;;;;;;4499:286;;4653:3;4642:9;4638:19;4630:27;;4668:107;4772:1;4761:9;4757:17;4748:6;4668:107;;;4624:161;;;;;4792:277;;4918:2;4907:9;4903:18;4895:26;;4968:9;4962:4;4958:20;4954:1;4943:9;4939:17;4932:47;4993:66;5054:4;5045:6;4993:66;;;4985:74;;4889:180;;;;;5076:387;;5257:2;5246:9;5242:18;5234:26;;5307:9;5301:4;5297:20;5293:1;5282:9;5278:17;5271:47;5332:121;5448:4;5332:121;;;5324:129;;5228:235;;;;5470:387;;5651:2;5640:9;5636:18;5628:26;;5701:9;5695:4;5691:20;5687:1;5676:9;5672:17;5665:47;5726:121;5842:4;5726:121;;;5718:129;;5622:235;;;;5864:193;;5972:2;5961:9;5957:18;5949:26;;5986:61;6044:1;6033:9;6029:17;6020:6;5986:61;;;5943:114;;;;;6064:256;;6126:2;6120:9;6110:19;;6164:4;6156:6;6152:17;6263:6;6251:10;6248:22;6227:18;6215:10;6212:34;6209:62;6206:2;;;6284:1;6281;6274:12;6206:2;6304:10;6300:2;6293:22;6104:216;;;;;6327:258;;6470:18;6462:6;6459:30;6456:2;;;6502:1;6499;6492:12;6456:2;6546:4;6542:9;6535:4;6527:6;6523:17;6519:33;6511:41;;6575:4;6569;6565:15;6557:23;;6393:192;;;;6594:108;;6689:6;6678:17;;6670:32;;;;6713:108;;6808:6;6797:17;;6789:32;;;;6832:108;;6927:6;6916:17;;6908:32;;;;6949:96;;7037:3;7027:13;;7021:24;;;;7052:96;;7140:3;7130:13;;7124:24;;;;7155:96;;7243:3;7233:13;;7227:24;;;;7258:91;;7338:5;7332:12;7322:22;;7316:33;;;;7357:120;;7466:4;7458:6;7454:17;7443:28;;7436:41;;;;7486:120;;7595:4;7587:6;7583:17;7572:28;;7565:41;;;;7615:120;;7724:4;7716:6;7712:17;7701:28;;7694:41;;;;7743:128;;7823:42;7816:5;7812:54;7801:65;;7795:76;;;;7878:79;;7947:5;7936:16;;7930:27;;;;7965:145;8046:6;8041:3;8036;8023:30;8102:1;8093:6;8088:3;8084:16;8077:27;8016:94;;;;8119:268;8184:1;8191:101;8205:6;8202:1;8199:13;8191:101;;;8281:1;8276:3;8272:11;8266:18;8262:1;8257:3;8253:11;8246:39;8227:2;8224:1;8220:10;8215:15;;8191:101;;;8307:6;8304:1;8301:13;8298:2;;;8372:1;8363:6;8358:3;8354:16;8347:27;8298:2;8168:219;;;;;8395:97;;8483:2;8479:7;8474:2;8467:5;8463:14;8459:28;8449:38;;8443:49;;;", + "source": "pragma solidity 0.4.24;\npragma experimental \"ABIEncoderV2\";\n\nimport { ZeroExOrderDataHandler } from \"../../core/external/lib/ZeroExOrderDataHandler.sol\";\n\n\n// Mock class implementing internal OrderHandler methods\ncontract MockZeroExOrderDataHandlerLibrary {\n function parseOrderDataHeader(bytes _orderData)\n public\n pure\n returns (uint256[4])\n {\n ZeroExOrderDataHandler.ZeroExHeader memory header = ZeroExOrderDataHandler.parseOrderHeader(_orderData);\n return [\n header.signatureLength,\n header.orderLength,\n header.makerAssetDataLength,\n header.takerAssetDataLength\n ];\n }\n\n function parseFillAmount(bytes _orderData)\n public\n pure\n returns (uint256)\n {\n return ZeroExOrderDataHandler.parseFillAmount(_orderData);\n }\n\n function parseSignature(bytes _orderData)\n public\n pure\n returns (bytes)\n {\n ZeroExOrderDataHandler.ZeroExHeader memory header = ZeroExOrderDataHandler.parseOrderHeader(_orderData);\n uint256 signatureLength = header.signatureLength;\n return ZeroExOrderDataHandler.sliceSignature(_orderData, signatureLength);\n }\n\n function parseZeroExOrderData(bytes _orderData)\n public\n pure\n returns(address[4], uint256[6], bytes, bytes)\n {\n ZeroExOrderDataHandler.Order memory order = ZeroExOrderDataHandler.parseZeroExOrderData(_orderData);\n\n return (\n [\n order.makerAddress,\n order.takerAddress,\n order.feeRecipientAddress,\n order.senderAddress\n ],\n [\n order.makerAssetAmount,\n order.takerAssetAmount,\n order.makerFee,\n order.takerFee,\n order.expirationTimeSeconds,\n order.salt\n ],\n order.makerAssetData,\n order.takerAssetData\n );\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/lib/ZeroExOrderDataHandlerLib.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/lib/ZeroExOrderDataHandlerLib.sol", + "exportedSymbols": { + "MockZeroExOrderDataHandlerLibrary": [ + 4644 + ] + }, + "id": 4645, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4515, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:37" + }, + { + "id": 4516, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:35:37" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/lib/ZeroExOrderDataHandler.sol", + "file": "../../core/external/lib/ZeroExOrderDataHandler.sol", + "id": 4518, + "nodeType": "ImportDirective", + "scope": 4645, + "sourceUnit": 2331, + "src": "61:92:37", + "symbolAliases": [ + { + "foreign": 4517, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4644, + "linearizedBaseContracts": [ + 4644 + ], + "name": "MockZeroExOrderDataHandlerLibrary", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4546, + "nodeType": "Block", + "src": "371:297:37", + "statements": [ + { + "assignments": [ + 4530 + ], + "declarations": [ + { + "constant": false, + "id": 4530, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 4547, + "src": "381:49:37", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 4529, + "name": "ZeroExOrderDataHandler.ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "381:35:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4535, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4533, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4520, + "src": "473:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4531, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "433:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseOrderHeader", + "nodeType": "MemberAccess", + "referencedDeclaration": 2160, + "src": "433:39:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_ZeroExHeader_$2140_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.ZeroExHeader memory)" + } + }, + "id": 4534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "433:51:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "381:103:37" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4536, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "515:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4537, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2133, + "src": "515:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4538, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "551:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4539, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2135, + "src": "551:18:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4540, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "583:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4541, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2137, + "src": "583:27:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4542, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "624:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2139, + "src": "624:27:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4544, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "501:160:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "functionReturnParameters": 4526, + "id": 4545, + "nodeType": "Return", + "src": "494:167:37" + } + ] + }, + "documentation": null, + "id": 4547, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseOrderDataHeader", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4520, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4547, + "src": "292:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4519, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "292:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "291:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4525, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4547, + "src": "355:10:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 4522, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "355:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4524, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 4523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "363:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "355:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "354:12:37" + }, + "scope": 4644, + "src": "262:406:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4559, + "nodeType": "Block", + "src": "775:74:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4556, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4549, + "src": "831:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4554, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "792:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseFillAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2180, + "src": "792:38:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 4557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "792:50:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4553, + "id": 4558, + "nodeType": "Return", + "src": "785:57:37" + } + ] + }, + "documentation": null, + "id": 4560, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseFillAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4549, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4560, + "src": "699:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4548, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "699:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "698:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4552, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4560, + "src": "762:7:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "762:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "761:9:37" + }, + "scope": 4644, + "src": "674:175:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4587, + "nodeType": "Block", + "src": "953:261:37", + "statements": [ + { + "assignments": [ + 4570 + ], + "declarations": [ + { + "constant": false, + "id": 4570, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "963:49:37", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 4569, + "name": "ZeroExOrderDataHandler.ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "963:35:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4575, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4573, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4562, + "src": "1055:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4571, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "1015:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseOrderHeader", + "nodeType": "MemberAccess", + "referencedDeclaration": 2160, + "src": "1015:39:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_ZeroExHeader_$2140_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.ZeroExHeader memory)" + } + }, + "id": 4574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1015:51:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "963:103:37" + }, + { + "assignments": [ + 4577 + ], + "declarations": [ + { + "constant": false, + "id": 4577, + "name": "signatureLength", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "1076:23:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1076:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4580, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4578, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4570, + "src": "1102:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4579, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2133, + "src": "1102:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1076:48:37" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4583, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4562, + "src": "1179:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 4584, + "name": "signatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4577, + "src": "1191:15:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4581, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "1141:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sliceSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 2203, + "src": "1141:37:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes memory)" + } + }, + "id": 4585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1141:66:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 4566, + "id": 4586, + "nodeType": "Return", + "src": "1134:73:37" + } + ] + }, + "documentation": null, + "id": 4588, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "879:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4561, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "879:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "878:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4566, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4565, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "942:5:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4564, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "942:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "941:7:37" + }, + "scope": 4644, + "src": "855:359:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4642, + "nodeType": "Block", + "src": "1354:637:37", + "statements": [ + { + "assignments": [ + 4608 + ], + "declarations": [ + { + "constant": false, + "id": 4608, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1364:41:37", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 4607, + "name": "ZeroExOrderDataHandler.Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "1364:28:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4613, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4611, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4590, + "src": "1452:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4609, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "1408:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseZeroExOrderData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2329, + "src": "1408:43:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_Order_$2131_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.Order memory)" + } + }, + "id": 4612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1408:55:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1364:99:37" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4614, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1513:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4615, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2108, + "src": "1513:18:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4616, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1549:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4617, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2110, + "src": "1549:18:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4618, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1585:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4619, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "feeRecipientAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2112, + "src": "1585:25:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4620, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1628:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4621, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "senderAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "1628:19:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 4622, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1495:166:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4623, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1693:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4624, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2116, + "src": "1693:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4625, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1733:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2118, + "src": "1733:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4627, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1773:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4628, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 2120, + "src": "1773:14:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4629, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1805:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4630, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 2122, + "src": "1805:14:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4631, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1837:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expirationTimeSeconds", + "nodeType": "MemberAccess", + "referencedDeclaration": 2124, + "src": "1837:27:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4633, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1882:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4634, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "salt", + "nodeType": "MemberAccess", + "referencedDeclaration": 2126, + "src": "1882:10:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4635, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1675:231:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4636, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1920:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4637, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2128, + "src": "1920:20:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4638, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1954:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4639, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2130, + "src": "1954:20:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + } + ], + "id": 4640, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1481:503:37", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$6_memory_ptr_$_t_bytes_memory_$_t_bytes_memory_$", + "typeString": "tuple(address[4] memory,uint256[6] memory,bytes memory,bytes memory)" + } + }, + "functionReturnParameters": 4604, + "id": 4641, + "nodeType": "Return", + "src": "1474:510:37" + } + ] + }, + "documentation": null, + "id": 4643, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseZeroExOrderData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4590, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1250:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4589, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1250:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1249:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4595, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1312:10:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 4592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1312:7:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4594, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 4593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1320:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "1312:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4599, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1324:10:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6]" + }, + "typeName": { + "baseType": { + "id": 4596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1324:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4598, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 4597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1332:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "1324:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4601, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1336:5:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4600, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1336:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4603, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1343:5:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4602, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1343:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1311:38:37" + }, + "scope": 4644, + "src": "1220:771:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4645, + "src": "213:1780:37" + } + ], + "src": "0:1994:37" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/lib/ZeroExOrderDataHandlerLib.sol", + "exportedSymbols": { + "MockZeroExOrderDataHandlerLibrary": [ + 4644 + ] + }, + "id": 4645, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4515, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:37" + }, + { + "id": 4516, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:35:37" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/lib/ZeroExOrderDataHandler.sol", + "file": "../../core/external/lib/ZeroExOrderDataHandler.sol", + "id": 4518, + "nodeType": "ImportDirective", + "scope": 4645, + "sourceUnit": 2331, + "src": "61:92:37", + "symbolAliases": [ + { + "foreign": 4517, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4644, + "linearizedBaseContracts": [ + 4644 + ], + "name": "MockZeroExOrderDataHandlerLibrary", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4546, + "nodeType": "Block", + "src": "371:297:37", + "statements": [ + { + "assignments": [ + 4530 + ], + "declarations": [ + { + "constant": false, + "id": 4530, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 4547, + "src": "381:49:37", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 4529, + "name": "ZeroExOrderDataHandler.ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "381:35:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4535, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4533, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4520, + "src": "473:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4531, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "433:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseOrderHeader", + "nodeType": "MemberAccess", + "referencedDeclaration": 2160, + "src": "433:39:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_ZeroExHeader_$2140_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.ZeroExHeader memory)" + } + }, + "id": 4534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "433:51:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "381:103:37" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4536, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "515:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4537, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2133, + "src": "515:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4538, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "551:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4539, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2135, + "src": "551:18:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4540, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "583:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4541, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2137, + "src": "583:27:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4542, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4530, + "src": "624:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2139, + "src": "624:27:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4544, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "501:160:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "functionReturnParameters": 4526, + "id": 4545, + "nodeType": "Return", + "src": "494:167:37" + } + ] + }, + "documentation": null, + "id": 4547, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseOrderDataHeader", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4520, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4547, + "src": "292:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4519, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "292:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "291:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4525, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4547, + "src": "355:10:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 4522, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "355:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4524, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 4523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "363:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "355:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "354:12:37" + }, + "scope": 4644, + "src": "262:406:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4559, + "nodeType": "Block", + "src": "775:74:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4556, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4549, + "src": "831:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4554, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "792:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseFillAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2180, + "src": "792:38:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 4557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "792:50:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4553, + "id": 4558, + "nodeType": "Return", + "src": "785:57:37" + } + ] + }, + "documentation": null, + "id": 4560, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseFillAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4549, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4560, + "src": "699:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4548, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "699:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "698:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4552, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4560, + "src": "762:7:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "762:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "761:9:37" + }, + "scope": 4644, + "src": "674:175:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4587, + "nodeType": "Block", + "src": "953:261:37", + "statements": [ + { + "assignments": [ + 4570 + ], + "declarations": [ + { + "constant": false, + "id": 4570, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "963:49:37", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 4569, + "name": "ZeroExOrderDataHandler.ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "963:35:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4575, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4573, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4562, + "src": "1055:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4571, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "1015:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseOrderHeader", + "nodeType": "MemberAccess", + "referencedDeclaration": 2160, + "src": "1015:39:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_ZeroExHeader_$2140_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.ZeroExHeader memory)" + } + }, + "id": 4574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1015:51:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "963:103:37" + }, + { + "assignments": [ + 4577 + ], + "declarations": [ + { + "constant": false, + "id": 4577, + "name": "signatureLength", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "1076:23:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1076:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4580, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4578, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4570, + "src": "1102:6:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 4579, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2133, + "src": "1102:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1076:48:37" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4583, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4562, + "src": "1179:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 4584, + "name": "signatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4577, + "src": "1191:15:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4581, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "1141:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sliceSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 2203, + "src": "1141:37:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes memory)" + } + }, + "id": 4585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1141:66:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 4566, + "id": 4586, + "nodeType": "Return", + "src": "1134:73:37" + } + ] + }, + "documentation": null, + "id": 4588, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "879:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4561, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "879:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "878:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4566, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4565, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4588, + "src": "942:5:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4564, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "942:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "941:7:37" + }, + "scope": 4644, + "src": "855:359:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4642, + "nodeType": "Block", + "src": "1354:637:37", + "statements": [ + { + "assignments": [ + 4608 + ], + "declarations": [ + { + "constant": false, + "id": 4608, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1364:41:37", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 4607, + "name": "ZeroExOrderDataHandler.Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "1364:28:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4613, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4611, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4590, + "src": "1452:10:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 4609, + "name": "ZeroExOrderDataHandler", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "1408:22:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ZeroExOrderDataHandler_$2330_$", + "typeString": "type(library ZeroExOrderDataHandler)" + } + }, + "id": 4610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "parseZeroExOrderData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2329, + "src": "1408:43:37", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_Order_$2131_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.Order memory)" + } + }, + "id": 4612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1408:55:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1364:99:37" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4614, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1513:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4615, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2108, + "src": "1513:18:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4616, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1549:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4617, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2110, + "src": "1549:18:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4618, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1585:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4619, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "feeRecipientAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2112, + "src": "1585:25:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4620, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1628:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4621, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "senderAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2114, + "src": "1628:19:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 4622, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1495:166:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4623, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1693:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4624, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2116, + "src": "1693:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4625, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1733:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2118, + "src": "1733:22:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4627, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1773:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4628, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 2120, + "src": "1773:14:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4629, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1805:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4630, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 2122, + "src": "1805:14:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4631, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1837:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "expirationTimeSeconds", + "nodeType": "MemberAccess", + "referencedDeclaration": 2124, + "src": "1837:27:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4633, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1882:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4634, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "salt", + "nodeType": "MemberAccess", + "referencedDeclaration": 2126, + "src": "1882:10:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4635, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1675:231:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4636, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1920:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4637, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2128, + "src": "1920:20:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4638, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4608, + "src": "1954:5:37", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 4639, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2130, + "src": "1954:20:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + } + ], + "id": 4640, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1481:503:37", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_address_$4_memory_ptr_$_t_array$_t_uint256_$6_memory_ptr_$_t_bytes_memory_$_t_bytes_memory_$", + "typeString": "tuple(address[4] memory,uint256[6] memory,bytes memory,bytes memory)" + } + }, + "functionReturnParameters": 4604, + "id": 4641, + "nodeType": "Return", + "src": "1474:510:37" + } + ] + }, + "documentation": null, + "id": 4643, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseZeroExOrderData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4590, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1250:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4589, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1250:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1249:18:37" + }, + "payable": false, + "returnParameters": { + "id": 4604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4595, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1312:10:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 4592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1312:7:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4594, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 4593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1320:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "1312:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4599, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1324:10:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6]" + }, + "typeName": { + "baseType": { + "id": 4596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1324:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4598, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 4597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1332:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "1324:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4601, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1336:5:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4600, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1336:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4603, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4643, + "src": "1343:5:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4602, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1343:5:37", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1311:38:37" + }, + "scope": 4644, + "src": "1220:771:37", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4645, + "src": "213:1780:37" + } + ], + "src": "0:1994:37" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.916Z" +} \ No newline at end of file diff --git a/artifacts/ts/NoDecimalTokenMock.ts b/artifacts/ts/NoDecimalTokenMock.ts new file mode 100644 index 000000000..5366ada2e --- /dev/null +++ b/artifacts/ts/NoDecimalTokenMock.ts @@ -0,0 +1,1309 @@ +export const NoDecimalTokenMock = +{ + "contractName": "NoDecimalTokenMock", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_addedValue", + "type": "uint256" + } + ], + "name": "increaseApproval", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "initialAccount", + "type": "address" + }, + { + "name": "initialBalance", + "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040516200143e3803806200143e83398101806040528101908080519060200190929190805190602001909291908051820192919060200180518201929190505050826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550826005819055508160039080519060200190620000b6929190620000da565b508060049080519060200190620000cf929190620000da565b505050505062000189565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200011d57805160ff19168380011785556200014e565b828001600101855582156200014e579182015b828111156200014d57825182559160200191906001019062000130565b5b5090506200015d919062000161565b5090565b6200018691905b808211156200018257600081600090555060010162000168565b5090565b90565b6112a580620001996000396000f3006080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100a9578063095ea7b31461013957806318160ddd1461019e57806323b872dd146101c9578063661884631461024e57806370a08231146102b357806395d89b411461030a578063a9059cbb1461039a578063d73dd623146103ff578063dd62ed3e14610464575b600080fd5b3480156100b557600080fd5b506100be6104db565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100fe5780820151818401526020810190506100e3565b50505050905090810190601f16801561012b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014557600080fd5b50610184600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610579565b604051808215151515815260200191505060405180910390f35b3480156101aa57600080fd5b506101b361066b565b6040518082815260200191505060405180910390f35b3480156101d557600080fd5b50610234600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610671565b604051808215151515815260200191505060405180910390f35b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a2b565b604051808215151515815260200191505060405180910390f35b3480156102bf57600080fd5b506102f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cbc565b6040518082815260200191505060405180910390f35b34801561031657600080fd5b5061031f610d04565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035f578082015181840152602081019050610344565b50505050905090810190601f16801561038c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a657600080fd5b506103e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610da2565b604051808215151515815260200191505060405180910390f35b34801561040b57600080fd5b5061044a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fc1565b604051808215151515815260200191505060405180910390f35b34801561047057600080fd5b506104c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111bd565b6040518082815260200191505060405180910390f35b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105715780601f1061054657610100808354040283529160200191610571565b820191906000526020600020905b81548152906001019060200180831161055457829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60055481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106ae57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156106fb57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561078657600080fd5b6107d7826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124490919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061086a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b3c576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bd0565b610b4f838261124490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d9a5780601f10610d6f57610100808354040283529160200191610d9a565b820191906000526020600020905b815481529060010190602001808311610d7d57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610ddf57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e2c57600080fd5b610e7d826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f10826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061105282600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125d90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561125257fe5b818303905092915050565b6000818301905082811015151561127057fe5b809050929150505600a165627a7a7230582091740c772d45b5805fa321606374bfab60c58360b7a6cc39d2f0c24ab1f529f20029", + "deployedBytecode": "0x6080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100a9578063095ea7b31461013957806318160ddd1461019e57806323b872dd146101c9578063661884631461024e57806370a08231146102b357806395d89b411461030a578063a9059cbb1461039a578063d73dd623146103ff578063dd62ed3e14610464575b600080fd5b3480156100b557600080fd5b506100be6104db565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100fe5780820151818401526020810190506100e3565b50505050905090810190601f16801561012b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014557600080fd5b50610184600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610579565b604051808215151515815260200191505060405180910390f35b3480156101aa57600080fd5b506101b361066b565b6040518082815260200191505060405180910390f35b3480156101d557600080fd5b50610234600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610671565b604051808215151515815260200191505060405180910390f35b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a2b565b604051808215151515815260200191505060405180910390f35b3480156102bf57600080fd5b506102f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cbc565b6040518082815260200191505060405180910390f35b34801561031657600080fd5b5061031f610d04565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035f578082015181840152602081019050610344565b50505050905090810190601f16801561038c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a657600080fd5b506103e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610da2565b604051808215151515815260200191505060405180910390f35b34801561040b57600080fd5b5061044a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fc1565b604051808215151515815260200191505060405180910390f35b34801561047057600080fd5b506104c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111bd565b6040518082815260200191505060405180910390f35b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105715780601f1061054657610100808354040283529160200191610571565b820191906000526020600020905b81548152906001019060200180831161055457829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60055481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106ae57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156106fb57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561078657600080fd5b6107d7826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124490919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061086a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b3c576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bd0565b610b4f838261124490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d9a5780601f10610d6f57610100808354040283529160200191610d9a565b820191906000526020600020905b815481529060010190602001808311610d7d57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610ddf57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e2c57600080fd5b610e7d826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461124490919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f10826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061105282600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125d90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561125257fe5b818303905092915050565b6000818301905082811015151561127057fe5b809050929150505600a165627a7a7230582091740c772d45b5805fa321606374bfab60c58360b7a6cc39d2f0c24ab1f529f20029", + "sourceMap": "96:375:33:-;;;222:246;8:9:-1;5:2;;;30:1;27;20:12;5:2;222:246:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;375:14;348:8;:24;357:14;348:24;;;;;;;;;;;;;;;:41;;;;409:14;395:11;:28;;;;436:5;429:4;:12;;;;;;;;;;;;:::i;:::-;;456:7;447:6;:16;;;;;;;;;;;;:::i;:::-;;222:246;;;;96:375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "96:375:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;145:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;145:18:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;145:18:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;191:26:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;191:26:33;;;;;;;;;;;;;;;;;;;;;;;736:470:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:425;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;167:20:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;167:20:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;167:20:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;145:18:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:45:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;191:26:33:-;;;;:::o;736:470:45:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;3701:425::-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:40:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;167:20:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;608:321:40:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:45:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "source": "pragma solidity 0.4.24;\n\n\nimport \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\n\n\ncontract NoDecimalTokenMock is StandardToken {\n string public name;\n string public symbol;\n uint256 public totalSupply;\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n }\n\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/NoDecimalTokenMock.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/NoDecimalTokenMock.sol", + "exportedSymbols": { + "NoDecimalTokenMock": [ + 4183 + ] + }, + "id": 4184, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4143, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:33" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "id": 4144, + "nodeType": "ImportDirective", + "scope": 4184, + "sourceUnit": 5383, + "src": "26:67:33", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 4145, + "name": "StandardToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5382, + "src": "127:13:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardToken_$5382", + "typeString": "contract StandardToken" + } + }, + "id": 4146, + "nodeType": "InheritanceSpecifier", + "src": "127:13:33" + } + ], + "contractDependencies": [ + 4920, + 4997, + 5029, + 5382 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4183, + "linearizedBaseContracts": [ + 4183, + 5382, + 4920, + 4997, + 5029 + ], + "name": "NoDecimalTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 4148, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 4183, + "src": "145:18:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 4147, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "145:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 4150, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 4183, + "src": "167:20:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 4149, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "167:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 4152, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 4183, + "src": "191:26:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "191:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 4181, + "nodeType": "Block", + "src": "342:126:33", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4163, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4837, + "src": "348:8:33", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4165, + "indexExpression": { + "argumentTypes": null, + "id": 4164, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4154, + "src": "357:14:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "348:24:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4166, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4156, + "src": "375:14:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "348:41:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4168, + "nodeType": "ExpressionStatement", + "src": "348:41:33" + }, + { + "expression": { + "argumentTypes": null, + "id": 4171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4169, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4152 + ], + "referencedDeclaration": 4152, + "src": "395:11:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4170, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4156, + "src": "409:14:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "395:28:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4172, + "nodeType": "ExpressionStatement", + "src": "395:28:33" + }, + { + "expression": { + "argumentTypes": null, + "id": 4175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4173, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "429:4:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4174, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4158, + "src": "436:5:33", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "429:12:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4176, + "nodeType": "ExpressionStatement", + "src": "429:12:33" + }, + { + "expression": { + "argumentTypes": null, + "id": 4179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4177, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4150, + "src": "447:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4178, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4160, + "src": "456:7:33", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "447:16:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4180, + "nodeType": "ExpressionStatement", + "src": "447:16:33" + } + ] + }, + "documentation": null, + "id": 4182, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4154, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "239:22:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4153, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "239:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4156, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "267:22:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4155, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "267:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4158, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "295:12:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4157, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "295:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4160, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "313:14:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4159, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "313:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "233:95:33" + }, + "payable": false, + "returnParameters": { + "id": 4162, + "nodeType": "ParameterList", + "parameters": [], + "src": "342:0:33" + }, + "scope": 4183, + "src": "222:246:33", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4184, + "src": "96:375:33" + } + ], + "src": "0:472:33" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/NoDecimalTokenMock.sol", + "exportedSymbols": { + "NoDecimalTokenMock": [ + 4183 + ] + }, + "id": 4184, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4143, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:33" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "id": 4144, + "nodeType": "ImportDirective", + "scope": 4184, + "sourceUnit": 5383, + "src": "26:67:33", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 4145, + "name": "StandardToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5382, + "src": "127:13:33", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardToken_$5382", + "typeString": "contract StandardToken" + } + }, + "id": 4146, + "nodeType": "InheritanceSpecifier", + "src": "127:13:33" + } + ], + "contractDependencies": [ + 4920, + 4997, + 5029, + 5382 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4183, + "linearizedBaseContracts": [ + 4183, + 5382, + 4920, + 4997, + 5029 + ], + "name": "NoDecimalTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 4148, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 4183, + "src": "145:18:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 4147, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "145:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 4150, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 4183, + "src": "167:20:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 4149, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "167:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 4152, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 4183, + "src": "191:26:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "191:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 4181, + "nodeType": "Block", + "src": "342:126:33", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4163, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4837, + "src": "348:8:33", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4165, + "indexExpression": { + "argumentTypes": null, + "id": 4164, + "name": "initialAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4154, + "src": "357:14:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "348:24:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4166, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4156, + "src": "375:14:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "348:41:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4168, + "nodeType": "ExpressionStatement", + "src": "348:41:33" + }, + { + "expression": { + "argumentTypes": null, + "id": 4171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4169, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4152 + ], + "referencedDeclaration": 4152, + "src": "395:11:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4170, + "name": "initialBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4156, + "src": "409:14:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "395:28:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4172, + "nodeType": "ExpressionStatement", + "src": "395:28:33" + }, + { + "expression": { + "argumentTypes": null, + "id": 4175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4173, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "429:4:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4174, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4158, + "src": "436:5:33", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "429:12:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4176, + "nodeType": "ExpressionStatement", + "src": "429:12:33" + }, + { + "expression": { + "argumentTypes": null, + "id": 4179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4177, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4150, + "src": "447:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4178, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4160, + "src": "456:7:33", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "447:16:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 4180, + "nodeType": "ExpressionStatement", + "src": "447:16:33" + } + ] + }, + "documentation": null, + "id": 4182, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4154, + "name": "initialAccount", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "239:22:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4153, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "239:7:33", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4156, + "name": "initialBalance", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "267:22:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4155, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "267:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4158, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "295:12:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4157, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "295:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4160, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 4182, + "src": "313:14:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4159, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "313:6:33", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "233:95:33" + }, + "payable": false, + "returnParameters": { + "id": 4162, + "nodeType": "ParameterList", + "parameters": [], + "src": "342:0:33" + }, + "scope": 4183, + "src": "222:246:33", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 4184, + "src": "96:375:33" + } + ], + "src": "0:472:33" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.914Z" +} \ No newline at end of file diff --git a/artifacts/ts/OrderLibrary.ts b/artifacts/ts/OrderLibrary.ts new file mode 100644 index 000000000..eafce0dd7 --- /dev/null +++ b/artifacts/ts/OrderLibrary.ts @@ -0,0 +1,3182 @@ +export const OrderLibrary = +{ + "contractName": "OrderLibrary", + "abi": [], + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820dc0a2a6fe1c1ba48cbc5ffd528dfd23ab6bd911a01833dc78ba9dbfadba752f90029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820dc0a2a6fe1c1ba48cbc5ffd528dfd23ab6bd911a01833dc78ba9dbfadba752f90029", + "sourceMap": "772:2636:25:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "772:2636:25:-;;;;;;;;", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\n/**\n * @title OrderLibrary\n * @author Set Protocol\n *\n * The Order Library contains functions for checking validation and hashing of Orders.\n *\n */\n\nlibrary OrderLibrary {\n\n /* ============ Structs ============ */\n\n struct IssuanceOrder {\n address setAddress; // _addresses[0]\n uint256 quantity; // _values[0]\n address makerAddress; // _addresses[1]\n address makerToken; // _addresses[2]\n uint256 makerTokenAmount; // _values[1]\n uint256 expiration; // _values[2]\n address relayerToken; // _addresses[3]\n uint256 relayerTokenAmount; // _values[3]\n uint256 salt; // _values[4]\n bytes32 orderHash;\n }\n\n /* ============ Internal Functions ============ */\n\n /**\n * Create hash of order parameters\n *\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n * @param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]\n */\n function generateOrderHash(\n address[4] _addresses,\n uint[5] _values\n )\n internal\n pure\n returns(bytes32)\n {\n // Hash the order parameters\n return keccak256(\n abi.encodePacked(\n _addresses[0], // setAddress\n _addresses[1], // makerAddress\n _addresses[2], // makerToken\n _addresses[3], // relayerToken\n _values[0], // quantity\n _values[1], // makerTokenAmount\n _values[2], // expiration\n _values[3], // relayerTokenAmount\n _values[4] // salt\n )\n );\n }\n\n /**\n * Validate order signature\n *\n * @param _orderHash Hash of issuance order\n * @param _signerAddress Address of Issuance Order signer\n * @param _v v element of ECDSA signature\n * @param _r r element of ECDSA signature\n * @param _s s element of ECDSA signature\n */\n function validateSignature(\n bytes32 _orderHash,\n address _signerAddress,\n uint8 _v,\n bytes32 _r,\n bytes32 _s\n )\n internal\n pure\n returns(bool)\n {\n // Public address returned by ecrecover function\n address recAddress;\n\n // Ethereum msg prefix\n bytes memory msgPrefix = \"\\x19Ethereum Signed Message:\\n32\";\n\n // Find what address signed the order\n recAddress = ecrecover(\n keccak256(abi.encodePacked(msgPrefix, _orderHash)),\n _v,\n _r,\n _s\n );\n\n return recAddress == _signerAddress;\n }\n\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/OrderLibrary.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/OrderLibrary.sol", + "exportedSymbols": { + "OrderLibrary": [ + 2981 + ] + }, + "id": 2982, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2870, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title OrderLibrary\n@author Set Protocol\n * The Order Library contains functions for checking validation and hashing of Orders.\n ", + "fullyImplemented": true, + "id": 2981, + "linearizedBaseContracts": [ + 2981 + ], + "name": "OrderLibrary", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "OrderLibrary.IssuanceOrder", + "id": 2891, + "members": [ + { + "constant": false, + "id": 2872, + "name": "setAddress", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "876:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2871, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "876:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2874, + "name": "quantity", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "933:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "933:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2876, + "name": "makerAddress", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "987:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2875, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "987:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2878, + "name": "makerToken", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1044:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2877, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1044:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2880, + "name": "makerTokenAmount", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1101:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1101:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2882, + "name": "expiration", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1155:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2881, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1155:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2884, + "name": "relayerToken", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1209:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2883, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1209:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2886, + "name": "relayerTokenAmount", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1266:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2885, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1266:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2888, + "name": "salt", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1320:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2887, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1320:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2890, + "name": "orderHash", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1374:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1374:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "IssuanceOrder", + "nodeType": "StructDefinition", + "scope": 2981, + "src": "845:553:25", + "visibility": "public" + }, + { + "body": { + "id": 2937, + "nodeType": "Block", + "src": "1854:540:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2907, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "1965:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2909, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1976:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1965:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2910, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "2010:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2912, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2021:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2010:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2913, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "2057:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2915, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2068:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2057:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2916, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "2102:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2918, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 2917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2113:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2102:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2919, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2149:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2921, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2157:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2149:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2922, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2192:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2924, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2200:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2192:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2925, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2243:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2927, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2251:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2243:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2928, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2288:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2930, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2296:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2288:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2931, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2341:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2933, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 2932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2349:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2341:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2905, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5384, + "src": "1931:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1931:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1931:446:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2904, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "1908:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1908:479:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2903, + "id": 2936, + "nodeType": "Return", + "src": "1901:486:25" + } + ] + }, + "documentation": "Create hash of order parameters\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n@param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]", + "id": 2938, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "generateOrderHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2895, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 2938, + "src": "1742:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 2892, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1742:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2894, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 2893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1750:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "1742:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2899, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 2938, + "src": "1773:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2896, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1773:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2898, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1778:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "1773:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1732:62:25" + }, + "payable": false, + "returnParameters": { + "id": 2903, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2902, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2938, + "src": "1841:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2901, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1841:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1840:9:25" + }, + "scope": 2981, + "src": "1706:688:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2979, + "nodeType": "Block", + "src": "2965:440:25", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2954, + "name": "recAddress", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "3032:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3032:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2955, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3032:18:25" + }, + { + "assignments": [ + 2957 + ], + "declarations": [ + { + "constant": false, + "id": 2957, + "name": "msgPrefix", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "3092:22:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2956, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3092:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2959, + "initialValue": { + "argumentTypes": null, + "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", + "id": 2958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3117:34:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", + "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" + }, + "value": "\u0019Ethereum Signed Message:\n32" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3092:59:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 2973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2960, + "name": "recAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "3208:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2965, + "name": "msgPrefix", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2957, + "src": "3271:9:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 2966, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2940, + "src": "3282:10:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2963, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5384, + "src": "3254:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3254:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3254:39:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2962, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "3244:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3244:50:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2969, + "name": "_v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2944, + "src": "3308:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 2970, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2946, + "src": "3324:2:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2971, + "name": "_s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2948, + "src": "3340:2:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2961, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5389, + "src": "3221:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 2972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3221:131:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3208:144:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2974, + "nodeType": "ExpressionStatement", + "src": "3208:144:25" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2975, + "name": "recAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "3370:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2976, + "name": "_signerAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "3384:14:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3370:28:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2952, + "id": 2978, + "nodeType": "Return", + "src": "3363:35:25" + } + ] + }, + "documentation": "Validate order signature\n * @param _orderHash Hash of issuance order\n@param _signerAddress Address of Issuance Order signer\n@param _v v element of ECDSA signature\n@param _r r element of ECDSA signature\n@param _s s element of ECDSA signature", + "id": 2980, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validateSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2949, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2940, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2794:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2939, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2794:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2942, + "name": "_signerAddress", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2822:22:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2822:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2944, + "name": "_v", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2854:8:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2943, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2854:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2946, + "name": "_r", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2872:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2945, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2872:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2948, + "name": "_s", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2892:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2947, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2892:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2784:124:25" + }, + "payable": false, + "returnParameters": { + "id": 2952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2955:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2950, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2955:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2954:6:25" + }, + "scope": 2981, + "src": "2758:647:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2982, + "src": "772:2636:25" + } + ], + "src": "597:2812:25" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/OrderLibrary.sol", + "exportedSymbols": { + "OrderLibrary": [ + 2981 + ] + }, + "id": 2982, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2870, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:25" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title OrderLibrary\n@author Set Protocol\n * The Order Library contains functions for checking validation and hashing of Orders.\n ", + "fullyImplemented": true, + "id": 2981, + "linearizedBaseContracts": [ + 2981 + ], + "name": "OrderLibrary", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "OrderLibrary.IssuanceOrder", + "id": 2891, + "members": [ + { + "constant": false, + "id": 2872, + "name": "setAddress", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "876:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2871, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "876:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2874, + "name": "quantity", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "933:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "933:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2876, + "name": "makerAddress", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "987:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2875, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "987:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2878, + "name": "makerToken", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1044:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2877, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1044:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2880, + "name": "makerTokenAmount", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1101:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1101:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2882, + "name": "expiration", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1155:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2881, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1155:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2884, + "name": "relayerToken", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1209:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2883, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1209:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2886, + "name": "relayerTokenAmount", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1266:26:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2885, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1266:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2888, + "name": "salt", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1320:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2887, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1320:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2890, + "name": "orderHash", + "nodeType": "VariableDeclaration", + "scope": 2891, + "src": "1374:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1374:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "IssuanceOrder", + "nodeType": "StructDefinition", + "scope": 2981, + "src": "845:553:25", + "visibility": "public" + }, + { + "body": { + "id": 2937, + "nodeType": "Block", + "src": "1854:540:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2907, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "1965:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2909, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1976:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1965:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2910, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "2010:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2912, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2021:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2010:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2913, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "2057:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2915, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2068:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2057:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2916, + "name": "_addresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2895, + "src": "2102:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4] memory" + } + }, + "id": 2918, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 2917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2113:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2102:13:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2919, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2149:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2921, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2157:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2149:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2922, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2192:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2924, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2200:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2192:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2925, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2243:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2927, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2251:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2243:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2928, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2288:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2930, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2296:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2288:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2931, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "2341:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2933, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 2932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2349:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2341:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2905, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5384, + "src": "1931:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1931:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1931:446:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2904, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "1908:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1908:479:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2903, + "id": 2936, + "nodeType": "Return", + "src": "1901:486:25" + } + ] + }, + "documentation": "Create hash of order parameters\n * @param _addresses [setAddress, makerAddress, makerToken, relayerToken]\n@param _values [quantity, makerTokenAmount, expiration, relayerTokenAmount, salt]", + "id": 2938, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "generateOrderHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2895, + "name": "_addresses", + "nodeType": "VariableDeclaration", + "scope": 2938, + "src": "1742:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_memory_ptr", + "typeString": "address[4]" + }, + "typeName": { + "baseType": { + "id": 2892, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1742:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2894, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 2893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1750:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "1742:10:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$4_storage_ptr", + "typeString": "address[4]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2899, + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 2938, + "src": "1773:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2896, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1773:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2898, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1778:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "1773:7:25", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1732:62:25" + }, + "payable": false, + "returnParameters": { + "id": 2903, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2902, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2938, + "src": "1841:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2901, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1841:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1840:9:25" + }, + "scope": 2981, + "src": "1706:688:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2979, + "nodeType": "Block", + "src": "2965:440:25", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2954, + "name": "recAddress", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "3032:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3032:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2955, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3032:18:25" + }, + { + "assignments": [ + 2957 + ], + "declarations": [ + { + "constant": false, + "id": 2957, + "name": "msgPrefix", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "3092:22:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2956, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3092:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2959, + "initialValue": { + "argumentTypes": null, + "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", + "id": 2958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3117:34:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", + "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" + }, + "value": "\u0019Ethereum Signed Message:\n32" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3092:59:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 2973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2960, + "name": "recAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "3208:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2965, + "name": "msgPrefix", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2957, + "src": "3271:9:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 2966, + "name": "_orderHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2940, + "src": "3282:10:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2963, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5384, + "src": "3254:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3254:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3254:39:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2962, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5391, + "src": "3244:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3244:50:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2969, + "name": "_v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2944, + "src": "3308:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 2970, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2946, + "src": "3324:2:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2971, + "name": "_s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2948, + "src": "3340:2:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2961, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5389, + "src": "3221:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 2972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3221:131:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3208:144:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2974, + "nodeType": "ExpressionStatement", + "src": "3208:144:25" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2975, + "name": "recAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "3370:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2976, + "name": "_signerAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2942, + "src": "3384:14:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3370:28:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2952, + "id": 2978, + "nodeType": "Return", + "src": "3363:35:25" + } + ] + }, + "documentation": "Validate order signature\n * @param _orderHash Hash of issuance order\n@param _signerAddress Address of Issuance Order signer\n@param _v v element of ECDSA signature\n@param _r r element of ECDSA signature\n@param _s s element of ECDSA signature", + "id": 2980, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "validateSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2949, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2940, + "name": "_orderHash", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2794:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2939, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2794:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2942, + "name": "_signerAddress", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2822:22:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2822:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2944, + "name": "_v", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2854:8:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2943, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2854:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2946, + "name": "_r", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2872:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2945, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2872:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2948, + "name": "_s", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2892:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2947, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2892:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2784:124:25" + }, + "payable": false, + "returnParameters": { + "id": 2952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2980, + "src": "2955:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2950, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2955:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2954:6:25" + }, + "scope": 2981, + "src": "2758:647:25", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2982, + "src": "772:2636:25" + } + ], + "src": "597:2812:25" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.906Z" +} \ No newline at end of file diff --git a/artifacts/ts/Ownable.ts b/artifacts/ts/Ownable.ts index 3e719e71f..b0e9ec242 100644 --- a/artifacts/ts/Ownable.ts +++ b/artifacts/ts/Ownable.ts @@ -75,24 +75,24 @@ export const Ownable = "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103c1806100606000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063715018a61461005c5780638da5cb5b14610073578063f2fde38b146100ca575b600080fd5b34801561006857600080fd5b5061007161010d565b005b34801561007f57600080fd5b5061008861020f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100d657600080fd5b5061010b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610234565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561016857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561028f57600080fd5b6102988161029b565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156102d757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058200bde9433d87d533aaca2eb3f6d8b43ae341e97a603406fdaec7ae390843b27d50029", - "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063715018a61461005c5780638da5cb5b14610073578063f2fde38b146100ca575b600080fd5b34801561006857600080fd5b5061007161010d565b005b34801561007f57600080fd5b5061008861020f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100d657600080fd5b5061010b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610234565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561016857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561028f57600080fd5b6102988161029b565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156102d757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058200bde9433d87d533aaca2eb3f6d8b43ae341e97a603406fdaec7ae390843b27d50029", - "sourceMap": "217:1294:11:-;;;540:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;540:50:11;575:10;567:5;;:18;;;;;;;;;;;;;;;;;;217:1294;;;;;;", - "deployedSourceMap": "217:1294:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:11;;;;;;238:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;238:20::-;;;;;;;;;;;;;:::o;1100:103::-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1338:171::-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", + "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103c1806100606000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063715018a61461005c5780638da5cb5b14610073578063f2fde38b146100ca575b600080fd5b34801561006857600080fd5b5061007161010d565b005b34801561007f57600080fd5b5061008861020f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100d657600080fd5b5061010b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610234565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561016857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561028f57600080fd5b6102988161029b565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156102d757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582000f70b9c0f690fcc97f2f556c70a4ca29cc04d0e8c5f25c1b038c2c26f904fac0029", + "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063715018a61461005c5780638da5cb5b14610073578063f2fde38b146100ca575b600080fd5b34801561006857600080fd5b5061007161010d565b005b34801561007f57600080fd5b5061008861020f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100d657600080fd5b5061010b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610234565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561016857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561028f57600080fd5b6102988161029b565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156102d757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582000f70b9c0f690fcc97f2f556c70a4ca29cc04d0e8c5f25c1b038c2c26f904fac0029", + "sourceMap": "217:1294:5:-;;;540:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;540:50:5;575:10;567:5;;:18;;;;;;;;;;;;;;;;;;217:1294;;;;;;", + "deployedSourceMap": "217:1294:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:5;;;;;;238:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:5;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;238:20::-;;;;;;;;;;;;;:::o;1100:103::-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1338:171::-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o", "source": "pragma solidity ^0.4.23;\n\n\n/**\n * @title Ownable\n * @dev The Ownable contract has an owner address, and provides basic authorization control\n * functions, this simplifies the implementation of \"user permissions\".\n */\ncontract Ownable {\n address public owner;\n\n\n event OwnershipRenounced(address indexed previousOwner);\n event OwnershipTransferred(\n address indexed previousOwner,\n address indexed newOwner\n );\n\n\n /**\n * @dev The Ownable constructor sets the original `owner` of the contract to the sender\n * account.\n */\n constructor() public {\n owner = msg.sender;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(msg.sender == owner);\n _;\n }\n\n /**\n * @dev Allows the current owner to relinquish control of the contract.\n */\n function renounceOwnership() public onlyOwner {\n emit OwnershipRenounced(owner);\n owner = address(0);\n }\n\n /**\n * @dev Allows the current owner to transfer control of the contract to a newOwner.\n * @param _newOwner The address to transfer ownership to.\n */\n function transferOwnership(address _newOwner) public onlyOwner {\n _transferOwnership(_newOwner);\n }\n\n /**\n * @dev Transfers control of the contract to a newOwner.\n * @param _newOwner The address to transfer ownership to.\n */\n function _transferOwnership(address _newOwner) internal {\n require(_newOwner != address(0));\n emit OwnershipTransferred(owner, _newOwner);\n owner = _newOwner;\n }\n}\n", "sourcePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "ast": { "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "exportedSymbols": { "Ownable": [ - 2241 + 969 ] }, - "id": 2242, + "id": 970, "nodeType": "SourceUnit", "nodes": [ { - "id": 2157, + "id": 885, "literals": [ "solidity", "^", @@ -100,7 +100,7 @@ export const Ownable = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:11" + "src": "0:24:5" }, { "baseContracts": [], @@ -108,20 +108,20 @@ export const Ownable = "contractKind": "contract", "documentation": "@title Ownable\n@dev The Ownable contract has an owner address, and provides basic authorization control\nfunctions, this simplifies the implementation of \"user permissions\".", "fullyImplemented": true, - "id": 2241, + "id": 969, "linearizedBaseContracts": [ - 2241 + 969 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2159, + "id": 887, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "238:20:11", + "scope": 969, + "src": "238:20:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -129,10 +129,10 @@ export const Ownable = "typeString": "address" }, "typeName": { - "id": 2158, + "id": 886, "name": "address", "nodeType": "ElementaryTypeName", - "src": "238:7:11", + "src": "238:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -144,21 +144,21 @@ export const Ownable = { "anonymous": false, "documentation": null, - "id": 2163, + "id": 891, "name": "OwnershipRenounced", "nodeType": "EventDefinition", "parameters": { - "id": 2162, + "id": 890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2161, + "id": 889, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 2163, - "src": "289:29:11", + "scope": 891, + "src": "289:29:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -166,10 +166,10 @@ export const Ownable = "typeString": "address" }, "typeName": { - "id": 2160, + "id": 888, "name": "address", "nodeType": "ElementaryTypeName", - "src": "289:7:11", + "src": "289:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -179,28 +179,28 @@ export const Ownable = "visibility": "internal" } ], - "src": "288:31:11" + "src": "288:31:5" }, - "src": "264:56:11" + "src": "264:56:5" }, { "anonymous": false, "documentation": null, - "id": 2169, + "id": 897, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 2168, + "id": 896, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2165, + "id": 893, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 2169, - "src": "355:29:11", + "scope": 897, + "src": "355:29:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -208,10 +208,10 @@ export const Ownable = "typeString": "address" }, "typeName": { - "id": 2164, + "id": 892, "name": "address", "nodeType": "ElementaryTypeName", - "src": "355:7:11", + "src": "355:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -222,12 +222,12 @@ export const Ownable = }, { "constant": false, - "id": 2167, + "id": 895, "indexed": true, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 2169, - "src": "390:24:11", + "scope": 897, + "src": "390:24:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -235,10 +235,10 @@ export const Ownable = "typeString": "address" }, "typeName": { - "id": 2166, + "id": 894, "name": "address", "nodeType": "ElementaryTypeName", - "src": "390:7:11", + "src": "390:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -248,32 +248,32 @@ export const Ownable = "visibility": "internal" } ], - "src": "349:69:11" + "src": "349:69:5" }, - "src": "323:96:11" + "src": "323:96:5" }, { "body": { - "id": 2177, + "id": 905, "nodeType": "Block", - "src": "561:29:11", + "src": "561:29:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 2175, + "id": 903, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2172, + "id": 900, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "567:5:11", + "referencedDeclaration": 887, + "src": "567:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -285,18 +285,18 @@ export const Ownable = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2173, + "id": 901, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "575:3:11", + "referencedDeclaration": 1436, + "src": "575:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2174, + "id": 902, "isConstant": false, "isLValue": false, "isPure": false, @@ -304,26 +304,26 @@ export const Ownable = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "575:10:11", + "src": "575:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "567:18:11", + "src": "567:18:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2176, + "id": 904, "nodeType": "ExpressionStatement", - "src": "567:18:11" + "src": "567:18:5" } ] }, "documentation": "@dev The Ownable constructor sets the original `owner` of the contract to the sender\naccount.", - "id": 2178, + "id": 906, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -331,29 +331,29 @@ export const Ownable = "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2170, + "id": 898, "nodeType": "ParameterList", "parameters": [], - "src": "551:2:11" + "src": "551:2:5" }, "payable": false, "returnParameters": { - "id": 2171, + "id": 899, "nodeType": "ParameterList", "parameters": [], - "src": "561:0:11" + "src": "561:0:5" }, - "scope": 2241, - "src": "540:50:11", + "scope": 969, + "src": "540:50:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2188, + "id": 916, "nodeType": "Block", - "src": "691:46:11", + "src": "691:46:5", "statements": [ { "expression": { @@ -365,7 +365,7 @@ export const Ownable = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2184, + "id": 912, "isConstant": false, "isLValue": false, "isPure": false, @@ -374,18 +374,18 @@ export const Ownable = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2181, + "id": 909, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "705:3:11", + "referencedDeclaration": 1436, + "src": "705:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2182, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, @@ -393,7 +393,7 @@ export const Ownable = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "705:10:11", + "src": "705:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -403,18 +403,18 @@ export const Ownable = "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2183, + "id": 911, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "719:5:11", + "referencedDeclaration": 887, + "src": "719:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "705:19:11", + "src": "705:19:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -428,21 +428,21 @@ export const Ownable = "typeString": "bool" } ], - "id": 2180, + "id": 908, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "697:7:11", + "referencedDeclaration": 1439, + "src": "697:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2185, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, @@ -450,41 +450,41 @@ export const Ownable = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "697:28:11", + "src": "697:28:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2186, + "id": 914, "nodeType": "ExpressionStatement", - "src": "697:28:11" + "src": "697:28:5" }, { - "id": 2187, + "id": 915, "nodeType": "PlaceholderStatement", - "src": "731:1:11" + "src": "731:1:5" } ] }, "documentation": "@dev Throws if called by any account other than the owner.", - "id": 2189, + "id": 917, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 2179, + "id": 907, "nodeType": "ParameterList", "parameters": [], - "src": "688:2:11" + "src": "688:2:5" }, - "src": "670:67:11", + "src": "670:67:5", "visibility": "internal" }, { "body": { - "id": 2204, + "id": 932, "nodeType": "Block", - "src": "873:65:11", + "src": "873:65:5", "statements": [ { "eventCall": { @@ -492,12 +492,12 @@ export const Ownable = "arguments": [ { "argumentTypes": null, - "id": 2195, + "id": 923, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "903:5:11", + "referencedDeclaration": 887, + "src": "903:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -511,18 +511,18 @@ export const Ownable = "typeString": "address" } ], - "id": 2194, + "id": 922, "name": "OwnershipRenounced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, - "src": "884:18:11", + "referencedDeclaration": 891, + "src": "884:18:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2196, + "id": 924, "isConstant": false, "isLValue": false, "isPure": false, @@ -530,32 +530,32 @@ export const Ownable = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "884:25:11", + "src": "884:25:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2197, + "id": 925, "nodeType": "EmitStatement", - "src": "879:30:11" + "src": "879:30:5" }, { "expression": { "argumentTypes": null, - "id": 2202, + "id": 930, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2198, + "id": 926, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "915:5:11", + "referencedDeclaration": 887, + "src": "915:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -569,14 +569,14 @@ export const Ownable = { "argumentTypes": null, "hexValue": "30", - "id": 2200, + "id": 928, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "931:1:11", + "src": "931:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -592,20 +592,20 @@ export const Ownable = "typeString": "int_const 0" } ], - "id": 2199, + "id": 927, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "923:7:11", + "src": "923:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2201, + "id": 929, "isConstant": false, "isLValue": false, "isPure": true, @@ -613,76 +613,76 @@ export const Ownable = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "923:10:11", + "src": "923:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "915:18:11", + "src": "915:18:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2203, + "id": 931, "nodeType": "ExpressionStatement", - "src": "915:18:11" + "src": "915:18:5" } ] }, "documentation": "@dev Allows the current owner to relinquish control of the contract.", - "id": 2205, + "id": 933, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2192, + "id": 920, "modifierName": { "argumentTypes": null, - "id": 2191, + "id": 919, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "863:9:11", + "referencedDeclaration": 917, + "src": "863:9:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "863:9:11" + "src": "863:9:5" } ], "name": "renounceOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2190, + "id": 918, "nodeType": "ParameterList", "parameters": [], - "src": "853:2:11" + "src": "853:2:5" }, "payable": false, "returnParameters": { - "id": 2193, + "id": 921, "nodeType": "ParameterList", "parameters": [], - "src": "873:0:11" + "src": "873:0:5" }, - "scope": 2241, - "src": "827:111:11", + "scope": 969, + "src": "827:111:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2216, + "id": 944, "nodeType": "Block", - "src": "1163:40:11", + "src": "1163:40:5", "statements": [ { "expression": { @@ -690,12 +690,12 @@ export const Ownable = "arguments": [ { "argumentTypes": null, - "id": 2213, + "id": 941, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2207, - "src": "1188:9:11", + "referencedDeclaration": 935, + "src": "1188:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -709,18 +709,18 @@ export const Ownable = "typeString": "address" } ], - "id": 2212, + "id": 940, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "1169:18:11", + "referencedDeclaration": 968, + "src": "1169:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2214, + "id": 942, "isConstant": false, "isLValue": false, "isPure": false, @@ -728,57 +728,57 @@ export const Ownable = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1169:29:11", + "src": "1169:29:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2215, + "id": 943, "nodeType": "ExpressionStatement", - "src": "1169:29:11" + "src": "1169:29:5" } ] }, "documentation": "@dev Allows the current owner to transfer control of the contract to a newOwner.\n@param _newOwner The address to transfer ownership to.", - "id": 2217, + "id": 945, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2210, + "id": 938, "modifierName": { "argumentTypes": null, - "id": 2209, + "id": 937, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "1153:9:11", + "referencedDeclaration": 917, + "src": "1153:9:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1153:9:11" + "src": "1153:9:5" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2208, + "id": 936, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2207, + "id": 935, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 2217, - "src": "1127:17:11", + "scope": 945, + "src": "1127:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -786,10 +786,10 @@ export const Ownable = "typeString": "address" }, "typeName": { - "id": 2206, + "id": 934, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1127:7:11", + "src": "1127:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -799,26 +799,26 @@ export const Ownable = "visibility": "internal" } ], - "src": "1126:19:11" + "src": "1126:19:5" }, "payable": false, "returnParameters": { - "id": 2211, + "id": 939, "nodeType": "ParameterList", "parameters": [], - "src": "1163:0:11" + "src": "1163:0:5" }, - "scope": 2241, - "src": "1100:103:11", + "scope": 969, + "src": "1100:103:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2239, + "id": 967, "nodeType": "Block", - "src": "1394:115:11", + "src": "1394:115:5", "statements": [ { "expression": { @@ -830,19 +830,19 @@ export const Ownable = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2227, + "id": 955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2223, + "id": 951, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "1408:9:11", + "referencedDeclaration": 947, + "src": "1408:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -856,14 +856,14 @@ export const Ownable = { "argumentTypes": null, "hexValue": "30", - "id": 2225, + "id": 953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1429:1:11", + "src": "1429:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -879,20 +879,20 @@ export const Ownable = "typeString": "int_const 0" } ], - "id": 2224, + "id": 952, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1421:7:11", + "src": "1421:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2226, + "id": 954, "isConstant": false, "isLValue": false, "isPure": true, @@ -900,13 +900,13 @@ export const Ownable = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1421:10:11", + "src": "1421:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1408:23:11", + "src": "1408:23:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -920,21 +920,21 @@ export const Ownable = "typeString": "bool" } ], - "id": 2222, + "id": 950, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "1400:7:11", + "referencedDeclaration": 1439, + "src": "1400:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2228, + "id": 956, "isConstant": false, "isLValue": false, "isPure": false, @@ -942,15 +942,15 @@ export const Ownable = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1400:32:11", + "src": "1400:32:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2229, + "id": 957, "nodeType": "ExpressionStatement", - "src": "1400:32:11" + "src": "1400:32:5" }, { "eventCall": { @@ -958,12 +958,12 @@ export const Ownable = "arguments": [ { "argumentTypes": null, - "id": 2231, + "id": 959, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "1464:5:11", + "referencedDeclaration": 887, + "src": "1464:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -971,12 +971,12 @@ export const Ownable = }, { "argumentTypes": null, - "id": 2232, + "id": 960, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "1471:9:11", + "referencedDeclaration": 947, + "src": "1471:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -994,18 +994,18 @@ export const Ownable = "typeString": "address" } ], - "id": 2230, + "id": 958, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "1443:20:11", + "referencedDeclaration": 897, + "src": "1443:20:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 2233, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, @@ -1013,32 +1013,32 @@ export const Ownable = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1443:38:11", + "src": "1443:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2234, + "id": 962, "nodeType": "EmitStatement", - "src": "1438:43:11" + "src": "1438:43:5" }, { "expression": { "argumentTypes": null, - "id": 2237, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2235, + "id": 963, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "1487:5:11", + "referencedDeclaration": 887, + "src": "1487:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1048,31 +1048,31 @@ export const Ownable = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2236, + "id": 964, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "1495:9:11", + "referencedDeclaration": 947, + "src": "1495:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1487:17:11", + "src": "1487:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2238, + "id": 966, "nodeType": "ExpressionStatement", - "src": "1487:17:11" + "src": "1487:17:5" } ] }, "documentation": "@dev Transfers control of the contract to a newOwner.\n@param _newOwner The address to transfer ownership to.", - "id": 2240, + "id": 968, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1080,16 +1080,16 @@ export const Ownable = "name": "_transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2220, + "id": 948, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2219, + "id": 947, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "1366:17:11", + "scope": 968, + "src": "1366:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1097,10 +1097,10 @@ export const Ownable = "typeString": "address" }, "typeName": { - "id": 2218, + "id": 946, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1366:7:11", + "src": "1366:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1110,40 +1110,40 @@ export const Ownable = "visibility": "internal" } ], - "src": "1365:19:11" + "src": "1365:19:5" }, "payable": false, "returnParameters": { - "id": 2221, + "id": 949, "nodeType": "ParameterList", "parameters": [], - "src": "1394:0:11" + "src": "1394:0:5" }, - "scope": 2241, - "src": "1338:171:11", + "scope": 969, + "src": "1338:171:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 2242, - "src": "217:1294:11" + "scope": 970, + "src": "217:1294:5" } ], - "src": "0:1512:11" + "src": "0:1512:5" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "exportedSymbols": { "Ownable": [ - 2241 + 969 ] }, - "id": 2242, + "id": 970, "nodeType": "SourceUnit", "nodes": [ { - "id": 2157, + "id": 885, "literals": [ "solidity", "^", @@ -1151,7 +1151,7 @@ export const Ownable = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:11" + "src": "0:24:5" }, { "baseContracts": [], @@ -1159,20 +1159,20 @@ export const Ownable = "contractKind": "contract", "documentation": "@title Ownable\n@dev The Ownable contract has an owner address, and provides basic authorization control\nfunctions, this simplifies the implementation of \"user permissions\".", "fullyImplemented": true, - "id": 2241, + "id": 969, "linearizedBaseContracts": [ - 2241 + 969 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2159, + "id": 887, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "238:20:11", + "scope": 969, + "src": "238:20:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1180,10 +1180,10 @@ export const Ownable = "typeString": "address" }, "typeName": { - "id": 2158, + "id": 886, "name": "address", "nodeType": "ElementaryTypeName", - "src": "238:7:11", + "src": "238:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1195,21 +1195,21 @@ export const Ownable = { "anonymous": false, "documentation": null, - "id": 2163, + "id": 891, "name": "OwnershipRenounced", "nodeType": "EventDefinition", "parameters": { - "id": 2162, + "id": 890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2161, + "id": 889, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 2163, - "src": "289:29:11", + "scope": 891, + "src": "289:29:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1217,10 +1217,10 @@ export const Ownable = "typeString": "address" }, "typeName": { - "id": 2160, + "id": 888, "name": "address", "nodeType": "ElementaryTypeName", - "src": "289:7:11", + "src": "289:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1230,28 +1230,28 @@ export const Ownable = "visibility": "internal" } ], - "src": "288:31:11" + "src": "288:31:5" }, - "src": "264:56:11" + "src": "264:56:5" }, { "anonymous": false, "documentation": null, - "id": 2169, + "id": 897, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 2168, + "id": 896, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2165, + "id": 893, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 2169, - "src": "355:29:11", + "scope": 897, + "src": "355:29:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1259,10 +1259,10 @@ export const Ownable = "typeString": "address" }, "typeName": { - "id": 2164, + "id": 892, "name": "address", "nodeType": "ElementaryTypeName", - "src": "355:7:11", + "src": "355:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1273,12 +1273,12 @@ export const Ownable = }, { "constant": false, - "id": 2167, + "id": 895, "indexed": true, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 2169, - "src": "390:24:11", + "scope": 897, + "src": "390:24:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1286,10 +1286,10 @@ export const Ownable = "typeString": "address" }, "typeName": { - "id": 2166, + "id": 894, "name": "address", "nodeType": "ElementaryTypeName", - "src": "390:7:11", + "src": "390:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1299,32 +1299,32 @@ export const Ownable = "visibility": "internal" } ], - "src": "349:69:11" + "src": "349:69:5" }, - "src": "323:96:11" + "src": "323:96:5" }, { "body": { - "id": 2177, + "id": 905, "nodeType": "Block", - "src": "561:29:11", + "src": "561:29:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 2175, + "id": 903, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2172, + "id": 900, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "567:5:11", + "referencedDeclaration": 887, + "src": "567:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1336,18 +1336,18 @@ export const Ownable = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2173, + "id": 901, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "575:3:11", + "referencedDeclaration": 1436, + "src": "575:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2174, + "id": 902, "isConstant": false, "isLValue": false, "isPure": false, @@ -1355,26 +1355,26 @@ export const Ownable = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "575:10:11", + "src": "575:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "567:18:11", + "src": "567:18:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2176, + "id": 904, "nodeType": "ExpressionStatement", - "src": "567:18:11" + "src": "567:18:5" } ] }, "documentation": "@dev The Ownable constructor sets the original `owner` of the contract to the sender\naccount.", - "id": 2178, + "id": 906, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1382,29 +1382,29 @@ export const Ownable = "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2170, + "id": 898, "nodeType": "ParameterList", "parameters": [], - "src": "551:2:11" + "src": "551:2:5" }, "payable": false, "returnParameters": { - "id": 2171, + "id": 899, "nodeType": "ParameterList", "parameters": [], - "src": "561:0:11" + "src": "561:0:5" }, - "scope": 2241, - "src": "540:50:11", + "scope": 969, + "src": "540:50:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2188, + "id": 916, "nodeType": "Block", - "src": "691:46:11", + "src": "691:46:5", "statements": [ { "expression": { @@ -1416,7 +1416,7 @@ export const Ownable = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2184, + "id": 912, "isConstant": false, "isLValue": false, "isPure": false, @@ -1425,18 +1425,18 @@ export const Ownable = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2181, + "id": 909, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "705:3:11", + "referencedDeclaration": 1436, + "src": "705:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2182, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, @@ -1444,7 +1444,7 @@ export const Ownable = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "705:10:11", + "src": "705:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1454,18 +1454,18 @@ export const Ownable = "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2183, + "id": 911, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "719:5:11", + "referencedDeclaration": 887, + "src": "719:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "705:19:11", + "src": "705:19:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1479,21 +1479,21 @@ export const Ownable = "typeString": "bool" } ], - "id": 2180, + "id": 908, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "697:7:11", + "referencedDeclaration": 1439, + "src": "697:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2185, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, @@ -1501,41 +1501,41 @@ export const Ownable = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "697:28:11", + "src": "697:28:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2186, + "id": 914, "nodeType": "ExpressionStatement", - "src": "697:28:11" + "src": "697:28:5" }, { - "id": 2187, + "id": 915, "nodeType": "PlaceholderStatement", - "src": "731:1:11" + "src": "731:1:5" } ] }, "documentation": "@dev Throws if called by any account other than the owner.", - "id": 2189, + "id": 917, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 2179, + "id": 907, "nodeType": "ParameterList", "parameters": [], - "src": "688:2:11" + "src": "688:2:5" }, - "src": "670:67:11", + "src": "670:67:5", "visibility": "internal" }, { "body": { - "id": 2204, + "id": 932, "nodeType": "Block", - "src": "873:65:11", + "src": "873:65:5", "statements": [ { "eventCall": { @@ -1543,12 +1543,12 @@ export const Ownable = "arguments": [ { "argumentTypes": null, - "id": 2195, + "id": 923, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "903:5:11", + "referencedDeclaration": 887, + "src": "903:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1562,18 +1562,18 @@ export const Ownable = "typeString": "address" } ], - "id": 2194, + "id": 922, "name": "OwnershipRenounced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2163, - "src": "884:18:11", + "referencedDeclaration": 891, + "src": "884:18:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2196, + "id": 924, "isConstant": false, "isLValue": false, "isPure": false, @@ -1581,32 +1581,32 @@ export const Ownable = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "884:25:11", + "src": "884:25:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2197, + "id": 925, "nodeType": "EmitStatement", - "src": "879:30:11" + "src": "879:30:5" }, { "expression": { "argumentTypes": null, - "id": 2202, + "id": 930, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2198, + "id": 926, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "915:5:11", + "referencedDeclaration": 887, + "src": "915:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1620,14 +1620,14 @@ export const Ownable = { "argumentTypes": null, "hexValue": "30", - "id": 2200, + "id": 928, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "931:1:11", + "src": "931:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1643,20 +1643,20 @@ export const Ownable = "typeString": "int_const 0" } ], - "id": 2199, + "id": 927, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "923:7:11", + "src": "923:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2201, + "id": 929, "isConstant": false, "isLValue": false, "isPure": true, @@ -1664,76 +1664,76 @@ export const Ownable = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "923:10:11", + "src": "923:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "915:18:11", + "src": "915:18:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2203, + "id": 931, "nodeType": "ExpressionStatement", - "src": "915:18:11" + "src": "915:18:5" } ] }, "documentation": "@dev Allows the current owner to relinquish control of the contract.", - "id": 2205, + "id": 933, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2192, + "id": 920, "modifierName": { "argumentTypes": null, - "id": 2191, + "id": 919, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "863:9:11", + "referencedDeclaration": 917, + "src": "863:9:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "863:9:11" + "src": "863:9:5" } ], "name": "renounceOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2190, + "id": 918, "nodeType": "ParameterList", "parameters": [], - "src": "853:2:11" + "src": "853:2:5" }, "payable": false, "returnParameters": { - "id": 2193, + "id": 921, "nodeType": "ParameterList", "parameters": [], - "src": "873:0:11" + "src": "873:0:5" }, - "scope": 2241, - "src": "827:111:11", + "scope": 969, + "src": "827:111:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2216, + "id": 944, "nodeType": "Block", - "src": "1163:40:11", + "src": "1163:40:5", "statements": [ { "expression": { @@ -1741,12 +1741,12 @@ export const Ownable = "arguments": [ { "argumentTypes": null, - "id": 2213, + "id": 941, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2207, - "src": "1188:9:11", + "referencedDeclaration": 935, + "src": "1188:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1760,18 +1760,18 @@ export const Ownable = "typeString": "address" } ], - "id": 2212, + "id": 940, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "1169:18:11", + "referencedDeclaration": 968, + "src": "1169:18:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2214, + "id": 942, "isConstant": false, "isLValue": false, "isPure": false, @@ -1779,57 +1779,57 @@ export const Ownable = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1169:29:11", + "src": "1169:29:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2215, + "id": 943, "nodeType": "ExpressionStatement", - "src": "1169:29:11" + "src": "1169:29:5" } ] }, "documentation": "@dev Allows the current owner to transfer control of the contract to a newOwner.\n@param _newOwner The address to transfer ownership to.", - "id": 2217, + "id": 945, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2210, + "id": 938, "modifierName": { "argumentTypes": null, - "id": 2209, + "id": 937, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "1153:9:11", + "referencedDeclaration": 917, + "src": "1153:9:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1153:9:11" + "src": "1153:9:5" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2208, + "id": 936, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2207, + "id": 935, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 2217, - "src": "1127:17:11", + "scope": 945, + "src": "1127:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1837,10 +1837,10 @@ export const Ownable = "typeString": "address" }, "typeName": { - "id": 2206, + "id": 934, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1127:7:11", + "src": "1127:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1850,26 +1850,26 @@ export const Ownable = "visibility": "internal" } ], - "src": "1126:19:11" + "src": "1126:19:5" }, "payable": false, "returnParameters": { - "id": 2211, + "id": 939, "nodeType": "ParameterList", "parameters": [], - "src": "1163:0:11" + "src": "1163:0:5" }, - "scope": 2241, - "src": "1100:103:11", + "scope": 969, + "src": "1100:103:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2239, + "id": 967, "nodeType": "Block", - "src": "1394:115:11", + "src": "1394:115:5", "statements": [ { "expression": { @@ -1881,19 +1881,19 @@ export const Ownable = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2227, + "id": 955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2223, + "id": 951, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "1408:9:11", + "referencedDeclaration": 947, + "src": "1408:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1907,14 +1907,14 @@ export const Ownable = { "argumentTypes": null, "hexValue": "30", - "id": 2225, + "id": 953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1429:1:11", + "src": "1429:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1930,20 +1930,20 @@ export const Ownable = "typeString": "int_const 0" } ], - "id": 2224, + "id": 952, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1421:7:11", + "src": "1421:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2226, + "id": 954, "isConstant": false, "isLValue": false, "isPure": true, @@ -1951,13 +1951,13 @@ export const Ownable = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1421:10:11", + "src": "1421:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1408:23:11", + "src": "1408:23:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1971,21 +1971,21 @@ export const Ownable = "typeString": "bool" } ], - "id": 2222, + "id": 950, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "1400:7:11", + "referencedDeclaration": 1439, + "src": "1400:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2228, + "id": 956, "isConstant": false, "isLValue": false, "isPure": false, @@ -1993,15 +1993,15 @@ export const Ownable = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1400:32:11", + "src": "1400:32:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2229, + "id": 957, "nodeType": "ExpressionStatement", - "src": "1400:32:11" + "src": "1400:32:5" }, { "eventCall": { @@ -2009,12 +2009,12 @@ export const Ownable = "arguments": [ { "argumentTypes": null, - "id": 2231, + "id": 959, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "1464:5:11", + "referencedDeclaration": 887, + "src": "1464:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2022,12 +2022,12 @@ export const Ownable = }, { "argumentTypes": null, - "id": 2232, + "id": 960, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "1471:9:11", + "referencedDeclaration": 947, + "src": "1471:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2045,18 +2045,18 @@ export const Ownable = "typeString": "address" } ], - "id": 2230, + "id": 958, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2169, - "src": "1443:20:11", + "referencedDeclaration": 897, + "src": "1443:20:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 2233, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, @@ -2064,32 +2064,32 @@ export const Ownable = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1443:38:11", + "src": "1443:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2234, + "id": 962, "nodeType": "EmitStatement", - "src": "1438:43:11" + "src": "1438:43:5" }, { "expression": { "argumentTypes": null, - "id": 2237, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2235, + "id": 963, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "1487:5:11", + "referencedDeclaration": 887, + "src": "1487:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2099,31 +2099,31 @@ export const Ownable = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2236, + "id": 964, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2219, - "src": "1495:9:11", + "referencedDeclaration": 947, + "src": "1495:9:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1487:17:11", + "src": "1487:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2238, + "id": 966, "nodeType": "ExpressionStatement", - "src": "1487:17:11" + "src": "1487:17:5" } ] }, "documentation": "@dev Transfers control of the contract to a newOwner.\n@param _newOwner The address to transfer ownership to.", - "id": 2240, + "id": 968, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2131,16 +2131,16 @@ export const Ownable = "name": "_transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 2220, + "id": 948, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2219, + "id": 947, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "1366:17:11", + "scope": 968, + "src": "1366:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2148,10 +2148,10 @@ export const Ownable = "typeString": "address" }, "typeName": { - "id": 2218, + "id": 946, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1366:7:11", + "src": "1366:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2161,33 +2161,33 @@ export const Ownable = "visibility": "internal" } ], - "src": "1365:19:11" + "src": "1365:19:5" }, "payable": false, "returnParameters": { - "id": 2221, + "id": 949, "nodeType": "ParameterList", "parameters": [], - "src": "1394:0:11" + "src": "1394:0:5" }, - "scope": 2241, - "src": "1338:171:11", + "scope": 969, + "src": "1338:171:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 2242, - "src": "217:1294:11" + "scope": 970, + "src": "217:1294:5" } ], - "src": "0:1512:11" + "src": "0:1512:5" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.581Z" + "updatedAt": "2018-07-07T15:28:53.734Z" } \ No newline at end of file diff --git a/artifacts/ts/SafeMath.ts b/artifacts/ts/SafeMath.ts index 3b65134c5..f04a5a88e 100644 --- a/artifacts/ts/SafeMath.ts +++ b/artifacts/ts/SafeMath.ts @@ -2,24 +2,24 @@ export const SafeMath = { "contractName": "SafeMath", "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820f41fd7e6ebc279505f2532be32bbe097cc9ba0831420461d07f56e23cdd0d7ca0029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820f41fd7e6ebc279505f2532be32bbe097cc9ba0831420461d07f56e23cdd0d7ca0029", - "sourceMap": "117:1222:10:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "117:1222:10:-;;;;;;;;", + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058203291af8d8fa31686103156453254fbb1b583fc2b8c3fe061aaa0d693017628b60029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058203291af8d8fa31686103156453254fbb1b583fc2b8c3fe061aaa0d693017628b60029", + "sourceMap": "117:1222:4:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "117:1222:4:-;;;;;;;;", "source": "pragma solidity ^0.4.23;\n\n\n/**\n * @title SafeMath\n * @dev Math operations with safety checks that throw on error\n */\nlibrary SafeMath {\n\n /**\n * @dev Multiplies two numbers, throws on overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\n // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\n if (a == 0) {\n return 0;\n }\n\n c = a * b;\n assert(c / a == b);\n return c;\n }\n\n /**\n * @dev Integer division of two numbers, truncating the quotient.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // assert(b > 0); // Solidity automatically throws when dividing by 0\n // uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n return a / b;\n }\n\n /**\n * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n assert(b <= a);\n return a - b;\n }\n\n /**\n * @dev Adds two numbers, throws on overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\n c = a + b;\n assert(c >= a);\n return c;\n }\n}\n", "sourcePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "ast": { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 2155 + 883 ] }, - "id": 2156, + "id": 884, "nodeType": "SourceUnit", "nodes": [ { - "id": 2063, + "id": 791, "literals": [ "solidity", "^", @@ -27,7 +27,7 @@ export const SafeMath = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:10" + "src": "0:24:4" }, { "baseContracts": [], @@ -35,18 +35,18 @@ export const SafeMath = "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that throw on error", "fullyImplemented": true, - "id": 2155, + "id": 883, "linearizedBaseContracts": [ - 2155 + 883 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2095, + "id": 823, "nodeType": "Block", - "src": "272:304:10", + "src": "272:304:4", "statements": [ { "condition": { @@ -55,19 +55,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2074, + "id": 802, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2072, + "id": 800, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "487:1:10", + "referencedDeclaration": 793, + "src": "487:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -78,14 +78,14 @@ export const SafeMath = "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2073, + "id": 801, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "492:1:10", + "src": "492:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -93,33 +93,33 @@ export const SafeMath = }, "value": "0" }, - "src": "487:6:10", + "src": "487:6:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2078, + "id": 806, "nodeType": "IfStatement", - "src": "483:35:10", + "src": "483:35:4", "trueBody": { - "id": 2077, + "id": 805, "nodeType": "Block", - "src": "495:23:10", + "src": "495:23:4", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 2075, + "id": 803, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "510:1:10", + "src": "510:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -127,10 +127,10 @@ export const SafeMath = }, "value": "0" }, - "functionReturnParameters": 2071, - "id": 2076, + "functionReturnParameters": 799, + "id": 804, "nodeType": "Return", - "src": "503:8:10" + "src": "503:8:4" } ] } @@ -138,19 +138,19 @@ export const SafeMath = { "expression": { "argumentTypes": null, - "id": 2083, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2079, + "id": 807, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "524:1:10", + "referencedDeclaration": 798, + "src": "524:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -164,19 +164,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2082, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2080, + "id": 808, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "528:1:10", + "referencedDeclaration": 793, + "src": "528:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -186,32 +186,32 @@ export const SafeMath = "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 2081, + "id": 809, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "532:1:10", + "referencedDeclaration": 795, + "src": "532:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "528:5:10", + "src": "528:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "524:9:10", + "src": "524:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2084, + "id": 812, "nodeType": "ExpressionStatement", - "src": "524:9:10" + "src": "524:9:4" }, { "expression": { @@ -223,7 +223,7 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2090, + "id": 818, "isConstant": false, "isLValue": false, "isPure": false, @@ -234,19 +234,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2088, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2086, + "id": 814, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "546:1:10", + "referencedDeclaration": 798, + "src": "546:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -256,18 +256,18 @@ export const SafeMath = "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 2087, + "id": 815, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "550:1:10", + "referencedDeclaration": 793, + "src": "550:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "546:5:10", + "src": "546:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -277,18 +277,18 @@ export const SafeMath = "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2089, + "id": 817, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "555:1:10", + "referencedDeclaration": 795, + "src": "555:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "546:10:10", + "src": "546:10:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -302,18 +302,18 @@ export const SafeMath = "typeString": "bool" } ], - "id": 2085, + "id": 813, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "539:6:10", + "referencedDeclaration": 1425, + "src": "539:6:4", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2091, + "id": 819, "isConstant": false, "isLValue": false, "isPure": false, @@ -321,39 +321,39 @@ export const SafeMath = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "539:18:10", + "src": "539:18:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2092, + "id": 820, "nodeType": "ExpressionStatement", - "src": "539:18:10" + "src": "539:18:4" }, { "expression": { "argumentTypes": null, - "id": 2093, + "id": 821, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "570:1:10", + "referencedDeclaration": 798, + "src": "570:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2071, - "id": 2094, + "functionReturnParameters": 799, + "id": 822, "nodeType": "Return", - "src": "563:8:10" + "src": "563:8:4" } ] }, "documentation": "@dev Multiplies two numbers, throws on overflow.", - "id": 2096, + "id": 824, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -361,16 +361,16 @@ export const SafeMath = "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 2068, + "id": 796, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2065, + "id": 793, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "216:9:10", + "scope": 824, + "src": "216:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -378,10 +378,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2064, + "id": 792, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "216:7:10", + "src": "216:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -392,11 +392,11 @@ export const SafeMath = }, { "constant": false, - "id": 2067, + "id": 795, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "227:9:10", + "scope": 824, + "src": "227:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -404,10 +404,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2066, + "id": 794, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "227:7:10", + "src": "227:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -417,20 +417,20 @@ export const SafeMath = "visibility": "internal" } ], - "src": "215:22:10" + "src": "215:22:4" }, "payable": false, "returnParameters": { - "id": 2071, + "id": 799, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2070, + "id": 798, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "261:9:10", + "scope": 824, + "src": "261:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -438,10 +438,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2069, + "id": 797, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "261:7:10", + "src": "261:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -451,19 +451,19 @@ export const SafeMath = "visibility": "internal" } ], - "src": "260:11:10" + "src": "260:11:4" }, - "scope": 2155, - "src": "203:373:10", + "scope": 883, + "src": "203:373:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2109, + "id": 837, "nodeType": "Block", - "src": "725:205:10", + "src": "725:205:4", "statements": [ { "expression": { @@ -472,19 +472,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2107, + "id": 835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2105, + "id": 833, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2098, - "src": "920:1:10", + "referencedDeclaration": 826, + "src": "920:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -494,32 +494,32 @@ export const SafeMath = "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 2106, + "id": 834, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "924:1:10", + "referencedDeclaration": 828, + "src": "924:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "920:5:10", + "src": "920:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2104, - "id": 2108, + "functionReturnParameters": 832, + "id": 836, "nodeType": "Return", - "src": "913:12:10" + "src": "913:12:4" } ] }, "documentation": "@dev Integer division of two numbers, truncating the quotient.", - "id": 2110, + "id": 838, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -527,16 +527,16 @@ export const SafeMath = "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 2101, + "id": 829, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2098, + "id": 826, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "671:9:10", + "scope": 838, + "src": "671:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -544,10 +544,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2097, + "id": 825, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "671:7:10", + "src": "671:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -558,11 +558,11 @@ export const SafeMath = }, { "constant": false, - "id": 2100, + "id": 828, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "682:9:10", + "scope": 838, + "src": "682:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -570,10 +570,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2099, + "id": 827, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "682:7:10", + "src": "682:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -583,20 +583,20 @@ export const SafeMath = "visibility": "internal" } ], - "src": "670:22:10" + "src": "670:22:4" }, "payable": false, "returnParameters": { - "id": 2104, + "id": 832, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2103, + "id": 831, "name": "", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "716:7:10", + "scope": 838, + "src": "716:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -604,10 +604,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2102, + "id": 830, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "716:7:10", + "src": "716:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -617,19 +617,19 @@ export const SafeMath = "visibility": "internal" } ], - "src": "715:9:10" + "src": "715:9:4" }, - "scope": 2155, - "src": "658:272:10", + "scope": 883, + "src": "658:272:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2129, + "id": 857, "nodeType": "Block", - "src": "1109:43:10", + "src": "1109:43:4", "statements": [ { "expression": { @@ -641,19 +641,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2122, + "id": 850, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2120, + "id": 848, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2114, - "src": "1122:1:10", + "referencedDeclaration": 842, + "src": "1122:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -663,18 +663,18 @@ export const SafeMath = "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 2121, + "id": 849, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2112, - "src": "1127:1:10", + "referencedDeclaration": 840, + "src": "1127:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1122:6:10", + "src": "1122:6:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -688,18 +688,18 @@ export const SafeMath = "typeString": "bool" } ], - "id": 2119, + "id": 847, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "1115:6:10", + "referencedDeclaration": 1425, + "src": "1115:6:4", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2123, + "id": 851, "isConstant": false, "isLValue": false, "isPure": false, @@ -707,15 +707,15 @@ export const SafeMath = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1115:14:10", + "src": "1115:14:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2124, + "id": 852, "nodeType": "ExpressionStatement", - "src": "1115:14:10" + "src": "1115:14:4" }, { "expression": { @@ -724,19 +724,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2127, + "id": 855, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2125, + "id": 853, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2112, - "src": "1142:1:10", + "referencedDeclaration": 840, + "src": "1142:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -746,32 +746,32 @@ export const SafeMath = "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 2126, + "id": 854, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2114, - "src": "1146:1:10", + "referencedDeclaration": 842, + "src": "1146:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1142:5:10", + "src": "1142:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2118, - "id": 2128, + "functionReturnParameters": 846, + "id": 856, "nodeType": "Return", - "src": "1135:12:10" + "src": "1135:12:4" } ] }, "documentation": "@dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).", - "id": 2130, + "id": 858, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -779,16 +779,16 @@ export const SafeMath = "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 2115, + "id": 843, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2112, + "id": 840, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2130, - "src": "1055:9:10", + "scope": 858, + "src": "1055:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -796,10 +796,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2111, + "id": 839, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1055:7:10", + "src": "1055:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -810,11 +810,11 @@ export const SafeMath = }, { "constant": false, - "id": 2114, + "id": 842, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2130, - "src": "1066:9:10", + "scope": 858, + "src": "1066:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -822,10 +822,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2113, + "id": 841, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1066:7:10", + "src": "1066:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -835,20 +835,20 @@ export const SafeMath = "visibility": "internal" } ], - "src": "1054:22:10" + "src": "1054:22:4" }, "payable": false, "returnParameters": { - "id": 2118, + "id": 846, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2117, + "id": 845, "name": "", "nodeType": "VariableDeclaration", - "scope": 2130, - "src": "1100:7:10", + "scope": 858, + "src": "1100:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -856,10 +856,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2116, + "id": 844, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1100:7:10", + "src": "1100:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -869,36 +869,36 @@ export const SafeMath = "visibility": "internal" } ], - "src": "1099:9:10" + "src": "1099:9:4" }, - "scope": 2155, - "src": "1042:110:10", + "scope": 883, + "src": "1042:110:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2153, + "id": 881, "nodeType": "Block", - "src": "1283:54:10", + "src": "1283:54:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 2143, + "id": 871, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2139, + "id": 867, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "1289:1:10", + "referencedDeclaration": 865, + "src": "1289:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -912,19 +912,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2142, + "id": 870, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2140, + "id": 868, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, - "src": "1293:1:10", + "referencedDeclaration": 860, + "src": "1293:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -934,32 +934,32 @@ export const SafeMath = "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2141, + "id": 869, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "1297:1:10", + "referencedDeclaration": 862, + "src": "1297:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1293:5:10", + "src": "1293:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1289:9:10", + "src": "1289:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2144, + "id": 872, "nodeType": "ExpressionStatement", - "src": "1289:9:10" + "src": "1289:9:4" }, { "expression": { @@ -971,19 +971,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2148, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2146, + "id": 874, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "1311:1:10", + "referencedDeclaration": 865, + "src": "1311:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -993,18 +993,18 @@ export const SafeMath = "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 2147, + "id": 875, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, - "src": "1316:1:10", + "referencedDeclaration": 860, + "src": "1316:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1311:6:10", + "src": "1311:6:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1018,18 +1018,18 @@ export const SafeMath = "typeString": "bool" } ], - "id": 2145, + "id": 873, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "1304:6:10", + "referencedDeclaration": 1425, + "src": "1304:6:4", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2149, + "id": 877, "isConstant": false, "isLValue": false, "isPure": false, @@ -1037,39 +1037,39 @@ export const SafeMath = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1304:14:10", + "src": "1304:14:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2150, + "id": 878, "nodeType": "ExpressionStatement", - "src": "1304:14:10" + "src": "1304:14:4" }, { "expression": { "argumentTypes": null, - "id": 2151, + "id": 879, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "1331:1:10", + "referencedDeclaration": 865, + "src": "1331:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2138, - "id": 2152, + "functionReturnParameters": 866, + "id": 880, "nodeType": "Return", - "src": "1324:8:10" + "src": "1324:8:4" } ] }, "documentation": "@dev Adds two numbers, throws on overflow.", - "id": 2154, + "id": 882, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1077,16 +1077,16 @@ export const SafeMath = "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 2135, + "id": 863, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2132, + "id": 860, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2154, - "src": "1227:9:10", + "scope": 882, + "src": "1227:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1094,10 +1094,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2131, + "id": 859, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1227:7:10", + "src": "1227:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1108,11 +1108,11 @@ export const SafeMath = }, { "constant": false, - "id": 2134, + "id": 862, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2154, - "src": "1238:9:10", + "scope": 882, + "src": "1238:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1120,10 +1120,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2133, + "id": 861, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1238:7:10", + "src": "1238:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1133,20 +1133,20 @@ export const SafeMath = "visibility": "internal" } ], - "src": "1226:22:10" + "src": "1226:22:4" }, "payable": false, "returnParameters": { - "id": 2138, + "id": 866, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2137, + "id": 865, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2154, - "src": "1272:9:10", + "scope": 882, + "src": "1272:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1154,10 +1154,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2136, + "id": 864, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1272:7:10", + "src": "1272:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1167,33 +1167,33 @@ export const SafeMath = "visibility": "internal" } ], - "src": "1271:11:10" + "src": "1271:11:4" }, - "scope": 2155, - "src": "1214:123:10", + "scope": 883, + "src": "1214:123:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 2156, - "src": "117:1222:10" + "scope": 884, + "src": "117:1222:4" } ], - "src": "0:1340:10" + "src": "0:1340:4" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 2155 + 883 ] }, - "id": 2156, + "id": 884, "nodeType": "SourceUnit", "nodes": [ { - "id": 2063, + "id": 791, "literals": [ "solidity", "^", @@ -1201,7 +1201,7 @@ export const SafeMath = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:10" + "src": "0:24:4" }, { "baseContracts": [], @@ -1209,18 +1209,18 @@ export const SafeMath = "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that throw on error", "fullyImplemented": true, - "id": 2155, + "id": 883, "linearizedBaseContracts": [ - 2155 + 883 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2095, + "id": 823, "nodeType": "Block", - "src": "272:304:10", + "src": "272:304:4", "statements": [ { "condition": { @@ -1229,19 +1229,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2074, + "id": 802, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2072, + "id": 800, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "487:1:10", + "referencedDeclaration": 793, + "src": "487:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1252,14 +1252,14 @@ export const SafeMath = "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2073, + "id": 801, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "492:1:10", + "src": "492:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1267,33 +1267,33 @@ export const SafeMath = }, "value": "0" }, - "src": "487:6:10", + "src": "487:6:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2078, + "id": 806, "nodeType": "IfStatement", - "src": "483:35:10", + "src": "483:35:4", "trueBody": { - "id": 2077, + "id": 805, "nodeType": "Block", - "src": "495:23:10", + "src": "495:23:4", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 2075, + "id": 803, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "510:1:10", + "src": "510:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1301,10 +1301,10 @@ export const SafeMath = }, "value": "0" }, - "functionReturnParameters": 2071, - "id": 2076, + "functionReturnParameters": 799, + "id": 804, "nodeType": "Return", - "src": "503:8:10" + "src": "503:8:4" } ] } @@ -1312,19 +1312,19 @@ export const SafeMath = { "expression": { "argumentTypes": null, - "id": 2083, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2079, + "id": 807, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "524:1:10", + "referencedDeclaration": 798, + "src": "524:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1338,19 +1338,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2082, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2080, + "id": 808, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "528:1:10", + "referencedDeclaration": 793, + "src": "528:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1360,32 +1360,32 @@ export const SafeMath = "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 2081, + "id": 809, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "532:1:10", + "referencedDeclaration": 795, + "src": "532:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "528:5:10", + "src": "528:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "524:9:10", + "src": "524:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2084, + "id": 812, "nodeType": "ExpressionStatement", - "src": "524:9:10" + "src": "524:9:4" }, { "expression": { @@ -1397,7 +1397,7 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2090, + "id": 818, "isConstant": false, "isLValue": false, "isPure": false, @@ -1408,19 +1408,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2088, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2086, + "id": 814, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "546:1:10", + "referencedDeclaration": 798, + "src": "546:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1430,18 +1430,18 @@ export const SafeMath = "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 2087, + "id": 815, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "550:1:10", + "referencedDeclaration": 793, + "src": "550:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "546:5:10", + "src": "546:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1451,18 +1451,18 @@ export const SafeMath = "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2089, + "id": 817, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "555:1:10", + "referencedDeclaration": 795, + "src": "555:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "546:10:10", + "src": "546:10:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1476,18 +1476,18 @@ export const SafeMath = "typeString": "bool" } ], - "id": 2085, + "id": 813, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "539:6:10", + "referencedDeclaration": 1425, + "src": "539:6:4", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2091, + "id": 819, "isConstant": false, "isLValue": false, "isPure": false, @@ -1495,39 +1495,39 @@ export const SafeMath = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "539:18:10", + "src": "539:18:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2092, + "id": 820, "nodeType": "ExpressionStatement", - "src": "539:18:10" + "src": "539:18:4" }, { "expression": { "argumentTypes": null, - "id": 2093, + "id": 821, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "570:1:10", + "referencedDeclaration": 798, + "src": "570:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2071, - "id": 2094, + "functionReturnParameters": 799, + "id": 822, "nodeType": "Return", - "src": "563:8:10" + "src": "563:8:4" } ] }, "documentation": "@dev Multiplies two numbers, throws on overflow.", - "id": 2096, + "id": 824, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1535,16 +1535,16 @@ export const SafeMath = "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 2068, + "id": 796, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2065, + "id": 793, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "216:9:10", + "scope": 824, + "src": "216:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1552,10 +1552,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2064, + "id": 792, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "216:7:10", + "src": "216:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1566,11 +1566,11 @@ export const SafeMath = }, { "constant": false, - "id": 2067, + "id": 795, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "227:9:10", + "scope": 824, + "src": "227:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1578,10 +1578,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2066, + "id": 794, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "227:7:10", + "src": "227:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1591,20 +1591,20 @@ export const SafeMath = "visibility": "internal" } ], - "src": "215:22:10" + "src": "215:22:4" }, "payable": false, "returnParameters": { - "id": 2071, + "id": 799, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2070, + "id": 798, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "261:9:10", + "scope": 824, + "src": "261:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1612,10 +1612,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2069, + "id": 797, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "261:7:10", + "src": "261:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1625,19 +1625,19 @@ export const SafeMath = "visibility": "internal" } ], - "src": "260:11:10" + "src": "260:11:4" }, - "scope": 2155, - "src": "203:373:10", + "scope": 883, + "src": "203:373:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2109, + "id": 837, "nodeType": "Block", - "src": "725:205:10", + "src": "725:205:4", "statements": [ { "expression": { @@ -1646,19 +1646,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2107, + "id": 835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2105, + "id": 833, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2098, - "src": "920:1:10", + "referencedDeclaration": 826, + "src": "920:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1668,32 +1668,32 @@ export const SafeMath = "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 2106, + "id": 834, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "924:1:10", + "referencedDeclaration": 828, + "src": "924:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "920:5:10", + "src": "920:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2104, - "id": 2108, + "functionReturnParameters": 832, + "id": 836, "nodeType": "Return", - "src": "913:12:10" + "src": "913:12:4" } ] }, "documentation": "@dev Integer division of two numbers, truncating the quotient.", - "id": 2110, + "id": 838, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1701,16 +1701,16 @@ export const SafeMath = "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 2101, + "id": 829, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2098, + "id": 826, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "671:9:10", + "scope": 838, + "src": "671:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1718,10 +1718,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2097, + "id": 825, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "671:7:10", + "src": "671:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1732,11 +1732,11 @@ export const SafeMath = }, { "constant": false, - "id": 2100, + "id": 828, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "682:9:10", + "scope": 838, + "src": "682:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1744,10 +1744,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2099, + "id": 827, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "682:7:10", + "src": "682:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1757,20 +1757,20 @@ export const SafeMath = "visibility": "internal" } ], - "src": "670:22:10" + "src": "670:22:4" }, "payable": false, "returnParameters": { - "id": 2104, + "id": 832, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2103, + "id": 831, "name": "", "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "716:7:10", + "scope": 838, + "src": "716:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1778,10 +1778,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2102, + "id": 830, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "716:7:10", + "src": "716:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1791,19 +1791,19 @@ export const SafeMath = "visibility": "internal" } ], - "src": "715:9:10" + "src": "715:9:4" }, - "scope": 2155, - "src": "658:272:10", + "scope": 883, + "src": "658:272:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2129, + "id": 857, "nodeType": "Block", - "src": "1109:43:10", + "src": "1109:43:4", "statements": [ { "expression": { @@ -1815,19 +1815,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2122, + "id": 850, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2120, + "id": 848, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2114, - "src": "1122:1:10", + "referencedDeclaration": 842, + "src": "1122:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1837,18 +1837,18 @@ export const SafeMath = "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 2121, + "id": 849, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2112, - "src": "1127:1:10", + "referencedDeclaration": 840, + "src": "1127:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1122:6:10", + "src": "1122:6:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1862,18 +1862,18 @@ export const SafeMath = "typeString": "bool" } ], - "id": 2119, + "id": 847, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "1115:6:10", + "referencedDeclaration": 1425, + "src": "1115:6:4", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2123, + "id": 851, "isConstant": false, "isLValue": false, "isPure": false, @@ -1881,15 +1881,15 @@ export const SafeMath = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1115:14:10", + "src": "1115:14:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2124, + "id": 852, "nodeType": "ExpressionStatement", - "src": "1115:14:10" + "src": "1115:14:4" }, { "expression": { @@ -1898,19 +1898,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2127, + "id": 855, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2125, + "id": 853, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2112, - "src": "1142:1:10", + "referencedDeclaration": 840, + "src": "1142:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1920,32 +1920,32 @@ export const SafeMath = "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 2126, + "id": 854, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2114, - "src": "1146:1:10", + "referencedDeclaration": 842, + "src": "1146:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1142:5:10", + "src": "1142:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2118, - "id": 2128, + "functionReturnParameters": 846, + "id": 856, "nodeType": "Return", - "src": "1135:12:10" + "src": "1135:12:4" } ] }, "documentation": "@dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).", - "id": 2130, + "id": 858, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1953,16 +1953,16 @@ export const SafeMath = "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 2115, + "id": 843, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2112, + "id": 840, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2130, - "src": "1055:9:10", + "scope": 858, + "src": "1055:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1970,10 +1970,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2111, + "id": 839, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1055:7:10", + "src": "1055:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1984,11 +1984,11 @@ export const SafeMath = }, { "constant": false, - "id": 2114, + "id": 842, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2130, - "src": "1066:9:10", + "scope": 858, + "src": "1066:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1996,10 +1996,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2113, + "id": 841, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1066:7:10", + "src": "1066:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2009,20 +2009,20 @@ export const SafeMath = "visibility": "internal" } ], - "src": "1054:22:10" + "src": "1054:22:4" }, "payable": false, "returnParameters": { - "id": 2118, + "id": 846, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2117, + "id": 845, "name": "", "nodeType": "VariableDeclaration", - "scope": 2130, - "src": "1100:7:10", + "scope": 858, + "src": "1100:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2030,10 +2030,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2116, + "id": 844, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1100:7:10", + "src": "1100:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2043,36 +2043,36 @@ export const SafeMath = "visibility": "internal" } ], - "src": "1099:9:10" + "src": "1099:9:4" }, - "scope": 2155, - "src": "1042:110:10", + "scope": 883, + "src": "1042:110:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2153, + "id": 881, "nodeType": "Block", - "src": "1283:54:10", + "src": "1283:54:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 2143, + "id": 871, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2139, + "id": 867, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "1289:1:10", + "referencedDeclaration": 865, + "src": "1289:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2086,19 +2086,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2142, + "id": 870, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2140, + "id": 868, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, - "src": "1293:1:10", + "referencedDeclaration": 860, + "src": "1293:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2108,32 +2108,32 @@ export const SafeMath = "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2141, + "id": 869, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "1297:1:10", + "referencedDeclaration": 862, + "src": "1297:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1293:5:10", + "src": "1293:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1289:9:10", + "src": "1289:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2144, + "id": 872, "nodeType": "ExpressionStatement", - "src": "1289:9:10" + "src": "1289:9:4" }, { "expression": { @@ -2145,19 +2145,19 @@ export const SafeMath = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2148, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2146, + "id": 874, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "1311:1:10", + "referencedDeclaration": 865, + "src": "1311:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2167,18 +2167,18 @@ export const SafeMath = "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 2147, + "id": 875, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, - "src": "1316:1:10", + "referencedDeclaration": 860, + "src": "1316:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1311:6:10", + "src": "1311:6:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2192,18 +2192,18 @@ export const SafeMath = "typeString": "bool" } ], - "id": 2145, + "id": 873, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "1304:6:10", + "referencedDeclaration": 1425, + "src": "1304:6:4", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2149, + "id": 877, "isConstant": false, "isLValue": false, "isPure": false, @@ -2211,39 +2211,39 @@ export const SafeMath = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1304:14:10", + "src": "1304:14:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2150, + "id": 878, "nodeType": "ExpressionStatement", - "src": "1304:14:10" + "src": "1304:14:4" }, { "expression": { "argumentTypes": null, - "id": 2151, + "id": 879, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "1331:1:10", + "referencedDeclaration": 865, + "src": "1331:1:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2138, - "id": 2152, + "functionReturnParameters": 866, + "id": 880, "nodeType": "Return", - "src": "1324:8:10" + "src": "1324:8:4" } ] }, "documentation": "@dev Adds two numbers, throws on overflow.", - "id": 2154, + "id": 882, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2251,16 +2251,16 @@ export const SafeMath = "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 2135, + "id": 863, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2132, + "id": 860, "name": "a", "nodeType": "VariableDeclaration", - "scope": 2154, - "src": "1227:9:10", + "scope": 882, + "src": "1227:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2268,10 +2268,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2131, + "id": 859, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1227:7:10", + "src": "1227:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2282,11 +2282,11 @@ export const SafeMath = }, { "constant": false, - "id": 2134, + "id": 862, "name": "b", "nodeType": "VariableDeclaration", - "scope": 2154, - "src": "1238:9:10", + "scope": 882, + "src": "1238:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2294,10 +2294,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2133, + "id": 861, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1238:7:10", + "src": "1238:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2307,20 +2307,20 @@ export const SafeMath = "visibility": "internal" } ], - "src": "1226:22:10" + "src": "1226:22:4" }, "payable": false, "returnParameters": { - "id": 2138, + "id": 866, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2137, + "id": 865, "name": "c", "nodeType": "VariableDeclaration", - "scope": 2154, - "src": "1272:9:10", + "scope": 882, + "src": "1272:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2328,10 +2328,10 @@ export const SafeMath = "typeString": "uint256" }, "typeName": { - "id": 2136, + "id": 864, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1272:7:10", + "src": "1272:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2341,26 +2341,26 @@ export const SafeMath = "visibility": "internal" } ], - "src": "1271:11:10" + "src": "1271:11:4" }, - "scope": 2155, - "src": "1214:123:10", + "scope": 883, + "src": "1214:123:4", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 2156, - "src": "117:1222:10" + "scope": 884, + "src": "117:1222:4" } ], - "src": "0:1340:10" + "src": "0:1340:4" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.580Z" + "updatedAt": "2018-07-07T15:28:53.733Z" } \ No newline at end of file diff --git a/artifacts/ts/SetToken.ts b/artifacts/ts/SetToken.ts index 7d9b6c0c0..a4dfec363 100644 --- a/artifacts/ts/SetToken.ts +++ b/artifacts/ts/SetToken.ts @@ -137,6 +137,20 @@ export const SetToken = "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "factory", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -208,6 +222,10 @@ export const SetToken = }, { "inputs": [ + { + "name": "_factory", + "type": "address" + }, { "name": "_components", "type": "address[]" @@ -219,84 +237,19 @@ export const SetToken = { "name": "_naturalUnit", "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_sender", - "type": "address" - }, - { - "indexed": false, - "name": "_quantity", - "type": "uint256" - }, - { - "indexed": false, - "name": "_excludedComponents", - "type": "bytes32" - } - ], - "name": "LogPartialRedemption", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_sender", - "type": "address" - }, - { - "indexed": false, - "name": "_components", - "type": "bytes32" - } - ], - "name": "LogRedeemExcluded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_sender", - "type": "address" }, { - "indexed": false, - "name": "_quantity", - "type": "uint256" - } - ], - "name": "LogIssuance", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_sender", - "type": "address" + "name": "_name", + "type": "string" }, { - "indexed": false, - "name": "_quantity", - "type": "uint256" + "name": "_symbol", + "type": "string" } ], - "name": "LogRedemption", - "type": "event" + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" }, { "anonymous": false, @@ -346,36 +299,16 @@ export const SetToken = "constant": false, "inputs": [ { - "name": "_quantity", - "type": "uint256" - } - ], - "name": "issue", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ + "name": "_issuer", + "type": "address" + }, { "name": "_quantity", "type": "uint256" } ], - "name": "redeem", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], + "name": "mint", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" @@ -384,40 +317,16 @@ export const SetToken = "constant": false, "inputs": [ { - "name": "_quantity", - "type": "uint256" + "name": "_from", + "type": "address" }, { - "name": "_componentsToExclude", - "type": "bytes32" - } - ], - "name": "partialRedeem", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_componentsToRedeem", - "type": "bytes32" - } - ], - "name": "redeemExcluded", - "outputs": [ - { - "name": "", - "type": "bool" + "name": "_quantity", + "type": "uint256" } ], + "name": "burn", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" @@ -450,29 +359,6 @@ export const SetToken = "stateMutability": "view", "type": "function" }, - { - "constant": true, - "inputs": [ - { - "name": "_componentAddress", - "type": "address" - }, - { - "name": "_userAddress", - "type": "address" - } - ], - "name": "getUnredeemedBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": false, "inputs": [ @@ -524,105 +410,94 @@ export const SetToken = "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162003b8a38038062003b8a83398101806040526200003791908101906200069e565b6000806000602060405190810160405280600081525060206040519081016040528060008152506012826003908051906020019062000078929190620004a5565b50816004908051906020019062000091929190620004a5565b5080600560006101000a81548160ff021916908360ff16021790555050505083600081111515620000c157600080fd5b600087511115156200010a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001019062000915565b60405180910390fd5b6000865111151562000153576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014a9062000937565b60405180910390fd5b855187511415156200019c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001939062000959565b60405180910390fd5b84600681905550600093505b85518461ffff1610156200041657858461ffff16815181101515620001c957fe5b9060200190602002015192506000831115156200021d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200021490620008d1565b60405180910390fd5b868461ffff168151811015156200023057fe5b906020019060200201519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515620002b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002a890620008f3565b60405180910390fd5b620002cb8262000423640100000000026401000000009004565b151515620002d857600080fd5b60016008600084604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600760408051908101604052808473ffffffffffffffffffffffffffffffffffffffff168152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050508380600101945050620001a8565b5050505050505062000a25565b60006008600083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004e857805160ff191683800117855562000519565b8280016001018555821562000519579182015b8281111562000518578251825591602001919060010190620004fb565b5b5090506200052891906200052c565b5090565b6200055191905b808211156200054d57600081600090555060010162000533565b5090565b90565b6000620005628251620009fb565b905092915050565b600082601f83011215156200057e57600080fd5b8151620005956200058f82620009a9565b6200097b565b91508181835260208401935060208101905083856020840282011115620005bb57600080fd5b60005b83811015620005ef5781620005d4888262000554565b845260208401935060208301925050600181019050620005be565b5050505092915050565b600082601f83011215156200060d57600080fd5b8151620006246200061e82620009d2565b6200097b565b915081818352602084019350602081019050838560208402820111156200064a57600080fd5b60005b838110156200067e578162000663888262000688565b8452602084019350602083019250506001810190506200064d565b5050505092915050565b600062000696825162000a1b565b905092915050565b600080600060608486031215620006b457600080fd5b600084015167ffffffffffffffff811115620006cf57600080fd5b620006dd868287016200056a565b935050602084015167ffffffffffffffff811115620006fb57600080fd5b6200070986828701620005f9565b92505060406200071c8682870162000688565b9150509250925092565b6000602282527f556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a6560208301527f726f0000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602582527f436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616460208301527f64726573730000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602982527f436f6d706f6e656e74206c656e677468206e6565647320746f2062652067726560208301527f6174207468616e203000000000000000000000000000000000000000000000006040830152606082019050919050565b6000601c82527f556e697473206d7573742062652067726561746572207468616e2030000000006020830152604082019050919050565b6000602b82527f436f6d706f6e656e7420616e6420756e6974206c656e67746873206d7573742060208301527f6265207468652073616d650000000000000000000000000000000000000000006040830152606082019050919050565b60006020820190508181036000830152620008ec8162000726565b9050919050565b600060208201905081810360008301526200090e8162000783565b9050919050565b600060208201905081810360008301526200093081620007e0565b9050919050565b6000602082019050818103600083015262000952816200083d565b9050919050565b60006020820190508181036000830152620009748162000874565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156200099f57600080fd5b8060405250919050565b600067ffffffffffffffff821115620009c157600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115620009ea57600080fd5b602082029050602081019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6131558062000a356000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461011757806306fdde0314610142578063095ea7b31461016d57806315698812146101aa57806318160ddd146101e757806323b872dd14610212578063313ce5671461024f57806338c7db751461027a57806342a7cfd5146102b757806366188463146102e257806370a082311461031f57806395d89b411461035c57806399d50d5d14610387578063a9059cbb146103b2578063b5d65f61146103ef578063c5d574fe1461042c578063cc872b661461046a578063d73dd623146104a7578063db006a75146104e4578063dd62ed3e14610521575b600080fd5b34801561012357600080fd5b5061012c61055e565b6040516101399190612e8f565b60405180910390f35b34801561014e57600080fd5b5061015761060a565b6040516101649190612f02565b60405180910390f35b34801561017957600080fd5b50610194600480360361018f9190810190612a94565b6106a8565b6040516101a19190612eb1565b60405180910390f35b3480156101b657600080fd5b506101d160048036036101cc9190810190612af9565b61079a565b6040516101de9190612eb1565b60405180910390f35b3480156101f357600080fd5b506101fc610a32565b6040516102099190612f84565b60405180910390f35b34801561021e57600080fd5b5061023960048036036102349190810190612a45565b610a3c565b6040516102469190612eb1565b60405180910390f35b34801561025b57600080fd5b50610264610acb565b6040516102719190612fc8565b60405180910390f35b34801561028657600080fd5b506102a1600480360361029c9190810190612a09565b610ade565b6040516102ae9190612f84565b60405180910390f35b3480156102c357600080fd5b506102cc610be9565b6040516102d99190612f84565b60405180910390f35b3480156102ee57600080fd5b5061030960048036036103049190810190612a94565b610bef565b6040516103169190612eb1565b60405180910390f35b34801561032b57600080fd5b50610346600480360361034191908101906129e0565b610e80565b6040516103539190612f84565b60405180910390f35b34801561036857600080fd5b50610371610ec8565b60405161037e9190612f02565b60405180910390f35b34801561039357600080fd5b5061039c610f66565b6040516103a99190612e6d565b60405180910390f35b3480156103be57600080fd5b506103d960048036036103d49190810190612a94565b611060565b6040516103e69190612eb1565b60405180910390f35b3480156103fb57600080fd5b5061041660048036036104119190810190612b74565b6110ed565b6040516104239190612eb1565b60405180910390f35b34801561043857600080fd5b50610453600480360361044e9190810190612b22565b611622565b604051610461929190612e44565b60405180910390f35b34801561047657600080fd5b50610491600480360361048c9190810190612b22565b611675565b60405161049e9190612eb1565b60405180910390f35b3480156104b357600080fd5b506104ce60048036036104c99190810190612a94565b6119d7565b6040516104db9190612eb1565b60405180910390f35b3480156104f057600080fd5b5061050b60048036036105069190810190612b22565b611bd3565b6040516105189190612eb1565b60405180910390f35b34801561052d57600080fd5b5061054860048036036105439190810190612a09565b611fb8565b6040516105559190612f84565b60405180910390f35b60608060006007805490506040519080825280602002602001820160405280156105975781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156106025760078161ffff168154811015156105c357fe5b906000526020600020906002020160010154828261ffff168151811015156105e757fe5b9060200190602002018181525050808060010191505061059f565b819250505090565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107889190612f84565b60405180910390a36001905092915050565b600080600080600060010285600019161115156107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e390612f44565b60405180910390fd5b600092505b6007805490508361ffff1610156109d85760006001028360020a61ffff1660010286166000191611156109cb5760078361ffff1681548110151561083157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600960008461ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960008561ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161096d929190612e44565b602060405180830381600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109bf9190810190612ad0565b15156109ca57600080fd5b5b82806001019350506107f1565b3373ffffffffffffffffffffffffffffffffffffffff167f49e084e0b5b0bd93a9af05d1992881e35dee865cfbddbee0f1adea644fcaae1386604051610a1e9190612ecc565b60405180910390a260019350505050919050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a7b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ab657600080fd5b610ac185858561203f565b9150509392505050565b600560009054906101000a900460ff1681565b6000806000610aec856123f9565b1515610af757600080fd5b600090505b600780549050811015610b8e578473ffffffffffffffffffffffffffffffffffffffff16600782815481101515610b2f57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b81578091505b8080600101915050610afc565b6009600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505092915050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d00576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d94565b610d13838261247b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610e6d9190612f84565b60405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b505050505081565b6060806000600780549050604051908082528060200260200182016040528015610f9f5781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156110585760078161ffff16815481101515610fcb57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561100f57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610fa7565b819250505090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561109f57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156110da57600080fd5b6110e48484612494565b91505092915050565b60008060008060008660006006548281151561110557fe5b0614151561111257600080fd5b8760008111151561112257600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612f24565b60405180910390fd5b600060010289600019161115156111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612f64565b60405180910390fd5b6111fb8a6126b3565b600096505b6007805490508761ffff1610156115c15761123f60078861ffff1681548110151561122757fe5b9060005260206000209060020201600101548b6127ca565b955060006001028760020a61ffff166001028a166000191611156112c45785600960008961ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506115b4565b60078761ffff168154811015156112d757fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161135d9190612ee7565b602060405180830381600087803b15801561137757600080fd5b505af115801561138b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113af9190810190612b4b565b945060078761ffff168154811015156113c457fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33886040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161144c929190612e44565b602060405180830381600087803b15801561146657600080fd5b505af115801561147a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061149e9190810190612ad0565b15156114a957600080fd5b60078761ffff168154811015156114bc57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016115429190612ee7565b602060405180830381600087803b15801561155c57600080fd5b505af1158015611570573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115949190810190612b4b565b9350836115aa878761247b90919063ffffffff16565b1415156115b357fe5b5b8680600101975050611200565b3373ffffffffffffffffffffffffffffffffffffffff167f3d769c4a894e0b550ed0fa6c7342fa3c9261c59842db6606168cf3f3288eccfa8b8b604051611609929190612f9f565b60405180910390a2600197505050505050505092915050565b60078181548110151561163157fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60008060008060008060008760006006548281151561169057fe5b0614151561169d57600080fd5b886000811115156116ad57600080fd5b600097505b6007805490508861ffff16101561196f5760078861ffff168154811015156116d657fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16965060078861ffff1681548110151561171d57fe5b90600052602060002090600202016001015495508673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016117869190612ee7565b602060405180830381600087803b1580156117a057600080fd5b505af11580156117b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117d89190810190612b4b565b94506117e4868b6127ca565b93508673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161183f93929190612e0d565b602060405180830381600087803b15801561185957600080fd5b505af115801561186d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118919190810190612ad0565b151561189c57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016118f19190612ee7565b602060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119439190810190612b4b565b92508261195985876127fb90919063ffffffff16565b14151561196257fe5b87806001019850506116b2565b6119788a612817565b3373ffffffffffffffffffffffffffffffffffffffff167ffbd21f8762dc0c4fc0dbc03a2f816a0a617102a0f9d1908bbc09d377a0b9c6ab8b6040516119be9190612f84565b60405180910390a2600198505050505050505050919050565b6000611a6882600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051611bc19190612f84565b60405180910390a36001905092915050565b600080600080600080600087600060065482811515611bee57fe5b06141515611bfb57600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690612f24565b60405180910390fd5b89600081111515611c8f57600080fd5b611c988b6126b3565b600098505b6007805490508961ffff161015611f585760078961ffff16815481101515611cc157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16975060078961ffff16815481101515611d0857fe5b90600052602060002090600202016001015496508773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611d719190612ee7565b602060405180830381600087803b158015611d8b57600080fd5b505af1158015611d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dc39190810190612b4b565b9550611dcf878c6127ca565b94508773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611e28929190612e44565b602060405180830381600087803b158015611e4257600080fd5b505af1158015611e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e7a9190810190612ad0565b1515611e8557600080fd5b8773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611eda9190612ee7565b602060405180830381600087803b158015611ef457600080fd5b505af1158015611f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f2c9190810190612b4b565b935083611f42868861247b90919063ffffffff16565b141515611f4b57fe5b8880600101995050611c9d565b3373ffffffffffffffffffffffffffffffffffffffff167f2de3ebe1bb56079998f2617612ba527a2690a100757600dfc0d7253c808b74298c604051611f9e9190612f84565b60405180910390a260019950505050505050505050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561207c57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156120c957600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561215457600080fd5b6121a5826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612238826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123e69190612f84565b60405180910390a3600190509392505050565b60006008600083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b600082821115151561248957fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156124d157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561251e57600080fd5b61256f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612602826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126a19190612f84565b60405180910390a36001905092915050565b612704816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061275b8160015461247b90919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127bf9190612f84565b60405180910390a350565b60006127f3836127e56006548561292e90919063ffffffff16565b61294490919063ffffffff16565b905092915050565b6000818301905082811015151561280e57fe5b80905092915050565b612868816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128bf816001546127fb90919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129239190612f84565b60405180910390a350565b6000818381151561293b57fe5b04905092915050565b6000808314156129575760009050612976565b818302905081838281151561296857fe5b0414151561297257fe5b8090505b92915050565b60006129888235613085565b905092915050565b600061299c82516130a5565b905092915050565b60006129b082356130b1565b905092915050565b60006129c482356130bb565b905092915050565b60006129d882516130bb565b905092915050565b6000602082840312156129f257600080fd5b6000612a008482850161297c565b91505092915050565b60008060408385031215612a1c57600080fd5b6000612a2a8582860161297c565b9250506020612a3b8582860161297c565b9150509250929050565b600080600060608486031215612a5a57600080fd5b6000612a688682870161297c565b9350506020612a798682870161297c565b9250506040612a8a868287016129b8565b9150509250925092565b60008060408385031215612aa757600080fd5b6000612ab58582860161297c565b9250506020612ac6858286016129b8565b9150509250929050565b600060208284031215612ae257600080fd5b6000612af084828501612990565b91505092915050565b600060208284031215612b0b57600080fd5b6000612b19848285016129a4565b91505092915050565b600060208284031215612b3457600080fd5b6000612b42848285016129b8565b91505092915050565b600060208284031215612b5d57600080fd5b6000612b6b848285016129cc565b91505092915050565b60008060408385031215612b8757600080fd5b6000612b95858286016129b8565b9250506020612ba6858286016129a4565b9150509250929050565b612bb981613038565b82525050565b6000612bca82612ffd565b808452602084019350612bdc83612fe3565b60005b82811015612c0e57612bf2868351612bb0565b612bfb8261301e565b9150602086019550600181019050612bdf565b50849250505092915050565b6000612c2582613008565b808452602084019350612c3783612ff0565b60005b82811015612c6957612c4d868351612def565b612c568261302b565b9150602086019550600181019050612c3a565b50849250505092915050565b612c7e81613058565b82525050565b612c8d81613064565b82525050565b612c9c816130c5565b82525050565b6000612cad82613013565b808452612cc18160208601602086016130d7565b612cca8161310a565b602085010191505092915050565b6000602582527f5573657220646f6573206e6f7420686176652073756666696369656e7420626160208301527f6c616e63650000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602582527f436f6d706f6e656e747320746f2072656465656d206d757374206265206e6f6e60208301527f2d7a65726f0000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602482527f4578636c7564656420636f6d706f6e656e7473206d757374206265206e6f6e2d60208301527f7a65726f000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b612df88161306e565b82525050565b612e0781613078565b82525050565b6000606082019050612e226000830186612bb0565b612e2f6020830185612c93565b612e3c6040830184612def565b949350505050565b6000604082019050612e596000830185612bb0565b612e666020830184612def565b9392505050565b60006020820190508181036000830152612e878184612bbf565b905092915050565b60006020820190508181036000830152612ea98184612c1a565b905092915050565b6000602082019050612ec66000830184612c75565b92915050565b6000602082019050612ee16000830184612c84565b92915050565b6000602082019050612efc6000830184612c93565b92915050565b60006020820190508181036000830152612f1c8184612ca2565b905092915050565b60006020820190508181036000830152612f3d81612cd8565b9050919050565b60006020820190508181036000830152612f5d81612d35565b9050919050565b60006020820190508181036000830152612f7d81612d92565b9050919050565b6000602082019050612f996000830184612def565b92915050565b6000604082019050612fb46000830185612def565b612fc16020830184612c84565b9392505050565b6000602082019050612fdd6000830184612dfe565b92915050565b6000602082019050919050565b6000602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b60006130d082613038565b9050919050565b60005b838110156130f55780820151818401526020810190506130da565b83811115613104576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820805f242316e68b7836682369632fcea18dc45fcb1c42c4f40e6f3028e71265e36c6578706572696d656e74616cf50037", - "deployedBytecode": "0x608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461011757806306fdde0314610142578063095ea7b31461016d57806315698812146101aa57806318160ddd146101e757806323b872dd14610212578063313ce5671461024f57806338c7db751461027a57806342a7cfd5146102b757806366188463146102e257806370a082311461031f57806395d89b411461035c57806399d50d5d14610387578063a9059cbb146103b2578063b5d65f61146103ef578063c5d574fe1461042c578063cc872b661461046a578063d73dd623146104a7578063db006a75146104e4578063dd62ed3e14610521575b600080fd5b34801561012357600080fd5b5061012c61055e565b6040516101399190612e8f565b60405180910390f35b34801561014e57600080fd5b5061015761060a565b6040516101649190612f02565b60405180910390f35b34801561017957600080fd5b50610194600480360361018f9190810190612a94565b6106a8565b6040516101a19190612eb1565b60405180910390f35b3480156101b657600080fd5b506101d160048036036101cc9190810190612af9565b61079a565b6040516101de9190612eb1565b60405180910390f35b3480156101f357600080fd5b506101fc610a32565b6040516102099190612f84565b60405180910390f35b34801561021e57600080fd5b5061023960048036036102349190810190612a45565b610a3c565b6040516102469190612eb1565b60405180910390f35b34801561025b57600080fd5b50610264610acb565b6040516102719190612fc8565b60405180910390f35b34801561028657600080fd5b506102a1600480360361029c9190810190612a09565b610ade565b6040516102ae9190612f84565b60405180910390f35b3480156102c357600080fd5b506102cc610be9565b6040516102d99190612f84565b60405180910390f35b3480156102ee57600080fd5b5061030960048036036103049190810190612a94565b610bef565b6040516103169190612eb1565b60405180910390f35b34801561032b57600080fd5b50610346600480360361034191908101906129e0565b610e80565b6040516103539190612f84565b60405180910390f35b34801561036857600080fd5b50610371610ec8565b60405161037e9190612f02565b60405180910390f35b34801561039357600080fd5b5061039c610f66565b6040516103a99190612e6d565b60405180910390f35b3480156103be57600080fd5b506103d960048036036103d49190810190612a94565b611060565b6040516103e69190612eb1565b60405180910390f35b3480156103fb57600080fd5b5061041660048036036104119190810190612b74565b6110ed565b6040516104239190612eb1565b60405180910390f35b34801561043857600080fd5b50610453600480360361044e9190810190612b22565b611622565b604051610461929190612e44565b60405180910390f35b34801561047657600080fd5b50610491600480360361048c9190810190612b22565b611675565b60405161049e9190612eb1565b60405180910390f35b3480156104b357600080fd5b506104ce60048036036104c99190810190612a94565b6119d7565b6040516104db9190612eb1565b60405180910390f35b3480156104f057600080fd5b5061050b60048036036105069190810190612b22565b611bd3565b6040516105189190612eb1565b60405180910390f35b34801561052d57600080fd5b5061054860048036036105439190810190612a09565b611fb8565b6040516105559190612f84565b60405180910390f35b60608060006007805490506040519080825280602002602001820160405280156105975781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156106025760078161ffff168154811015156105c357fe5b906000526020600020906002020160010154828261ffff168151811015156105e757fe5b9060200190602002018181525050808060010191505061059f565b819250505090565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107889190612f84565b60405180910390a36001905092915050565b600080600080600060010285600019161115156107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e390612f44565b60405180910390fd5b600092505b6007805490508361ffff1610156109d85760006001028360020a61ffff1660010286166000191611156109cb5760078361ffff1681548110151561083157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600960008461ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960008561ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161096d929190612e44565b602060405180830381600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109bf9190810190612ad0565b15156109ca57600080fd5b5b82806001019350506107f1565b3373ffffffffffffffffffffffffffffffffffffffff167f49e084e0b5b0bd93a9af05d1992881e35dee865cfbddbee0f1adea644fcaae1386604051610a1e9190612ecc565b60405180910390a260019350505050919050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a7b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ab657600080fd5b610ac185858561203f565b9150509392505050565b600560009054906101000a900460ff1681565b6000806000610aec856123f9565b1515610af757600080fd5b600090505b600780549050811015610b8e578473ffffffffffffffffffffffffffffffffffffffff16600782815481101515610b2f57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b81578091505b8080600101915050610afc565b6009600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505092915050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d00576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d94565b610d13838261247b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610e6d9190612f84565b60405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b505050505081565b6060806000600780549050604051908082528060200260200182016040528015610f9f5781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156110585760078161ffff16815481101515610fcb57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561100f57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610fa7565b819250505090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561109f57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156110da57600080fd5b6110e48484612494565b91505092915050565b60008060008060008660006006548281151561110557fe5b0614151561111257600080fd5b8760008111151561112257600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612f24565b60405180910390fd5b600060010289600019161115156111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612f64565b60405180910390fd5b6111fb8a6126b3565b600096505b6007805490508761ffff1610156115c15761123f60078861ffff1681548110151561122757fe5b9060005260206000209060020201600101548b6127ca565b955060006001028760020a61ffff166001028a166000191611156112c45785600960008961ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506115b4565b60078761ffff168154811015156112d757fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161135d9190612ee7565b602060405180830381600087803b15801561137757600080fd5b505af115801561138b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113af9190810190612b4b565b945060078761ffff168154811015156113c457fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33886040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161144c929190612e44565b602060405180830381600087803b15801561146657600080fd5b505af115801561147a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061149e9190810190612ad0565b15156114a957600080fd5b60078761ffff168154811015156114bc57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016115429190612ee7565b602060405180830381600087803b15801561155c57600080fd5b505af1158015611570573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115949190810190612b4b565b9350836115aa878761247b90919063ffffffff16565b1415156115b357fe5b5b8680600101975050611200565b3373ffffffffffffffffffffffffffffffffffffffff167f3d769c4a894e0b550ed0fa6c7342fa3c9261c59842db6606168cf3f3288eccfa8b8b604051611609929190612f9f565b60405180910390a2600197505050505050505092915050565b60078181548110151561163157fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60008060008060008060008760006006548281151561169057fe5b0614151561169d57600080fd5b886000811115156116ad57600080fd5b600097505b6007805490508861ffff16101561196f5760078861ffff168154811015156116d657fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16965060078861ffff1681548110151561171d57fe5b90600052602060002090600202016001015495508673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016117869190612ee7565b602060405180830381600087803b1580156117a057600080fd5b505af11580156117b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117d89190810190612b4b565b94506117e4868b6127ca565b93508673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161183f93929190612e0d565b602060405180830381600087803b15801561185957600080fd5b505af115801561186d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118919190810190612ad0565b151561189c57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016118f19190612ee7565b602060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119439190810190612b4b565b92508261195985876127fb90919063ffffffff16565b14151561196257fe5b87806001019850506116b2565b6119788a612817565b3373ffffffffffffffffffffffffffffffffffffffff167ffbd21f8762dc0c4fc0dbc03a2f816a0a617102a0f9d1908bbc09d377a0b9c6ab8b6040516119be9190612f84565b60405180910390a2600198505050505050505050919050565b6000611a6882600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051611bc19190612f84565b60405180910390a36001905092915050565b600080600080600080600087600060065482811515611bee57fe5b06141515611bfb57600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690612f24565b60405180910390fd5b89600081111515611c8f57600080fd5b611c988b6126b3565b600098505b6007805490508961ffff161015611f585760078961ffff16815481101515611cc157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16975060078961ffff16815481101515611d0857fe5b90600052602060002090600202016001015496508773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611d719190612ee7565b602060405180830381600087803b158015611d8b57600080fd5b505af1158015611d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dc39190810190612b4b565b9550611dcf878c6127ca565b94508773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611e28929190612e44565b602060405180830381600087803b158015611e4257600080fd5b505af1158015611e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e7a9190810190612ad0565b1515611e8557600080fd5b8773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611eda9190612ee7565b602060405180830381600087803b158015611ef457600080fd5b505af1158015611f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f2c9190810190612b4b565b935083611f42868861247b90919063ffffffff16565b141515611f4b57fe5b8880600101995050611c9d565b3373ffffffffffffffffffffffffffffffffffffffff167f2de3ebe1bb56079998f2617612ba527a2690a100757600dfc0d7253c808b74298c604051611f9e9190612f84565b60405180910390a260019950505050505050505050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561207c57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156120c957600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561215457600080fd5b6121a5826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612238826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123e69190612f84565b60405180910390a3600190509392505050565b60006008600083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b600082821115151561248957fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156124d157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561251e57600080fd5b61256f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612602826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126a19190612f84565b60405180910390a36001905092915050565b612704816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061275b8160015461247b90919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127bf9190612f84565b60405180910390a350565b60006127f3836127e56006548561292e90919063ffffffff16565b61294490919063ffffffff16565b905092915050565b6000818301905082811015151561280e57fe5b80905092915050565b612868816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128bf816001546127fb90919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129239190612f84565b60405180910390a350565b6000818381151561293b57fe5b04905092915050565b6000808314156129575760009050612976565b818302905081838281151561296857fe5b0414151561297257fe5b8090505b92915050565b60006129888235613085565b905092915050565b600061299c82516130a5565b905092915050565b60006129b082356130b1565b905092915050565b60006129c482356130bb565b905092915050565b60006129d882516130bb565b905092915050565b6000602082840312156129f257600080fd5b6000612a008482850161297c565b91505092915050565b60008060408385031215612a1c57600080fd5b6000612a2a8582860161297c565b9250506020612a3b8582860161297c565b9150509250929050565b600080600060608486031215612a5a57600080fd5b6000612a688682870161297c565b9350506020612a798682870161297c565b9250506040612a8a868287016129b8565b9150509250925092565b60008060408385031215612aa757600080fd5b6000612ab58582860161297c565b9250506020612ac6858286016129b8565b9150509250929050565b600060208284031215612ae257600080fd5b6000612af084828501612990565b91505092915050565b600060208284031215612b0b57600080fd5b6000612b19848285016129a4565b91505092915050565b600060208284031215612b3457600080fd5b6000612b42848285016129b8565b91505092915050565b600060208284031215612b5d57600080fd5b6000612b6b848285016129cc565b91505092915050565b60008060408385031215612b8757600080fd5b6000612b95858286016129b8565b9250506020612ba6858286016129a4565b9150509250929050565b612bb981613038565b82525050565b6000612bca82612ffd565b808452602084019350612bdc83612fe3565b60005b82811015612c0e57612bf2868351612bb0565b612bfb8261301e565b9150602086019550600181019050612bdf565b50849250505092915050565b6000612c2582613008565b808452602084019350612c3783612ff0565b60005b82811015612c6957612c4d868351612def565b612c568261302b565b9150602086019550600181019050612c3a565b50849250505092915050565b612c7e81613058565b82525050565b612c8d81613064565b82525050565b612c9c816130c5565b82525050565b6000612cad82613013565b808452612cc18160208601602086016130d7565b612cca8161310a565b602085010191505092915050565b6000602582527f5573657220646f6573206e6f7420686176652073756666696369656e7420626160208301527f6c616e63650000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602582527f436f6d706f6e656e747320746f2072656465656d206d757374206265206e6f6e60208301527f2d7a65726f0000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602482527f4578636c7564656420636f6d706f6e656e7473206d757374206265206e6f6e2d60208301527f7a65726f000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b612df88161306e565b82525050565b612e0781613078565b82525050565b6000606082019050612e226000830186612bb0565b612e2f6020830185612c93565b612e3c6040830184612def565b949350505050565b6000604082019050612e596000830185612bb0565b612e666020830184612def565b9392505050565b60006020820190508181036000830152612e878184612bbf565b905092915050565b60006020820190508181036000830152612ea98184612c1a565b905092915050565b6000602082019050612ec66000830184612c75565b92915050565b6000602082019050612ee16000830184612c84565b92915050565b6000602082019050612efc6000830184612c93565b92915050565b60006020820190508181036000830152612f1c8184612ca2565b905092915050565b60006020820190508181036000830152612f3d81612cd8565b9050919050565b60006020820190508181036000830152612f5d81612d35565b9050919050565b60006020820190508181036000830152612f7d81612d92565b9050919050565b6000602082019050612f996000830184612def565b92915050565b6000604082019050612fb46000830185612def565b612fc16020830184612c84565b9392505050565b6000602082019050612fdd6000830184612dfe565b92915050565b6000602082019050919050565b6000602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b60006130d082613038565b9050919050565b60005b838110156130f55780820151818401526020810190506130da565b83811115613104576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820805f242316e68b7836682369632fcea18dc45fcb1c42c4f40e6f3028e71265e36c6578706572696d656e74616cf50037", - "sourceMap": "485:13419:1:-;;;2810:1700;8:9:-1;5:2;;;30:1;27;20:12;5:2;2810:1700:1;;;;;;;;;;;;;;;;;;;;;;;;3677:8;3811:17;3985:24;391:137:13;;;;;;;;;;;;;;;;;;;;;;;;;;551:2:1;470:5:13;463:4;:12;;;;;;;;;;;;:::i;:::-;;490:7;481:6;:16;;;;;;;;;;;;:::i;:::-;;514:9;503:8;;:20;;;;;;;;;;;;;;;;;;391:137;;;2927:12:1;2497:1;2485:9;:13;2477:22;;;;;;;;3038:1;3017:11;:18;:22;3009:76;;;;;;;;;;;;;;;;;;;;;;;;3163:1;3147:6;:13;:17;3139:58;;;;;;;;;;;;;;;;;;;;;;;;3305:6;:13;3283:11;:18;:35;3275:91;;;;;;;;;;;;;;;;;;;;;;;;3391:12;3377:11;:26;;;;3688:1;3677:12;;3672:832;3695:6;:13;3691:1;:17;;;3672:832;;;3831:6;3838:1;3831:9;;;;;;;;;;;;;;;;;;;;3811:29;;3877:1;3862:12;:16;3854:63;;;;;;;;;;;;;;;;;;;;;;;;4012:11;4024:1;4012:14;;;;;;;;;;;;;;;;;;;;3985:41;;4076:1;4048:30;;:16;:30;;;;4040:80;;;;;;;;;;;;;;;;;;;;;;;;4206:34;4223:16;4206;;;:34;;;:::i;:::-;4205:35;4197:44;;;;;;;;4351:4;4308:11;:40;4330:16;4320:27;;;;;;;;;;;;;;;;;;;;;;;;4308:40;;;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;4370:10;4386:106;;;;;;;;;4424:16;4386:106;;;;;;4465:12;4386:106;;;4370:123;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;4370:123:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3710:3;;;;;;;3672:832;;;2810:1700;;;;;;;485:13419;;12996:181;13106:4;13133:11;:37;13155:13;13145:24;;;;;;;;;;;;;;;;;;;;;;;;13133:37;;;;;;;;;;;;;;;;;;;;;;;;;;;13126:44;;12996:181;;;:::o;485:13419::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:122:-1:-;;83:39;114:6;108:13;83:39;;;74:48;;68:59;;;;;152:722;;280:3;273:4;265:6;261:17;257:27;250:35;247:2;;;298:1;295;288:12;247:2;328:6;322:13;350:80;365:64;422:6;365:64;;;350:80;;;341:89;;447:5;472:6;465:5;458:21;502:4;494:6;490:17;480:27;;524:4;519:3;515:14;508:21;;577:6;624:3;616:4;608:6;604:17;599:3;595:27;592:36;589:2;;;641:1;638;631:12;589:2;666:1;651:217;676:6;673:1;670:13;651:217;;;734:3;756:48;800:3;788:10;756:48;;;751:3;744:61;828:4;823:3;819:14;812:21;;856:4;851:3;847:14;840:21;;708:160;698:1;695;691:9;686:14;;651:217;;;655:14;240:634;;;;;;;;900:722;;1028:3;1021:4;1013:6;1009:17;1005:27;998:35;995:2;;;1046:1;1043;1036:12;995:2;1076:6;1070:13;1098:80;1113:64;1170:6;1113:64;;;1098:80;;;1089:89;;1195:5;1220:6;1213:5;1206:21;1250:4;1242:6;1238:17;1228:27;;1272:4;1267:3;1263:14;1256:21;;1325:6;1372:3;1364:4;1356:6;1352:17;1347:3;1343:27;1340:36;1337:2;;;1389:1;1386;1379:12;1337:2;1414:1;1399:217;1424:6;1421:1;1418:13;1399:217;;;1482:3;1504:48;1548:3;1536:10;1504:48;;;1499:3;1492:61;1576:4;1571:3;1567:14;1560:21;;1604:4;1599:3;1595:14;1588:21;;1456:160;1446:1;1443;1439:9;1434:14;;1399:217;;;1403:14;988:634;;;;;;;;1630:122;;1708:39;1739:6;1733:13;1708:39;;;1699:48;;1693:59;;;;;1759:793;;;;1958:2;1946:9;1937:7;1933:23;1929:32;1926:2;;;1974:1;1971;1964:12;1926:2;2030:1;2019:9;2015:17;2009:24;2053:18;2045:6;2042:30;2039:2;;;2085:1;2082;2075:12;2039:2;2105:89;2186:7;2177:6;2166:9;2162:22;2105:89;;;2095:99;;1988:212;2252:2;2241:9;2237:18;2231:25;2276:18;2268:6;2265:30;2262:2;;;2308:1;2305;2298:12;2262:2;2328:89;2409:7;2400:6;2389:9;2385:22;2328:89;;;2318:99;;2210:213;2454:2;2472:64;2528:7;2519:6;2508:9;2504:22;2472:64;;;2462:74;;2433:109;1920:632;;;;;;2560:397;;2715:2;2710:3;2703:15;2752:66;2747:2;2742:3;2738:12;2731:88;2853:66;2848:2;2843:3;2839:12;2832:88;2948:2;2943:3;2939:12;2932:19;;2696:261;;;;2966:397;;3121:2;3116:3;3109:15;3158:66;3153:2;3148:3;3144:12;3137:88;3259:66;3254:2;3249:3;3245:12;3238:88;3354:2;3349:3;3345:12;3338:19;;3102:261;;;;3372:397;;3527:2;3522:3;3515:15;3564:66;3559:2;3554:3;3550:12;3543:88;3665:66;3660:2;3655:3;3651:12;3644:88;3760:2;3755:3;3751:12;3744:19;;3508:261;;;;3778:296;;3933:2;3928:3;3921:15;3970:66;3965:2;3960:3;3956:12;3949:88;4065:2;4060:3;4056:12;4049:19;;3914:160;;;;4083:397;;4238:2;4233:3;4226:15;4275:66;4270:2;4265:3;4261:12;4254:88;4376:66;4371:2;4366:3;4362:12;4355:88;4471:2;4466:3;4462:12;4455:19;;4219:261;;;;4488:387;;4669:2;4658:9;4654:18;4646:26;;4719:9;4713:4;4709:20;4705:1;4694:9;4690:17;4683:47;4744:121;4860:4;4744:121;;;4736:129;;4640:235;;;;4882:387;;5063:2;5052:9;5048:18;5040:26;;5113:9;5107:4;5103:20;5099:1;5088:9;5084:17;5077:47;5138:121;5254:4;5138:121;;;5130:129;;5034:235;;;;5276:387;;5457:2;5446:9;5442:18;5434:26;;5507:9;5501:4;5497:20;5493:1;5482:9;5478:17;5471:47;5532:121;5648:4;5532:121;;;5524:129;;5428:235;;;;5670:387;;5851:2;5840:9;5836:18;5828:26;;5901:9;5895:4;5891:20;5887:1;5876:9;5872:17;5865:47;5926:121;6042:4;5926:121;;;5918:129;;5822:235;;;;6064:387;;6245:2;6234:9;6230:18;6222:26;;6295:9;6289:4;6285:20;6281:1;6270:9;6266:17;6259:47;6320:121;6436:4;6320:121;;;6312:129;;6216:235;;;;6458:256;;6520:2;6514:9;6504:19;;6558:4;6550:6;6546:17;6657:6;6645:10;6642:22;6621:18;6609:10;6606:34;6603:62;6600:2;;;6678:1;6675;6668:12;6600:2;6698:10;6694:2;6687:22;6498:216;;;;;6721:258;;6880:18;6872:6;6869:30;6866:2;;;6912:1;6909;6902:12;6866:2;6941:4;6933:6;6929:17;6921:25;;6969:4;6963;6959:15;6951:23;;6803:176;;;;6986:258;;7145:18;7137:6;7134:30;7131:2;;;7177:1;7174;7167:12;7131:2;7206:4;7198:6;7194:17;7186:25;;7234:4;7228;7224:15;7216:23;;7068:176;;;;7251:128;;7331:42;7324:5;7320:54;7309:65;;7303:76;;;;7386:79;;7455:5;7444:16;;7438:27;;;;485:13419:1;;;;;;;", - "deployedSourceMap": "485:13419:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11471:277;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11471:277:1;;;;;;;;;;;;;;;;;;;;319:18:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;319:18:13;;;;;;;;;;;;;;;;;;;;1829:188:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10193:788:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10193:788:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:12;;;;;;;;;;;;;;;;;;;;12606:230:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12606:230:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;365:21:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;365:21:13;;;;;;;;;;;;;;;;;;;;11754:495:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11754:495:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1023:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1023:23:1;;;;;;;;;;;;;;;;;;;;3701:425:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;341:20:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;341:20:13;;;;;;;;;;;;;;;;;;;;11131:334:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11131:334:1;;;;;;;;;;;;;;;;;;;;12408:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12408:192:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8161:1513;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8161:1513:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1052:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1052:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4999:1102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4999:1102:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6384:981:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6384:981:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11471:277:1;11535:6;11557:19;11623:8;11590:10;:17;;;;11579:29;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;11579:29:1;;;;11557:51;;11634:1;11623:12;;11618:102;11641:10;:17;;;;11637:1;:21;;;11618:102;;;11690:10;11701:1;11690:13;;;;;;;;;;;;;;;;;;;;;;:19;;;11679:5;11685:1;11679:8;;;;;;;;;;;;;;;;;;;:30;;;;;11660:3;;;;;;;11618:102;;;11736:5;11729:12;;11471:277;;;:::o;319:18:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:17:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;10193:788:1:-;10278:4;10387:8;10508:24;10575:21;10328:1;10306:23;;:19;:23;;;;10298:73;;;;;;;;;;;;;;;;;;;;;;;;10398:1;10387:12;;10382:505;10405:10;:17;;;;10401:1;:21;;;10382:505;;;10487:1;10447:41;;10482:1;10477;:6;10469:15;;;;10447:19;:37;:41;;;;10443:434;;;10535:10;10546:1;10535:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;10508:49;;10599:18;:21;10618:1;10599:21;;;;;;;;;;;;;:33;10621:10;10599:33;;;;;;;;;;;;;;;;10575:57;;10771:1;10735:18;:21;10754:1;10735:21;;;;;;;;;;;;;:33;10757:10;10735:33;;;;;;;;;;;;;;;:37;;;;10805:16;10799:32;;;10832:10;10844:16;10799:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10799:62:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10799:62:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10799:62:1;;;;;;;;;10791:71;;;;;;;;10443:434;10424:3;;;;;;;10382:505;;;10920:10;10902:50;;;10932:19;10902:50;;;;;;;;;;;;;;;10970:4;10963:11;;10193:788;;;;;;:::o;371:83:12:-;415:7;437:12;;430:19;;371:83;:::o;12606:230:1:-;12764:4;12727:3;2244:1;2229:17;;:3;:17;;;;2221:26;;;;;;;;2280:4;2265:20;;:3;:20;;;;2257:29;;;;;;;;12791:38;12810:5;12817:3;12822:6;12791:18;:38::i;:::-;12784:45;;12606:230;;;;;;:::o;365:21:13:-;;;;;;;;;;;;;:::o;11754:495:1:-;11900:7;11978:19;12013:6;11931:35;11948:17;11931:16;:35::i;:::-;11923:44;;;;;;;;12022:1;12013:10;;12008:169;12029:10;:17;;;;12025:1;:21;12008:169;;;12097:17;12071:43;;:10;12082:1;12071:13;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:43;;;12067:100;;;12151:1;12134:18;;12067:100;12048:3;;;;;;;12008:169;;;12194:18;:34;12213:14;12194:34;;;;;;;;;;;:48;12229:12;12194:48;;;;;;;;;;;;;;;;12187:55;;11754:495;;;;;;:::o;1023:23::-;;;;:::o;3701:425:17:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:12:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;341:20:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11131:334:1:-;11201:9;11226:35;11311:8;11278:10;:17;;;;11264:32;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;11264:32:1;;;;11226:70;;11322:1;11311:12;;11306:118;11329:10;:17;;;;11325:1;:21;;;11306:118;;;11391:10;11402:1;11391:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;11367:18;11386:1;11367:21;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;11348:3;;;;;;;11306:118;;;11440:18;11433:25;;11131:334;;;:::o;12408:192::-;12539:4;12502:3;2244:1;2229:17;;:3;:17;;;;2221:26;;;;;;;;2280:4;2265:20;;:3;:20;;;;2257:29;;;;;;;;12566:27;12581:3;12586:6;12566:14;:27::i;:::-;12559:34;;12408:192;;;;;:::o;8161:1513::-;8374:4;8634:8;8690:18;9098:23;9382:24;8277:9;2406:1;2390:11;;2378:9;:23;;;;;;;;2377:30;2369:39;;;;;;;;8306:9;2497:1;2485:9;:13;2477:22;;;;;;;;8346:9;2098:8;2074;:20;2083:10;2074:20;;;;;;;;;;;;;;;;:32;;2066:82;;;;;;;;;;;;;;;;;;;;;;;;8550:1;8527:24;;:20;:24;;;;8519:73;;;;;;;;;;;;;;;;;;;;;;;;8603:15;8608:9;8603:4;:15::i;:::-;8645:1;8634:12;;8629:936;8652:10;:17;;;;8648:1;:21;;;8629:936;;;8711:54;8734:10;8745:1;8734:13;;;;;;;;;;;;;;;;;;;;;;:19;;;8755:9;8711:22;:54::i;:::-;8690:75;;8988:1;8947:42;;8983:1;8978;:6;8970:15;;;;8947:20;:38;:42;;;;8943:612;;;9046:13;9009:18;:21;9028:1;9009:21;;;;;;;;;;;;;:33;9031:10;9009:33;;;;;;;;;;;;;;;;:50;;;;;;;;;;;8943:612;;;9130:10;9141:1;9130:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;9124:39;;;9164:4;9124:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9124:45:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9124:45:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9124:45:1;;;;;;;;;9098:71;;9202:10;9213:1;9202:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;9196:38;;;9235:10;9247:13;9196:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9196:65:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9196:65:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9196:65:1;;;;;;;;;9188:74;;;;;;;;9415:10;9426:1;9415:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;9409:39;;;9449:4;9409:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9409:45:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9409:45:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9409:45:1;;;;;;;;;9382:72;;9520:19;9479:37;9502:13;9479:18;:22;;:37;;;;:::i;:::-;:60;9472:68;;;;;;8943:612;8671:3;;;;;;;8629:936;;;9601:10;9580:65;;;9613:9;9624:20;9580:65;;;;;;;;;;;;;;;;9663:4;9656:11;;2509:1;2418;8161:1513;;;;;;;;;:::o;1052:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4999:1102::-;5126:4;5313:8;5369:24;5432:17;5486:23;5566:18;5838:24;5062:9;2406:1;2390:11;;2378:9;:23;;;;;;;;2377:30;2369:39;;;;;;;;5091:9;2497:1;2485:9;:13;2477:22;;;;;;;;5324:1;5313:12;;5308:689;5331:10;:17;;;;5327:1;:21;;;5308:689;;;5396:10;5407:1;5396:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;5369:49;;5452:10;5463:1;5452:13;;;;;;;;;;;;;;;;;;;;;;:19;;;5432:39;;5518:16;5512:33;;;5546:4;5512:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5512:39:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5512:39:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5512:39:1;;;;;;;;;5486:65;;5587:47;5610:12;5624:9;5587:22;:47::i;:::-;5566:68;;5662:16;5656:36;;;5693:10;5705:4;5711:13;5656:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5656:69:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5656:69:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5656:69:1;;;;;;;;;5648:78;;;;;;;;5871:16;5865:33;;;5899:4;5865:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5865:39:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5865:39:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5865:39:1;;;;;;;;;5838:66;;5966:19;5925:37;5948:13;5925:18;:22;;:37;;;;:::i;:::-;:60;5918:68;;;;;;5350:3;;;;;;;5308:689;;;6007:15;6012:9;6007:4;:15::i;:::-;6050:10;6038:34;;;6062:9;6038:34;;;;;;;;;;;;;;;6090:4;6083:11;;2418:1;4999:1102;;;;;;;;;;:::o;2946:293:17:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;6384:981:1:-;6560:4;6611:8;6667:24;6730:17;6784:23;6864:18;7126:24;6463:9;2406:1;2390:11;;2378:9;:23;;;;;;;;2377:30;2369:39;;;;;;;;6503:9;2098:8;2074;:20;2083:10;2074:20;;;;;;;;;;;;;;;;:32;;2066:82;;;;;;;;;;;;;;;;;;;;;;;;6532:9;2497:1;2485:9;:13;2477:22;;;;;;;;6580:15;6585:9;6580:4;:15::i;:::-;6622:1;6611:12;;6606:679;6629:10;:17;;;;6625:1;:21;;;6606:679;;;6694:10;6705:1;6694:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;6667:49;;6750:10;6761:1;6750:13;;;;;;;;;;;;;;;;;;;;;;:19;;;6730:39;;6816:16;6810:33;;;6844:4;6810:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6810:39:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6810:39:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6810:39:1;;;;;;;;;6784:65;;6885:47;6908:12;6922:9;6885:22;:47::i;:::-;6864:68;;6960:16;6954:32;;;6987:10;6999:13;6954:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6954:59:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6954:59:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6954:59:1;;;;;;;;;6946:68;;;;;;;;7159:16;7153:33;;;7187:4;7153:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7153:39:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7153:39:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7153:39:1;;;;;;;;;7126:66;;7254:19;7213:37;7236:13;7213:18;:22;;:37;;;;:::i;:::-;:60;7206:68;;;;;;6648:3;;;;;;;6606:679;;;7314:10;7300:36;;;7326:9;7300:36;;;;;;;;;;;;;;;7354:4;7347:11;;2158:1;2418;6384:981;;;;;;;;;;:::o;2336:153:17:-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;736:470::-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;12996:181:1:-;13106:4;13133:11;:37;13155:13;13145:24;;;;;;;;;;;;;;;;;;;;;;;;13133:37;;;;;;;;;;;;;;;;;;;;;;;;;;;13126:44;;12996:181;;;:::o;1042:110:10:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;608:321:12:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;13656:246:1:-;13753:34;13778:8;13753;:20;13762:10;13753:20;;;;;;;;;;;;;;;;:24;;:34;;;;:::i;:::-;13730:8;:20;13739:10;13730:20;;;;;;;;;;;;;;;:57;;;;13812:26;13829:8;13812:12;;:16;;:26;;;;:::i;:::-;13797:12;:41;;;;13882:1;13853:42;;13862:10;13853:42;;;13886:8;13853:42;;;;;;;;;;;;;;;13656:246;:::o;13183:215::-;13319:4;13346:45;13376:14;13346:25;13359:11;;13346:8;:12;;:25;;;;:::i;:::-;:29;;:45;;;;:::i;:::-;13339:52;;13183:215;;;;:::o;1214:123:10:-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;13404:246:1:-;13501:34;13526:8;13501;:20;13510:10;13501:20;;;;;;;;;;;;;;;;:24;;:34;;;;:::i;:::-;13478:8;:20;13487:10;13478:20;;;;;;;;;;;;;;;:57;;;;13560:26;13577:8;13560:12;;:16;;:26;;;;:::i;:::-;13545:12;:41;;;;13622:10;13601:42;;13618:1;13601:42;;;13634:8;13601:42;;;;;;;;;;;;;;;13404:246;:::o;658:272:10:-;716:7;924:1;920;:5;;;;;;;;913:12;;658:272;;;;:::o;203:373::-;261:9;492:1;487;:6;483:35;;;510:1;503:8;;;;483:35;532:1;528;:5;524:9;;555:1;550;546;:5;;;;;;;;:10;539:18;;;;;;570:1;563:8;;203:373;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;;57:66;;;;;130:116;;205:36;233:6;227:13;205:36;;;196:45;;190:56;;;;;253:118;;320:46;358:6;345:20;320:46;;;311:55;;305:66;;;;;378:118;;445:46;483:6;470:20;445:46;;;436:55;;430:66;;;;;503:122;;581:39;612:6;606:13;581:39;;;572:48;;566:59;;;;;632:241;;736:2;724:9;715:7;711:23;707:32;704:2;;;752:1;749;742:12;704:2;787:1;804:53;849:7;840:6;829:9;825:22;804:53;;;794:63;;766:97;698:175;;;;;880:366;;;1001:2;989:9;980:7;976:23;972:32;969:2;;;1017:1;1014;1007:12;969:2;1052:1;1069:53;1114:7;1105:6;1094:9;1090:22;1069:53;;;1059:63;;1031:97;1159:2;1177:53;1222:7;1213:6;1202:9;1198:22;1177:53;;;1167:63;;1138:98;963:283;;;;;;1253:491;;;;1391:2;1379:9;1370:7;1366:23;1362:32;1359:2;;;1407:1;1404;1397:12;1359:2;1442:1;1459:53;1504:7;1495:6;1484:9;1480:22;1459:53;;;1449:63;;1421:97;1549:2;1567:53;1612:7;1603:6;1592:9;1588:22;1567:53;;;1557:63;;1528:98;1657:2;1675:53;1720:7;1711:6;1700:9;1696:22;1675:53;;;1665:63;;1636:98;1353:391;;;;;;1751:366;;;1872:2;1860:9;1851:7;1847:23;1843:32;1840:2;;;1888:1;1885;1878:12;1840:2;1923:1;1940:53;1985:7;1976:6;1965:9;1961:22;1940:53;;;1930:63;;1902:97;2030:2;2048:53;2093:7;2084:6;2073:9;2069:22;2048:53;;;2038:63;;2009:98;1834:283;;;;;;2124:257;;2236:2;2224:9;2215:7;2211:23;2207:32;2204:2;;;2252:1;2249;2242:12;2204:2;2287:1;2304:61;2357:7;2348:6;2337:9;2333:22;2304:61;;;2294:71;;2266:105;2198:183;;;;;2388:241;;2492:2;2480:9;2471:7;2467:23;2463:32;2460:2;;;2508:1;2505;2498:12;2460:2;2543:1;2560:53;2605:7;2596:6;2585:9;2581:22;2560:53;;;2550:63;;2522:97;2454:175;;;;;2636:241;;2740:2;2728:9;2719:7;2715:23;2711:32;2708:2;;;2756:1;2753;2746:12;2708:2;2791:1;2808:53;2853:7;2844:6;2833:9;2829:22;2808:53;;;2798:63;;2770:97;2702:175;;;;;2884:263;;2999:2;2987:9;2978:7;2974:23;2970:32;2967:2;;;3015:1;3012;3005:12;2967:2;3050:1;3067:64;3123:7;3114:6;3103:9;3099:22;3067:64;;;3057:74;;3029:108;2961:186;;;;;3154:366;;;3275:2;3263:9;3254:7;3250:23;3246:32;3243:2;;;3291:1;3288;3281:12;3243:2;3326:1;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;;;3333:63;;3305:97;3433:2;3451:53;3496:7;3487:6;3476:9;3472:22;3451:53;;;3441:63;;3412:98;3237:283;;;;;;3527:110;3600:31;3625:5;3600:31;;;3595:3;3588:44;3582:55;;;3675:590;;3810:54;3858:5;3810:54;;;3882:6;3877:3;3870:19;3906:4;3901:3;3897:14;3890:21;;3951:56;4001:5;3951:56;;;4028:1;4013:230;4038:6;4035:1;4032:13;4013:230;;;4078:53;4127:3;4118:6;4112:13;4078:53;;;4148:60;4201:6;4148:60;;;4138:70;;4231:4;4226:3;4222:14;4215:21;;4060:1;4057;4053:9;4048:14;;4013:230;;;4017:14;4256:3;4249:10;;3789:476;;;;;;;4304:590;;4439:54;4487:5;4439:54;;;4511:6;4506:3;4499:19;4535:4;4530:3;4526:14;4519:21;;4580:56;4630:5;4580:56;;;4657:1;4642:230;4667:6;4664:1;4661:13;4642:230;;;4707:53;4756:3;4747:6;4741:13;4707:53;;;4777:60;4830:6;4777:60;;;4767:70;;4860:4;4855:3;4851:14;4844:21;;4689:1;4686;4682:9;4677:14;;4642:230;;;4646:14;4885:3;4878:10;;4418:476;;;;;;;4902:101;4969:28;4991:5;4969:28;;;4964:3;4957:41;4951:52;;;5010:110;5083:31;5108:5;5083:31;;;5078:3;5071:44;5065:55;;;5127:148;5216:53;5263:5;5216:53;;;5211:3;5204:66;5198:77;;;5282:292;;5380:35;5409:5;5380:35;;;5432:6;5427:3;5420:19;5444:63;5500:6;5493:4;5488:3;5484:14;5477:4;5470:5;5466:16;5444:63;;;5539:29;5561:6;5539:29;;;5532:4;5527:3;5523:14;5519:50;5512:57;;5360:214;;;;;;5582:397;;5737:2;5732:3;5725:15;5774:66;5769:2;5764:3;5760:12;5753:88;5875:66;5870:2;5865:3;5861:12;5854:88;5970:2;5965:3;5961:12;5954:19;;5718:261;;;;5988:397;;6143:2;6138:3;6131:15;6180:66;6175:2;6170:3;6166:12;6159:88;6281:66;6276:2;6271:3;6267:12;6260:88;6376:2;6371:3;6367:12;6360:19;;6124:261;;;;6394:397;;6549:2;6544:3;6537:15;6586:66;6581:2;6576:3;6572:12;6565:88;6687:66;6682:2;6677:3;6673:12;6666:88;6782:2;6777:3;6773:12;6766:19;;6530:261;;;;6799:110;6872:31;6897:5;6872:31;;;6867:3;6860:44;6854:55;;;6916:104;6985:29;7008:5;6985:29;;;6980:3;6973:42;6967:53;;;7027:427;;7207:2;7196:9;7192:18;7184:26;;7221:61;7279:1;7268:9;7264:17;7255:6;7221:61;;;7293:78;7367:2;7356:9;7352:18;7343:6;7293:78;;;7382:62;7440:2;7429:9;7425:18;7416:6;7382:62;;;7178:276;;;;;;;7461:294;;7597:2;7586:9;7582:18;7574:26;;7611:61;7669:1;7658:9;7654:17;7645:6;7611:61;;;7683:62;7741:2;7730:9;7726:18;7717:6;7683:62;;;7568:187;;;;;;7762:341;;7920:2;7909:9;7905:18;7897:26;;7970:9;7964:4;7960:20;7956:1;7945:9;7941:17;7934:47;7995:98;8088:4;8079:6;7995:98;;;7987:106;;7891:212;;;;;8110:341;;8268:2;8257:9;8253:18;8245:26;;8318:9;8312:4;8308:20;8304:1;8293:9;8289:17;8282:47;8343:98;8436:4;8427:6;8343:98;;;8335:106;;8239:212;;;;;8458:181;;8560:2;8549:9;8545:18;8537:26;;8574:55;8626:1;8615:9;8611:17;8602:6;8574:55;;;8531:108;;;;;8646:193;;8754:2;8743:9;8739:18;8731:26;;8768:61;8826:1;8815:9;8811:17;8802:6;8768:61;;;8725:114;;;;;8846:225;;8970:2;8959:9;8955:18;8947:26;;8984:77;9058:1;9047:9;9043:17;9034:6;8984:77;;;8941:130;;;;;9078:273;;9202:2;9191:9;9187:18;9179:26;;9252:9;9246:4;9242:20;9238:1;9227:9;9223:17;9216:47;9277:64;9336:4;9327:6;9277:64;;;9269:72;;9173:178;;;;;9358:387;;9539:2;9528:9;9524:18;9516:26;;9589:9;9583:4;9579:20;9575:1;9564:9;9560:17;9553:47;9614:121;9730:4;9614:121;;;9606:129;;9510:235;;;;9752:387;;9933:2;9922:9;9918:18;9910:26;;9983:9;9977:4;9973:20;9969:1;9958:9;9954:17;9947:47;10008:121;10124:4;10008:121;;;10000:129;;9904:235;;;;10146:387;;10327:2;10316:9;10312:18;10304:26;;10377:9;10371:4;10367:20;10363:1;10352:9;10348:17;10341:47;10402:121;10518:4;10402:121;;;10394:129;;10298:235;;;;10540:193;;10648:2;10637:9;10633:18;10625:26;;10662:61;10720:1;10709:9;10705:17;10696:6;10662:61;;;10619:114;;;;;10740:294;;10876:2;10865:9;10861:18;10853:26;;10890:61;10948:1;10937:9;10933:17;10924:6;10890:61;;;10962:62;11020:2;11009:9;11005:18;10996:6;10962:62;;;10847:187;;;;;;11041:185;;11145:2;11134:9;11130:18;11122:26;;11159:57;11213:1;11202:9;11198:17;11189:6;11159:57;;;11116:110;;;;;11235:121;;11344:4;11336:6;11332:17;11321:28;;11313:43;;;;11367:121;;11476:4;11468:6;11464:17;11453:28;;11445:43;;;;11497:107;;11593:5;11587:12;11577:22;;11571:33;;;;11611:107;;11707:5;11701:12;11691:22;;11685:33;;;;11725:88;;11802:5;11796:12;11786:22;;11780:33;;;;11821:122;;11932:4;11924:6;11920:17;11909:28;;11902:41;;;;11952:122;;12063:4;12055:6;12051:17;12040:28;;12033:41;;;;12082:128;;12162:42;12155:5;12151:54;12140:65;;12134:76;;;;12217:92;;12297:5;12290:13;12283:21;12272:32;;12266:43;;;;12316:79;;12385:5;12374:16;;12368:27;;;;12402:79;;12471:5;12460:16;;12454:27;;;;12488:88;;12566:4;12559:5;12555:16;12544:27;;12538:38;;;;12583:128;;12663:42;12656:5;12652:54;12641:65;;12635:76;;;;12718:92;;12798:5;12791:13;12784:21;12773:32;;12767:43;;;;12817:79;;12886:5;12875:16;;12869:27;;;;12903:79;;12972:5;12961:16;;12955:27;;;;12989:131;;13084:31;13109:5;13084:31;;;13071:44;;13065:55;;;;13128:268;13193:1;13200:101;13214:6;13211:1;13208:13;13200:101;;;13290:1;13285:3;13281:11;13275:18;13271:1;13266:3;13262:11;13255:39;13236:2;13233:1;13229:10;13224:15;;13200:101;;;13316:6;13313:1;13310:13;13307:2;;;13381:1;13372:6;13367:3;13363:16;13356:27;13307:2;13177:219;;;;;13404:97;;13492:2;13488:7;13483:2;13476:5;13472:14;13468:28;13458:38;;13452:49;;;", - "source": "pragma solidity 0.4.23;\npragma experimental ABIEncoderV2;\n\n\nimport \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\nimport \"zeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol\";\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"../lib/AddressArrayUtils.sol\";\nimport \"./interfaces/ISetToken.sol\";\n\n\n/**\n * @title {Set}\n * @author Felix Feng\n * @dev Implementation of the basic {Set} token.\n */\ncontract SetToken is\n StandardToken,\n DetailedERC20(\"\", \"\", 18),\n ISetToken\n{\n using SafeMath for uint256;\n using AddressArrayUtils for address[];\n\n ///////////////////////////////////////////////////////////\n /// Data Structures\n ///////////////////////////////////////////////////////////\n struct Component {\n address address_;\n uint unit_;\n }\n\n ///////////////////////////////////////////////////////////\n /// States\n ///////////////////////////////////////////////////////////\n uint public naturalUnit;\n Component[] public components;\n\n // Mapping of componentHash to isComponent\n mapping(bytes32 => bool) internal isComponent;\n // Mapping of index of component -> user address -> balance\n mapping(uint => mapping(address => uint)) internal unredeemedBalances;\n\n\n ///////////////////////////////////////////////////////////\n /// Events\n ///////////////////////////////////////////////////////////\n event LogPartialRedemption(\n address indexed _sender,\n uint _quantity,\n bytes32 _excludedComponents\n );\n\n event LogRedeemExcluded(\n address indexed _sender,\n bytes32 _components\n );\n\n ///////////////////////////////////////////////////////////\n /// Modifiers\n ///////////////////////////////////////////////////////////\n modifier hasSufficientBalance(uint quantity) {\n // Check that the sender has sufficient components\n // Since the component length is defined ahead of time, this is not\n // an unbounded loop\n require(balances[msg.sender] >= quantity, \"User does not have sufficient balance\");\n _;\n }\n\n modifier validDestination(address _to) {\n require(_to != address(0));\n require(_to != address(this));\n _;\n }\n\n modifier isMultipleOfNaturalUnit(uint _quantity) {\n require((_quantity % naturalUnit) == 0);\n _;\n }\n\n modifier isNonZero(uint _quantity) {\n require(_quantity > 0);\n _;\n }\n\n /**\n * @dev Constructor Function for the issuance of an {Set} token\n * @param _components address[] A list of component address which you want to include\n * @param _units uint[] A list of quantities in gWei of each component (corresponds to the {Set} of _components)\n */\n constructor(\n address[] _components,\n uint[] _units,\n uint _naturalUnit\n )\n isNonZero(_naturalUnit)\n public {\n // There must be component present\n require(_components.length > 0, \"Component length needs to be great than 0\");\n\n // There must be an array of units\n require(_units.length > 0, \"Units must be greater than 0\");\n\n // The number of components must equal the number of units\n require(_components.length == _units.length, \"Component and unit lengths must be the same\");\n\n naturalUnit = _naturalUnit;\n\n // As looping operations are expensive, checking for duplicates will be\n // on the onus of the application developer\n\n // NOTE: It will be the onus of developers to check whether the addressExists\n // are in fact ERC20 addresses\n for (uint16 i = 0; i < _units.length; i++) {\n // Check that all units are non-zero. Negative numbers will underflow\n uint currentUnits = _units[i];\n require(currentUnits > 0, \"Unit declarations must be non-zero\");\n\n // Check that all addresses are non-zero\n address currentComponent = _components[i];\n require(currentComponent != address(0), \"Components must have non-zero address\");\n\n // Check the component has not already been added\n require(!tokenIsComponent(currentComponent));\n\n // add component to isComponent mapping\n isComponent[keccak256(currentComponent)] = true;\n\n components.push(Component({\n address_: currentComponent,\n unit_: currentUnits\n }));\n }\n }\n\n ///////////////////////////////////////////////////////////\n /// Set Functions\n ///////////////////////////////////////////////////////////\n\n /**\n * @dev Function to convert component into {Set} Tokens\n *\n * Please note that the user's ERC20 component must be approved by\n * their ERC20 contract to transfer their components to this contract.\n *\n * @param _quantity uint The quantity of Sets desired to issue in Wei as a multiple of naturalUnit\n */\n function issue(uint _quantity)\n isMultipleOfNaturalUnit(_quantity)\n isNonZero(_quantity)\n public returns (bool) {\n // Transfers the sender's components to the contract\n // Since the component length is defined ahead of time, this is not\n // an unbounded loop\n for (uint16 i = 0; i < components.length; i++) {\n address currentComponent = components[i].address_;\n uint currentUnits = components[i].unit_;\n\n uint preTransferBalance = ERC20(currentComponent).balanceOf(this);\n\n uint transferValue = calculateTransferValue(currentUnits, _quantity);\n require(ERC20(currentComponent).transferFrom(msg.sender, this, transferValue));\n\n // Check that preTransferBalance + transfer value is the same as postTransferBalance\n uint postTransferBalance = ERC20(currentComponent).balanceOf(this);\n assert(preTransferBalance.add(transferValue) == postTransferBalance);\n }\n\n mint(_quantity);\n\n emit LogIssuance(msg.sender, _quantity);\n\n return true;\n }\n\n /**\n * @dev Function to convert {Set} Tokens into underlying components\n *\n * The ERC20 components do not need to be approved to call this function\n *\n * @param _quantity uint The quantity of Sets desired to redeem in Wei as a multiple of naturalUnit\n */\n function redeem(uint _quantity)\n public\n isMultipleOfNaturalUnit(_quantity)\n hasSufficientBalance(_quantity)\n isNonZero(_quantity)\n returns (bool)\n {\n burn(_quantity);\n\n for (uint16 i = 0; i < components.length; i++) {\n address currentComponent = components[i].address_;\n uint currentUnits = components[i].unit_;\n\n uint preTransferBalance = ERC20(currentComponent).balanceOf(this);\n\n uint transferValue = calculateTransferValue(currentUnits, _quantity);\n require(ERC20(currentComponent).transfer(msg.sender, transferValue));\n\n // Check that preTransferBalance + transfer value is the same as postTransferBalance\n uint postTransferBalance = ERC20(currentComponent).balanceOf(this);\n assert(preTransferBalance.sub(transferValue) == postTransferBalance);\n }\n\n emit LogRedemption(msg.sender, _quantity);\n\n return true;\n }\n\n /**\n * @dev Function to withdraw a portion of the component tokens of a Set\n *\n * This function should be used in the event that a component token has been\n * paused for transfer temporarily or permanently. This allows users a\n * method to withdraw tokens in the event that one token has been frozen.\n *\n * The mask can be computed by summing the powers of 2 of indexes of components to exclude.\n * For example, to exclude the 0th, 1st, and 3rd components, we pass in the hex of\n * 1 + 2 + 8 = 11, padded to length 32 i.e. 0x000000000000000000000000000000000000000000000000000000000000000b\n *\n * @param _quantity uint The quantity of Sets desired to redeem in Wei\n * @param _componentsToExclude bytes32 Hex of bitmask of components to exclude\n */\n function partialRedeem(uint _quantity, bytes32 _componentsToExclude)\n public\n isMultipleOfNaturalUnit(_quantity)\n isNonZero(_quantity)\n hasSufficientBalance(_quantity)\n returns (bool)\n {\n // Excluded tokens should be less than the number of components\n // Otherwise, use the normal redeem function\n require(_componentsToExclude > 0, \"Excluded components must be non-zero\");\n\n burn(_quantity);\n\n for (uint16 i = 0; i < components.length; i++) {\n uint transferValue = calculateTransferValue(components[i].unit_, _quantity);\n\n // Exclude tokens if 2 raised to the power of their indexes in the components\n // array results in a non zero value following a bitwise AND\n if (_componentsToExclude & bytes32(2 ** i) > 0) {\n unredeemedBalances[i][msg.sender] += transferValue;\n } else {\n uint preTransferBalance = ERC20(components[i].address_).balanceOf(this);\n\n require(ERC20(components[i].address_).transfer(msg.sender, transferValue));\n\n // Check that preTransferBalance + transfer value is the same as postTransferBalance\n uint postTransferBalance = ERC20(components[i].address_).balanceOf(this);\n assert(preTransferBalance.sub(transferValue) == postTransferBalance);\n }\n }\n\n emit LogPartialRedemption(msg.sender, _quantity, _componentsToExclude);\n\n return true;\n }\n\n /**\n * @dev Function to withdraw tokens that have previously been excluded when calling\n * the partialRedeem method\n\n * The mask can be computed by summing the powers of 2 of indexes of components to redeem.\n * For example, to redeem the 0th, 1st, and 3rd components, we pass in the hex of\n * 1 + 2 + 8 = 11, padded to length 32 i.e. 0x000000000000000000000000000000000000000000000000000000000000000b\n *\n * @param _componentsToRedeem bytes32 Hex of bitmask of components to redeem\n */\n function redeemExcluded(bytes32 _componentsToRedeem)\n public\n returns (bool)\n {\n require(_componentsToRedeem > 0, \"Components to redeem must be non-zero\");\n\n for (uint16 i = 0; i < components.length; i++) {\n if (_componentsToRedeem & bytes32(2 ** i) > 0) {\n address currentComponent = components[i].address_;\n uint remainingBalance = unredeemedBalances[i][msg.sender];\n\n // To prevent re-entrancy attacks, decrement the user's Set balance\n unredeemedBalances[i][msg.sender] = 0;\n\n require(ERC20(currentComponent).transfer(msg.sender, remainingBalance));\n }\n }\n\n emit LogRedeemExcluded(msg.sender, _componentsToRedeem);\n\n return true;\n }\n\n ///////////////////////////////////////////////////////////\n /// Getters\n ///////////////////////////////////////////////////////////\n function getComponents()\n public \n view\n returns(address[])\n {\n address[] memory componentAddresses = new address[](components.length);\n for (uint16 i = 0; i < components.length; i++) {\n componentAddresses[i] = components[i].address_;\n }\n return componentAddresses;\n }\n\n function getUnits()\n public\n view\n returns(uint[])\n {\n uint[] memory units = new uint[](components.length);\n for (uint16 i = 0; i < components.length; i++) {\n units[i] = components[i].unit_;\n }\n return units;\n }\n\n function getUnredeemedBalance(\n address _componentAddress,\n address _userAddress\n )\n public\n view\n returns (uint256)\n {\n require(tokenIsComponent(_componentAddress));\n\n uint componentIndex;\n\n for (uint i = 0; i < components.length; i++) {\n if (components[i].address_ == _componentAddress) {\n componentIndex = i;\n }\n }\n\n return unredeemedBalances[componentIndex][_userAddress];\n }\n\n ///////////////////////////////////////////////////////////\n /// Transfer Updates\n ///////////////////////////////////////////////////////////\n function transfer(\n address _to,\n uint256 _value\n )\n validDestination(_to)\n public\n returns (bool)\n {\n return super.transfer(_to, _value);\n }\n\n function transferFrom(\n address _from,\n address _to,\n uint256 _value\n )\n validDestination(_to)\n public\n returns (bool)\n {\n return super.transferFrom(_from, _to, _value);\n }\n\n ///////////////////////////////////////////////////////////\n /// Private Function\n ///////////////////////////////////////////////////////////\n\n function tokenIsComponent(\n address _tokenAddress\n )\n view\n internal\n returns (bool)\n {\n return isComponent[keccak256(_tokenAddress)];\n }\n\n function calculateTransferValue(\n uint componentUnits,\n uint quantity\n )\n view\n internal\n returns(uint)\n {\n return quantity.div(naturalUnit).mul(componentUnits);\n }\n\n function mint(\n uint quantity\n )\n internal\n {\n balances[msg.sender] = balances[msg.sender].add(quantity);\n totalSupply_ = totalSupply_.add(quantity);\n emit Transfer(address(0), msg.sender, quantity);\n }\n\n function burn(\n uint quantity\n )\n internal\n {\n balances[msg.sender] = balances[msg.sender].sub(quantity);\n totalSupply_ = totalSupply_.sub(quantity);\n emit Transfer(msg.sender, address(0), quantity);\n }\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetToken.sol", + "bytecode": "0x60806040523480156200001157600080fd5b50604051620028b3380380620028b383398101806040528101908080519060200190929190805182019291906020018051820192919060200180519060200190929190805182019291906020018051820192919050505060008060008060008686601282600390805190602001906200008c929190620007f9565b508160049080519060200190620000a5929190620007f9565b5080600560006101000a81548160ff021916908360ff16021790555050505060129450600092505b88518361ffff161015620006b057888361ffff16815181101515620000ee57fe5b90602001906020020151915060008211606060405190810160405280602381526020017f556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a6581526020017f726f2e000000000000000000000000000000000000000000000000000000000081525090151562000207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620001cb578082015181840152602081019050620001ae565b50505050905090810190601f168015620001f95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50898361ffff168151811015156200021b57fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415606060405190810160405280602681526020017f436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616481526020017f64726573732e000000000000000000000000000000000000000000000000000081525090151562000361576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200032557808201518184015260208101905062000308565b50505050905090810190601f168015620003535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508073ffffffffffffffffffffffffffffffffffffffff1660405180807f646563696d616c73282900000000000000000000000000000000000000000000815250600a01905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016000604051808303816000875af19250505015620004d8578073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200047a57600080fd5b505af11580156200048f573d6000803e3d6000fd5b505050506040513d6020811015620004a657600080fd5b810190808051906020019092919050505093508460ff168460ff1610620004ce5784620004d0565b835b9450620004dd565b600094505b620004f78162000709640100000000026401000000009004565b1515156200050457600080fd5b60016008600083604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b6020831015156200059c578051825260208201915060208101905060208303925062000575565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600760408051908101604052808373ffffffffffffffffffffffffffffffffffffffff168152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050508280600101935050620000cd565b8a600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550876006819055505050505050505050505050620008a8565b60006008600083604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b602083101515620007a157805182526020820191506020810190506020830392506200077a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200083c57805160ff19168380011785556200086d565b828001600101855582156200086d579182015b828111156200086c5782518255916020019190600101906200084f565b5b5090506200087c919062000880565b5090565b620008a591905b80821115620008a157600081600090555060010162000887565b5090565b90565b611ffb80620008b86000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461010157806306fdde031461016d578063095ea7b3146101fd57806318160ddd1461026257806323b872dd1461028d578063313ce5671461031257806340c10f191461034357806342a7cfd51461039057806366188463146103bb57806370a082311461042057806395d89b411461047757806399d50d5d146105075780639dc29fac14610573578063a9059cbb146105c0578063c45a015514610625578063c5d574fe1461067c578063d73dd623146106f0578063dd62ed3e14610755575b600080fd5b34801561010d57600080fd5b506101166107cc565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561015957808201518184015260208101905061013e565b505050509050019250505060405180910390f35b34801561017957600080fd5b50610182610878565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020957600080fd5b50610248600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610916565b604051808215151515815260200191505060405180910390f35b34801561026e57600080fd5b50610277610a08565b6040518082815260200191505060405180910390f35b34801561029957600080fd5b506102f8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a12565b604051808215151515815260200191505060405180910390f35b34801561031e57600080fd5b50610327610aa1565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034f57600080fd5b5061038e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ab4565b005b34801561039c57600080fd5b506103a5610d5b565b6040518082815260200191505060405180910390f35b3480156103c757600080fd5b50610406600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d61565b604051808215151515815260200191505060405180910390f35b34801561042c57600080fd5b50610461600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff2565b6040518082815260200191505060405180910390f35b34801561048357600080fd5b5061048c61103a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104cc5780820151818401526020810190506104b1565b50505050905090810190601f1680156104f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051357600080fd5b5061051c6110d8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561055f578082015181840152602081019050610544565b505050509050019250505060405180910390f35b34801561057f57600080fd5b506105be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d2565b005b3480156105cc57600080fd5b5061060b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611638565b604051808215151515815260200191505060405180910390f35b34801561063157600080fd5b5061063a6116c5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068857600080fd5b506106a7600480360381019080803590602001909291905050506116eb565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b3480156106fc57600080fd5b5061073b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061173e565b604051808215151515815260200191505060405180910390f35b34801561076157600080fd5b506107b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061193a565b6040518082815260200191505060405180910390f35b60608060006007805490506040519080825280602002602001820160405280156108055781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156108705760078161ffff1681548110151561083157fe5b906000526020600020906002020160010154828261ffff1681518110151561085557fe5b9060200190602002018181525050808060010191505061080d565b819250505090565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561090e5780601f106108e35761010080835404028352916020019161090e565b820191906000526020600020905b8154815290600101906020018083116108f157829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a5157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a8c57600080fd5b610a978585856119c1565b9150509392505050565b600560009054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b3a57600080fd5b505af1158015610b4e573d6000803e3d6000fd5b505050506040513d6020811015610b6457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e000000000000000000000000000000815250901515610ca8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c6d578082015181840152602081019050610c52565b50505050905090810190601f168015610c9a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610cfa816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d5181600154611d7b90919063ffffffff16565b6001819055505050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610e72576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f06565b610e858382611d9790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110d05780601f106110a5576101008083540402835291602001916110d0565b820191906000526020600020905b8154815290600101906020018083116110b357829003601f168201915b505050505081565b60608060006007805490506040519080825280602002602001820160405280156111115781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156111ca5760078161ffff1681548110151561113d57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561118157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050611119565b819250505090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e0000000000000000000000000000008152509015156113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561138b578082015181840152602081019050611370565b50505050905090810190601f1680156113b85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e00000000000000000000000000000000000000000000000000000000008152509015156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561149657808201518184015260208101905061147b565b50505050905090810190601f1680156114c35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561151f57600080fd5b611570826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115c782600154611d9790919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561167757600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116b257600080fd5b6116bc8484611db0565b91505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007818154811015156116fa57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60006117cf82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156119fe57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611a4b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611ad657600080fd5b611b27826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bba826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c8b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008183019050828110151515611d8e57fe5b80905092915050565b6000828211151515611da557fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ded57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611e3a57600080fd5b611e8b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820df41b023d91b0489bc8d71be113287d3f5667870ed67e9fbf04ae6e2505c0b790029", + "deployedBytecode": "0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461010157806306fdde031461016d578063095ea7b3146101fd57806318160ddd1461026257806323b872dd1461028d578063313ce5671461031257806340c10f191461034357806342a7cfd51461039057806366188463146103bb57806370a082311461042057806395d89b411461047757806399d50d5d146105075780639dc29fac14610573578063a9059cbb146105c0578063c45a015514610625578063c5d574fe1461067c578063d73dd623146106f0578063dd62ed3e14610755575b600080fd5b34801561010d57600080fd5b506101166107cc565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561015957808201518184015260208101905061013e565b505050509050019250505060405180910390f35b34801561017957600080fd5b50610182610878565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020957600080fd5b50610248600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610916565b604051808215151515815260200191505060405180910390f35b34801561026e57600080fd5b50610277610a08565b6040518082815260200191505060405180910390f35b34801561029957600080fd5b506102f8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a12565b604051808215151515815260200191505060405180910390f35b34801561031e57600080fd5b50610327610aa1565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034f57600080fd5b5061038e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ab4565b005b34801561039c57600080fd5b506103a5610d5b565b6040518082815260200191505060405180910390f35b3480156103c757600080fd5b50610406600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d61565b604051808215151515815260200191505060405180910390f35b34801561042c57600080fd5b50610461600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff2565b6040518082815260200191505060405180910390f35b34801561048357600080fd5b5061048c61103a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104cc5780820151818401526020810190506104b1565b50505050905090810190601f1680156104f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051357600080fd5b5061051c6110d8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561055f578082015181840152602081019050610544565b505050509050019250505060405180910390f35b34801561057f57600080fd5b506105be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d2565b005b3480156105cc57600080fd5b5061060b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611638565b604051808215151515815260200191505060405180910390f35b34801561063157600080fd5b5061063a6116c5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068857600080fd5b506106a7600480360381019080803590602001909291905050506116eb565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b3480156106fc57600080fd5b5061073b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061173e565b604051808215151515815260200191505060405180910390f35b34801561076157600080fd5b506107b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061193a565b6040518082815260200191505060405180910390f35b60608060006007805490506040519080825280602002602001820160405280156108055781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156108705760078161ffff1681548110151561083157fe5b906000526020600020906002020160010154828261ffff1681518110151561085557fe5b9060200190602002018181525050808060010191505061080d565b819250505090565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561090e5780601f106108e35761010080835404028352916020019161090e565b820191906000526020600020905b8154815290600101906020018083116108f157829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a5157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a8c57600080fd5b610a978585856119c1565b9150509392505050565b600560009054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b3a57600080fd5b505af1158015610b4e573d6000803e3d6000fd5b505050506040513d6020811015610b6457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e000000000000000000000000000000815250901515610ca8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c6d578082015181840152602081019050610c52565b50505050905090810190601f168015610c9a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610cfa816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d5181600154611d7b90919063ffffffff16565b6001819055505050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610e72576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f06565b610e858382611d9790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110d05780601f106110a5576101008083540402835291602001916110d0565b820191906000526020600020905b8154815290600101906020018083116110b357829003601f168201915b505050505081565b60608060006007805490506040519080825280602002602001820160405280156111115781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156111ca5760078161ffff1681548110151561113d57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561118157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050611119565b819250505090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e0000000000000000000000000000008152509015156113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561138b578082015181840152602081019050611370565b50505050905090810190601f1680156113b85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e00000000000000000000000000000000000000000000000000000000008152509015156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561149657808201518184015260208101905061147b565b50505050905090810190601f1680156114c35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561151f57600080fd5b611570826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115c782600154611d9790919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561167757600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116b257600080fd5b6116bc8484611db0565b91505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007818154811015156116fa57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60006117cf82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156119fe57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611a4b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611ad657600080fd5b611b27826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bba826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c8b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008183019050828110151515611d8e57fe5b80905092915050565b6000828211151515611da557fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ded57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611e3a57600080fd5b611e8b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820df41b023d91b0489bc8d71be113287d3f5667870ed67e9fbf04ae6e2505c0b790029", + "sourceMap": "1039:7917:0:-;;;4036:2261;8:9:-1;5:2;;;30:1;27;20:12;5:2;4036:2261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4498:17;4530:21;4566:8;4700:17;4906:24;4244:5;4251:7;4260:2;470:5:7;463:4;:12;;;;;;;;;;;;:::i;:::-;;490:7;481:6;:16;;;;;;;;;;;;:::i;:::-;;514:9;503:8;;:20;;;;;;;;;;;;;;;;;;391:137;;;4518:2:0;4498:22;;4577:1;4566:12;;4561:1445;4584:6;:13;4580:1;:17;;;4561:1445;;;4720:6;4727:1;4720:9;;;;;;;;;;;;;;;;;;;;4700:29;;4783:1;4768:12;:16;4802:22;;;;;;;;;;;;;;;;;;;;;;;4743:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4743:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4933:11;4945:1;4933:14;;;;;;;;;;;;;;;;;;;;4906:41;;5014:1;4986:30;;:16;:30;;;;5034:25;;;;;;;;;;;;;;;;;;;;;;;4961:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4961:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5172:16;:21;;5201:23;;;;;;;;;;;;;;;;;;;5172:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5168:437;;;5278:16;5264:40;;;:42;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5264:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5264:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5264:42:0;;;;;;;;;;;;;;;;5246:60;;5356:11;5338:29;;:15;:29;;;:61;;5388:11;5338:61;;;5370:15;5338:61;5324:75;;5168:437;;;5589:1;5575:15;;5168:437;5690:34;5707:16;5690;;;:34;;;:::i;:::-;5689:35;5681:44;;;;;;;;5853:4;5792:11;:58;5831:16;5814:34;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5814:34:0;;;5804:45;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5804:45:0;;;;;;;;;;;;;;;;5792:58;;;;;;;;;;;;;;;;;;:65;;;;;;;;;;;;;;;;;;5872:10;5888:106;;;;;;;;;5926:16;5888:106;;;;;;5967:12;5888:106;;;5872:123;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;5872:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4599:3;;;;;;;4561:1445;;;6246:8;6236:7;;:18;;;;;;;;;;;;;;;;;;6278:12;6264:11;:26;;;;4036:2261;;;;;;;;;;;1039:7917;;8755:199;8865:4;8892:11;:55;8931:13;8914:31;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8914:31:0;;;8904:42;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8904:42:0;;;;;;;;;;;;;;;;8892:55;;;;;;;;;;;;;;;;;;;;;;;;;;;8885:62;;8755:199;;;:::o;1039:7917::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "1039:7917:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7925:277;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7925:277:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7925:277:0;;;;;;;;;;;;;;;;;319:18:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;319:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;319:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:6;;;;;;;;;;;;;;;;;;;;;;;8464:232:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8464:232:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;365:21:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;365:21:7;;;;;;;;;;;;;;;;;;;;;;;;;;;6604:325:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6604:325:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2030:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2030:23:0;;;;;;;;;;;;;;;;;;;;;;;3701:425:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;341:20:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;341:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;341:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7586:333:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7586:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7586:333:0;;;;;;;;;;;;;;;;;7183:352;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7183:352:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8264:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8264:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2259:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2259:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2059:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2059:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7925:277:0;7989:6;8011:19;8077:8;8044:10;:17;;;;8033:29;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;8033:29:0;;;;8011:51;;8088:1;8077:12;;8072:102;8095:10;:17;;;;8091:1;:21;;;8072:102;;;8144:10;8155:1;8144:13;;;;;;;;;;;;;;;;;;;;;;:19;;;8133:5;8139:1;8133:8;;;;;;;;;;;;;;;;;;;:30;;;;;8114:3;;;;;;;8072:102;;;8190:5;8183:12;;7925:277;;;:::o;319:18:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:10:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;371:83:6:-;415:7;437:12;;430:19;;371:83;:::o;8464:232:0:-;8624:4;8602:3;3342:1;3327:17;;:3;:17;;;;3319:26;;;;;;;;3378:4;3363:20;;:3;:20;;;;3355:29;;;;;;;;8651:38;8670:5;8677:3;8682:6;8651:18;:38::i;:::-;8644:45;;8464:232;;;;;;:::o;365:21:7:-;;;;;;;;;;;;;:::o;6604:325:0:-;2410:7;;;;;;;;;;;2398:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2398:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2398:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2398:27:0;;;;;;;;;;;;;;;;2384:41;;:10;:41;;;2439:14;;;;;;;;;;;;;;;;;;;;;;;2363:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2363:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6785:32;6807:9;6785:8;:17;6794:7;6785:17;;;;;;;;;;;;;;;;:21;;:32;;;;:::i;:::-;6765:8;:17;6774:7;6765:17;;;;;;;;;;;;;;;:52;;;;6895:27;6912:9;6895:12;;:16;;:27;;;;:::i;:::-;6880:12;:42;;;;6604:325;;:::o;2030:23::-;;;;:::o;3701:425:10:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:6:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;341:20:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7586:333:0:-;7655:9;7680:35;7765:8;7732:10;:17;;;;7718:32;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;7718:32:0;;;;7680:70;;7776:1;7765:12;;7760:118;7783:10;:17;;;;7779:1;:21;;;7760:118;;;7845:10;7856:1;7845:13;;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;7821:18;7840:1;7821:21;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;7802:3;;;;;;;7760:118;;;7894:18;7887:25;;7586:333;;;:::o;7183:352::-;2410:7;;;;;;;;;;;2398:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2398:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2398:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2398:27:0;;;;;;;;;;;;;;;;2384:41;;:10;:41;;;2439:14;;;;;;;;;;;;;;;;;;;;;;;2363:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2363:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7301:9;3206:1;3194:9;:13;3221;;;;;;;;;;;;;;;;;;;;;;;3173:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3173:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:9;7334:8;:15;7343:5;7334:15;;;;;;;;;;;;;;;;:28;;7326:37;;;;;;;;7392:30;7412:9;7392:8;:15;7401:5;7392:15;;;;;;;;;;;;;;;;:19;;:30;;;;:::i;:::-;7374:8;:15;7383:5;7374:15;;;;;;;;;;;;;;;:48;;;;7447:27;7464:9;7447:12;;:16;;:27;;;;:::i;:::-;7432:12;:42;;;;7514:1;7490:38;;7499:5;7490:38;;;7518:9;7490:38;;;;;;;;;;;;;;;;;;2473:1;7183:352;;:::o;8264:194::-;8397:4;8375:3;3342:1;3327:17;;:3;:17;;;;3319:26;;;;;;;;3378:4;3363:20;;:3;:20;;;;3355:29;;;;;;;;8424:27;8439:3;8444:6;8424:14;:27::i;:::-;8417:34;;8264:194;;;;;:::o;2259:22::-;;;;;;;;;;;;;:::o;2059:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2946:293:10:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;736:470::-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;1214:123:4:-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;1042:110::-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;608:321:6:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\nimport { DetailedERC20 } from \"zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol\";\nimport { StandardToken } from \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { ISetFactory } from \"./interfaces/ISetFactory.sol\";\n\n\n/**\n * @title SetToken\n * @author Set Protocol\n *\n * Implementation of the basic {Set} token.\n */\ncontract SetToken is\n StandardToken,\n DetailedERC20\n{\n using SafeMath for uint256;\n\n /* ============ Constants ============ */\n\n string constant COMPONENTS_INPUT_MISMATCH = \"Components and units must be the same length.\";\n string constant COMPONENTS_MISSING = \"Components must not be empty.\";\n string constant INVALID_COMPONENT_UNIT = \"Unit declarations must be non-zero.\";\n string constant INVALID_COMPONENT_ADDRESS = \"Components must have non-zero address.\";\n string constant INVALID_NATURAL_UNIT = \"Natural unit does not work with component decimals.\";\n string constant INVALID_SENDER = \"Sender is not permitted to perform this function.\";\n string constant UNITS_MISSING = \"Units must not be empty.\";\n string constant ZERO_QUANTITY = \"Quantity must be greater than zero.\";\n\n /* ============ Structs ============ */\n\n struct Component {\n address address_;\n uint unit_;\n }\n\n /* ============ State Variables ============ */\n\n uint public naturalUnit;\n Component[] public components;\n\n // Mapping of componentHash to isComponent\n mapping(bytes32 => bool) internal isComponent;\n\n // Address of the Factory contract that created the SetToken\n address public factory;\n\n /* ============ Modifiers ============ */\n\n modifier isCore() {\n require(\n msg.sender == ISetFactory(factory).core(),\n INVALID_SENDER\n );\n _;\n }\n\n // Confirm that all inputs for creating a set are valid\n modifier areValidCreationParameters(address[] _components, uint[] _units) {\n // Confirm an empty _components array is not passed\n require(\n _components.length > 0,\n COMPONENTS_MISSING\n );\n\n // Confirm an empty _quantities array is not passed\n require(\n _units.length > 0,\n UNITS_MISSING\n );\n\n // Confirm there is one quantity for every token address\n require(\n _components.length == _units.length,\n COMPONENTS_INPUT_MISMATCH\n );\n _;\n }\n\n modifier isPositive(uint _quantity) {\n require(\n _quantity > 0,\n ZERO_QUANTITY\n );\n _;\n }\n\n modifier isValidDestination(address _to) {\n require(_to != address(0));\n require(_to != address(this));\n _;\n }\n\n /* ============ Constructor ============ */\n\n /**\n * Constructor function for {Set} token\n *\n * As looping operations are expensive, checking for duplicates will be on the onus of the application developer\n *\n * @param _components address[] A list of component address which you want to include\n * @param _units uint[] A list of quantities in gWei of each component (corresponds to the {Set} of _components)\n * @param _naturalUnit uint The minimum multiple of Sets that can be issued or redeeemed\n * @param _name string The Set's name\n * @param _symbol string the Set's symbol\n */\n constructor(\n address _factory,\n address[] _components,\n uint[] _units,\n uint _naturalUnit,\n string _name,\n string _symbol\n )\n public\n DetailedERC20(_name, _symbol, 18)\n // isPositive(_naturalUnit)\n // areValidCreationParameters(_components, _units)\n {\n // NOTE: It will be the onus of developers to check whether the addressExists\n // are in fact ERC20 addresses\n uint8 minDecimals = 18;\n uint8 currentDecimals;\n for (uint16 i = 0; i < _units.length; i++) {\n // Check that all units are non-zero. Negative numbers will underflow\n uint currentUnits = _units[i];\n require(\n currentUnits > 0,\n INVALID_COMPONENT_UNIT\n );\n\n // Check that all addresses are non-zero\n address currentComponent = _components[i];\n require(\n currentComponent != address(0),\n INVALID_COMPONENT_ADDRESS\n );\n\n // Figure out which of the components has the minimum decimal value\n if (currentComponent.call(bytes4(keccak256(\"decimals()\")))) {\n currentDecimals = DetailedERC20(currentComponent).decimals();\n minDecimals = currentDecimals < minDecimals ? currentDecimals : minDecimals;\n } else {\n // If one of the components does not implement decimals, we assume the worst\n // and set minDecimals to 0\n minDecimals = 0;\n }\n\n // Check the component has not already been added\n require(!tokenIsComponent(currentComponent));\n\n // add component to isComponent mapping\n isComponent[keccak256(abi.encodePacked(currentComponent))] = true;\n\n components.push(Component({\n address_: currentComponent,\n unit_: currentUnits\n }));\n }\n\n // This is the minimum natural unit possible for a Set with these components.\n // require(\n // _naturalUnit >= uint(10) ** (18 - minDecimals),\n // INVALID_NATURAL_UNIT\n // );\n\n factory = _factory;\n naturalUnit = _naturalUnit;\n }\n\n /* ============ Public Functions ============ */\n\n /*\n * Mint set token for given address.\n * Can only be called by authorized contracts.\n *\n * @param _issuer The address of the issuing account\n * @param _quantity The number of sets to attribute to issuer\n */\n function mint(\n address _issuer,\n uint _quantity\n )\n external\n isCore\n {\n // Update token balance of the issuer\n balances[_issuer] = balances[_issuer].add(_quantity);\n\n // Update the total supply of the set token\n totalSupply_ = totalSupply_.add(_quantity);\n }\n\n /*\n * Burn set token for given address.\n * Can only be called by authorized contracts.\n *\n * @param _from The address of the redeeming account\n * @param _quantity The number of sets to burn from redeemer\n */\n function burn(\n address _from,\n uint _quantity\n )\n external\n isCore\n isPositive(_quantity)\n {\n require(balances[_from] >= _quantity);\n\n balances[_from] = balances[_from].sub(_quantity);\n totalSupply_ = totalSupply_.sub(_quantity);\n\n emit Transfer(_from, address(0), _quantity);\n }\n\n /* ============ Getters ============ */\n\n function getComponents()\n public\n view\n returns(address[])\n {\n address[] memory componentAddresses = new address[](components.length);\n for (uint16 i = 0; i < components.length; i++) {\n componentAddresses[i] = components[i].address_;\n }\n return componentAddresses;\n }\n\n function getUnits()\n public\n view\n returns(uint[])\n {\n uint[] memory units = new uint[](components.length);\n for (uint16 i = 0; i < components.length; i++) {\n units[i] = components[i].unit_;\n }\n return units;\n }\n\n /* ============ Transfer Overrides ============ */\n\n function transfer(\n address _to,\n uint256 _value\n )\n public\n isValidDestination(_to)\n returns (bool)\n {\n return super.transfer(_to, _value);\n }\n\n function transferFrom(\n address _from,\n address _to,\n uint256 _value\n )\n public\n isValidDestination(_to)\n returns (bool)\n {\n return super.transferFrom(_from, _to, _value);\n }\n\n /* ============ Private Helpers ============ */\n\n function tokenIsComponent(\n address _tokenAddress\n )\n view\n internal\n returns (bool)\n {\n return isComponent[keccak256(abi.encodePacked(_tokenAddress))];\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetToken.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetToken.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetToken.sol", "exportedSymbols": { "SetToken": [ - 980 + 498 ] }, - "id": 981, + "id": 499, "nodeType": "SourceUnit", "nodes": [ { - "id": 58, + "id": 1, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:1" + "src": "597:23:0" }, { - "id": 59, - "literals": [ - "experimental", - "ABIEncoderV2" + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 499, + "sourceUnit": 1100, + "src": "623:90:0", + "symbolAliases": [ + { + "foreign": 2, + "local": null + } ], - "nodeType": "PragmaDirective", - "src": "24:33:1" + "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", - "id": 60, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2800, - "src": "60:67:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 61, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2415, - "src": "128:59:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "id": 62, + "id": 5, "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2372, - "src": "188:67:1", - "symbolAliases": [], + "scope": 499, + "sourceUnit": 1422, + "src": "714:90:0", + "symbolAliases": [ + { + "foreign": 4, + "local": null + } + ], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "zeppelin-solidity/contracts/math/SafeMath.sol", - "id": 63, + "id": 7, "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2156, - "src": "256:55:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/lib/AddressArrayUtils.sol", - "file": "../lib/AddressArrayUtils.sol", - "id": 64, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 1688, - "src": "312:38:1", - "symbolAliases": [], + "scope": 499, + "sourceUnit": 884, + "src": "805:73:0", + "symbolAliases": [ + { + "foreign": 6, + "local": null + } + ], "unitAlias": "" }, { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", - "file": "./interfaces/ISetToken.sol", - "id": 65, + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", + "file": "./interfaces/ISetFactory.sol", + "id": 9, "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 1622, - "src": "351:36:1", - "symbolAliases": [], + "scope": 499, + "sourceUnit": 575, + "src": "879:59:0", + "symbolAliases": [ + { + "foreign": 8, + "local": null + } + ], "unitAlias": "" }, { @@ -631,157 +506,82 @@ export const SetToken = "arguments": null, "baseName": { "contractScope": null, - "id": 66, + "id": 10, "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "510:13:1", + "referencedDeclaration": 1421, + "src": "1064:13:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", + "typeIdentifier": "t_contract$_StandardToken_$1421", "typeString": "contract StandardToken" } }, - "id": 67, + "id": 11, "nodeType": "InheritanceSpecifier", - "src": "510:13:1" + "src": "1064:13:0" }, { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "", - "id": 69, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "543:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 70, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "547:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 71, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "551:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], + "arguments": null, "baseName": { "contractScope": null, - "id": 68, + "id": 12, "name": "DetailedERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2371, - "src": "529:13:1", + "referencedDeclaration": 1099, + "src": "1083:13:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$2371", + "typeIdentifier": "t_contract$_DetailedERC20_$1099", "typeString": "contract DetailedERC20" } }, - "id": 72, - "nodeType": "InheritanceSpecifier", - "src": "529:25:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 73, - "name": "ISetToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1621, - "src": "560:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "id": 74, + "id": 13, "nodeType": "InheritanceSpecifier", - "src": "560:9:1" + "src": "1083:13:0" } ], "contractDependencies": [ - 1621, - 2337, - 2371, - 2414, - 2446, - 2799 + 1065, + 1099, + 1142, + 1174, + 1421 ], "contractKind": "contract", - "documentation": "@title {Set}\n@author Felix Feng\n@dev Implementation of the basic {Set} token.", + "documentation": "@title SetToken\n@author Set Protocol\n * Implementation of the basic {Set} token.", "fullyImplemented": true, - "id": 980, + "id": 498, "linearizedBaseContracts": [ - 980, - 1621, - 2371, - 2799, - 2337, - 2414, - 2446 + 498, + 1099, + 1421, + 1065, + 1142, + 1174 ], "name": "SetToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 77, + "id": 16, "libraryName": { "contractScope": null, - "id": 75, + "id": 14, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "582:8:1", + "referencedDeclaration": 883, + "src": "1109:8:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", + "typeIdentifier": "t_contract$_SafeMath_$883", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "576:27:1", + "src": "1103:27:0", "typeName": { - "id": 76, + "id": 15, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "595:7:1", + "src": "1122:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -789,64 +589,371 @@ export const SetToken = } }, { - "id": 81, - "libraryName": { - "contractScope": null, - "id": 78, - "name": "AddressArrayUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1687, - "src": "614:17:1", + "constant": true, + "id": 19, + "name": "COMPONENTS_INPUT_MISMATCH", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1183:91:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 17, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1183:6:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressArrayUtils_$1687", - "typeString": "library AddressArrayUtils" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "nodeType": "UsingForDirective", - "src": "608:38:1", - "typeName": { - "baseType": { - "id": 79, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "636:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "value": { + "argumentTypes": null, + "hexValue": "436f6d706f6e656e747320616e6420756e697473206d757374206265207468652073616d65206c656e6774682e", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1227:47:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_507b7271d0f520677dcc8f52ce111f2a3d6cc23688f132cd90329dcf0980ccdd", + "typeString": "literal_string \"Components and units must be the same length.\"" }, - "id": 80, - "length": null, - "nodeType": "ArrayTypeName", - "src": "636:9:1", + "value": "Components and units must be the same length." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 22, + "name": "COMPONENTS_MISSING", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1280:68:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 20, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1280:6:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } - } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6d706f6e656e7473206d757374206e6f7420626520656d7074792e", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1317:31:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c812e6febc96d0f15c9ef704912a1e5b8ac9ee7602acc3375346a83f7a2a9021", + "typeString": "literal_string \"Components must not be empty.\"" + }, + "value": "Components must not be empty." + }, + "visibility": "internal" }, { - "canonicalName": "SetToken.Component", - "id": 86, - "members": [ - { - "constant": false, - "id": 83, - "name": "address_", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "831:16:1", - "stateVariable": false, + "constant": true, + "id": 25, + "name": "INVALID_COMPONENT_UNIT", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1354:78:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 23, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1354:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a65726f2e", + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1395:37:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_615190b3721d5d2af7bfb2963be7ac841d5b81d1062f7f16fb3ebe7964aaa975", + "typeString": "literal_string \"Unit declarations must be non-zero.\"" + }, + "value": "Unit declarations must be non-zero." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 28, + "name": "INVALID_COMPONENT_ADDRESS", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1438:84:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 26, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1438:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616464726573732e", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1482:40:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c797d4c348b9995d79eeab7c20eaf4ca13ae42e7484e60cde80a890be1da5b5c", + "typeString": "literal_string \"Components must have non-zero address.\"" + }, + "value": "Components must have non-zero address." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 31, + "name": "INVALID_NATURAL_UNIT", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1528:92:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 29, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1528:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "4e61747572616c20756e697420646f6573206e6f7420776f726b207769746820636f6d706f6e656e7420646563696d616c732e", + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1567:53:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4b7120cbe8d08c58dcbc7d80995b28a0b5a9deed88a172beefd52b7c34f75cea", + "typeString": "literal_string \"Natural unit does not work with component decimals.\"" + }, + "value": "Natural unit does not work with component decimals." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 34, + "name": "INVALID_SENDER", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1626:84:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 32, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1626:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53656e646572206973206e6f74207065726d697474656420746f20706572666f726d20746869732066756e6374696f6e2e", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1659:51:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4ffa3e3d08011fc170562a3d08e8750b05ecc5c344e09f4df43ed4eea4688153", + "typeString": "literal_string \"Sender is not permitted to perform this function.\"" + }, + "value": "Sender is not permitted to perform this function." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 37, + "name": "UNITS_MISSING", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1716:58:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 35, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1716:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e697473206d757374206e6f7420626520656d7074792e", + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1748:26:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3167a8b9326a8184e0ced4d846000fe29af4b52d9f88c79765c357d850670a90", + "typeString": "literal_string \"Units must not be empty.\"" + }, + "value": "Units must not be empty." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 40, + "name": "ZERO_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1780:69:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 38, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1780:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d7573742062652067726561746572207468616e207a65726f2e", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1812:37:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3da6978e12ad268e4eb66f4a79840b60e48f93e78540f7911187ddd7f0f6f2c7", + "typeString": "literal_string \"Quantity must be greater than zero.\"" + }, + "value": "Quantity must be greater than zero." + }, + "visibility": "internal" + }, + { + "canonicalName": "SetToken.Component", + "id": 45, + "members": [ + { + "constant": false, + "id": 42, + "name": "address_", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "1928:16:0", + "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { - "id": 82, + "id": 41, "name": "address", "nodeType": "ElementaryTypeName", - "src": "831:7:1", + "src": "1928:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -857,11 +964,11 @@ export const SetToken = }, { "constant": false, - "id": 85, + "id": 44, "name": "unit_", "nodeType": "VariableDeclaration", - "scope": 86, - "src": "857:10:1", + "scope": 45, + "src": "1954:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -869,10 +976,10 @@ export const SetToken = "typeString": "uint256" }, "typeName": { - "id": 84, + "id": 43, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "857:4:1", + "src": "1954:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -884,17 +991,17 @@ export const SetToken = ], "name": "Component", "nodeType": "StructDefinition", - "scope": 980, - "src": "804:70:1", + "scope": 498, + "src": "1901:70:0", "visibility": "public" }, { "constant": false, - "id": 88, + "id": 47, "name": "naturalUnit", "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1023:23:1", + "scope": 498, + "src": "2030:23:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -902,10 +1009,10 @@ export const SetToken = "typeString": "uint256" }, "typeName": { - "id": 87, + "id": 46, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1023:4:1", + "src": "2030:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -916,36 +1023,36 @@ export const SetToken = }, { "constant": false, - "id": 91, + "id": 50, "name": "components", "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1052:29:1", + "scope": 498, + "src": "2059:29:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", "typeString": "struct SetToken.Component[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 89, + "id": 48, "name": "Component", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 86, - "src": "1052:9:1", + "referencedDeclaration": 45, + "src": "2059:9:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage_ptr", + "typeIdentifier": "t_struct$_Component_$45_storage_ptr", "typeString": "struct SetToken.Component" } }, - "id": 90, + "id": 49, "length": null, "nodeType": "ArrayTypeName", - "src": "1052:11:1", + "src": "2059:11:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage_ptr", "typeString": "struct SetToken.Component[]" } }, @@ -954,11 +1061,11 @@ export const SetToken = }, { "constant": false, - "id": 95, + "id": 54, "name": "isComponent", "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1135:45:1", + "scope": 498, + "src": "2142:45:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -966,28 +1073,28 @@ export const SetToken = "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 94, + "id": 53, "keyType": { - "id": 92, + "id": 51, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1143:7:1", + "src": "2150:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1135:24:1", + "src": "2142:24:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 93, + "id": 52, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1154:4:1", + "src": "2161:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -999,238 +1106,35 @@ export const SetToken = }, { "constant": false, - "id": 101, - "name": "unredeemedBalances", + "id": 56, + "name": "factory", "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1250:69:1", + "scope": 498, + "src": "2259:22:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 100, - "keyType": { - "id": 96, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1258:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "1250:41:1", + "id": 55, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2259:7:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - }, - "valueType": { - "id": 99, - "keyType": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1274:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1266:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 98, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1285:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": "////////////////////////////////////////////////////////\n Events\n////////////////////////////////////////////////////////", - "id": 109, - "name": "LogPartialRedemption", - "nodeType": "EventDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 103, - "indexed": true, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "1506:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 102, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1506:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 105, - "indexed": false, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "1539:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 104, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1539:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "indexed": false, - "name": "_excludedComponents", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "1563:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 106, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1563:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1496:100:1" - }, - "src": "1470:127:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 115, - "name": "LogRedeemExcluded", - "nodeType": "EventDefinition", - "parameters": { - "id": 114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 111, - "indexed": true, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "1636:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1636:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 113, - "indexed": false, - "name": "_components", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "1669:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 112, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1669:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1626:68:1" - }, - "src": "1603:92:1" + "visibility": "public" }, { "body": { - "id": 130, + "id": 71, "nodeType": "Block", - "src": "1892:274:1", + "src": "2353:128:0", "statements": [ { "expression": { @@ -1239,86 +1143,128 @@ export const SetToken = { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 125, + "id": 66, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "baseExpression": { + "expression": { "argumentTypes": null, - "id": 120, - "name": "balances", + "id": 59, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2074:8:1", + "referencedDeclaration": 1436, + "src": "2384:3:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 123, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 121, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "2083:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2384:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 62, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "2410:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 61, + "name": "ISetFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 574, + "src": "2398:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ISetFactory_$574_$", + "typeString": "type(contract ISetFactory)" + } + }, + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2398:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetFactory_$574", + "typeString": "contract ISetFactory" } }, - "id": 122, + "id": 64, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "sender", + "memberName": "core", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2083:10:1", + "referencedDeclaration": 556, + "src": "2398:25:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" } }, + "id": 65, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2074:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 124, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "2098:8:1", + "names": [], + "nodeType": "FunctionCall", + "src": "2398:27:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "2074:32:1", + "src": "2384:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1326,21 +1272,16 @@ export const SetToken = }, { "argumentTypes": null, - "hexValue": "5573657220646f6573206e6f7420686176652073756666696369656e742062616c616e6365", - "id": 126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2108:39:1", - "subdenomination": null, + "id": 67, + "name": "INVALID_SENDER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "2439:14:0", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2904332a815b8920ad7c1c875f85d43154f982f515649fe19f339b58ac141e71", - "typeString": "literal_string \"User does not have sufficient balance\"" - }, - "value": "User does not have sufficient balance" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } ], "expression": { @@ -1350,25 +1291,25 @@ export const SetToken = "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_2904332a815b8920ad7c1c875f85d43154f982f515649fe19f339b58ac141e71", - "typeString": "literal_string \"User does not have sufficient balance\"" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } ], - "id": 119, + "id": 58, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2818, - "src": "2066:7:1", + "referencedDeclaration": 1440, + "src": "2363:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 127, + "id": 68, "isConstant": false, "isLValue": false, "isPure": false, @@ -1376,68 +1317,41 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2066:82:1", + "src": "2363:100:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 128, + "id": 69, "nodeType": "ExpressionStatement", - "src": "2066:82:1" + "src": "2363:100:0" }, { - "id": 129, + "id": 70, "nodeType": "PlaceholderStatement", - "src": "2158:1:1" + "src": "2473:1:0" } ] }, - "documentation": "////////////////////////////////////////////////////////\n Modifiers\n////////////////////////////////////////////////////////", - "id": 131, - "name": "hasSufficientBalance", + "documentation": null, + "id": 72, + "name": "isCore", "nodeType": "ModifierDefinition", "parameters": { - "id": 118, + "id": 57, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 117, - "name": "quantity", - "nodeType": "VariableDeclaration", - "scope": 131, - "src": "1877:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1876:15:1" + "parameters": [], + "src": "2350:2:0" }, - "src": "1847:319:1", + "src": "2335:146:0", "visibility": "internal" }, { "body": { - "id": 152, + "id": 106, "nodeType": "Block", - "src": "2211:93:1", + "src": "2621:500:0", "statements": [ { "expression": { @@ -1446,90 +1360,81 @@ export const SetToken = { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 140, + "id": 84, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 136, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "2229:3:1", + "expression": { + "argumentTypes": null, + "id": 81, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "2712:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2712:18:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": ">", "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2244:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2236:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 139, + "hexValue": "30", + "id": 83, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "typeConversion", + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2236:10:1", + "nodeType": "Literal", + "src": "2733:1:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "2229:17:1", + "src": "2712:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } + }, + { + "argumentTypes": null, + "id": 85, + "name": "COMPONENTS_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "2748:18:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } ], "expression": { @@ -1537,23 +1442,27 @@ export const SetToken = { "typeIdentifier": "t_bool", "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } ], - "id": 135, + "id": 80, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "2221:7:1", + "referencedDeclaration": 1440, + "src": "2691:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 141, + "id": 86, "isConstant": false, "isLValue": false, "isPure": false, @@ -1561,15 +1470,15 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2221:26:1", + "src": "2691:85:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 142, + "id": 87, "nodeType": "ExpressionStatement", - "src": "2221:26:1" + "src": "2691:85:0" }, { "expression": { @@ -1578,85 +1487,81 @@ export const SetToken = { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 148, + "id": 92, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 144, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "2265:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 146, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "2280:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2272:7:1", + "argumentTypes": null, + "id": 89, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 78, + "src": "2868:6:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } }, - "id": 147, + "id": 90, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2272:13:1", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2868:13:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "2265:20:1", + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2884:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2868:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } + }, + { + "argumentTypes": null, + "id": 93, + "name": "UNITS_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2899:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } ], "expression": { @@ -1664,23 +1569,27 @@ export const SetToken = { "typeIdentifier": "t_bool", "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } ], - "id": 143, + "id": 88, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "2257:7:1", + "referencedDeclaration": 1440, + "src": "2847:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 149, + "id": 94, "isConstant": false, "isLValue": false, "isPure": false, @@ -1688,69 +1597,16 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2257:29:1", + "src": "2847:75:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 150, + "id": 95, "nodeType": "ExpressionStatement", - "src": "2257:29:1" + "src": "2847:75:0" }, - { - "id": 151, - "nodeType": "PlaceholderStatement", - "src": "2296:1:1" - } - ] - }, - "documentation": null, - "id": 153, - "name": "validDestination", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 133, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 153, - "src": "2198:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2198:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2197:13:1" - }, - "src": "2172:132:1", - "visibility": "internal" - }, - { - "body": { - "id": 167, - "nodeType": "Block", - "src": "2359:67:1", - "statements": [ { "expression": { "argumentTypes": null, @@ -1761,68 +1617,35 @@ export const SetToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 163, + "id": 101, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 158, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 155, - "src": "2378:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 159, - "name": "naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "2390:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2378:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "expression": { + "argumentTypes": null, + "id": 97, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "3019:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } - ], - "id": 161, + }, + "id": 98, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2377:25:1", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3019:18:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1832,27 +1655,51 @@ export const SetToken = "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 162, + "expression": { + "argumentTypes": null, + "id": 99, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 78, + "src": "3041:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 100, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "2406:1:1", - "subdenomination": null, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3041:13:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "2377:30:1", + "src": "3019:35:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } + }, + { + "argumentTypes": null, + "id": 102, + "name": "COMPONENTS_INPUT_MISMATCH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "3068:25:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } ], "expression": { @@ -1860,23 +1707,27 @@ export const SetToken = { "typeIdentifier": "t_bool", "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } ], - "id": 157, + "id": 96, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "2369:7:1", + "referencedDeclaration": 1440, + "src": "2998:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 164, + "id": 103, "isConstant": false, "isLValue": false, "isPure": false, @@ -1884,68 +1735,114 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2369:39:1", + "src": "2998:105:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 165, + "id": 104, "nodeType": "ExpressionStatement", - "src": "2369:39:1" + "src": "2998:105:0" }, { - "id": 166, + "id": 105, "nodeType": "PlaceholderStatement", - "src": "2418:1:1" + "src": "3113:1:0" } ] }, "documentation": null, - "id": 168, - "name": "isMultipleOfNaturalUnit", + "id": 107, + "name": "areValidCreationParameters", "nodeType": "ModifierDefinition", "parameters": { - "id": 156, + "id": 79, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 155, - "name": "_quantity", + "id": 75, + "name": "_components", "nodeType": "VariableDeclaration", - "scope": 168, - "src": "2343:14:1", + "scope": 107, + "src": "2583:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { - "id": 154, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2343:4:1", + "baseType": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2583:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 74, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2583:9:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 78, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "2606:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 76, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2606:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 77, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2606:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" } }, "value": null, "visibility": "internal" } ], - "src": "2342:16:1" + "src": "2582:38:0" }, - "src": "2310:116:1", + "src": "2547:574:0", "visibility": "internal" }, { "body": { - "id": 179, + "id": 119, "nodeType": "Block", - "src": "2467:50:1", + "src": "3163:99:0", "statements": [ { "expression": { @@ -1957,19 +1854,19 @@ export const SetToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 175, + "id": 114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 173, + "id": 112, "name": "_quantity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "2485:9:1", + "referencedDeclaration": 109, + "src": "3194:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1980,14 +1877,14 @@ export const SetToken = "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 174, + "id": 113, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2497:1:1", + "src": "3206:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1995,11 +1892,24 @@ export const SetToken = }, "value": "0" }, - "src": "2485:13:1", + "src": "3194:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } + }, + { + "argumentTypes": null, + "id": 115, + "name": "ZERO_QUANTITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 40, + "src": "3221:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } ], "expression": { @@ -2007,23 +1917,27 @@ export const SetToken = { "typeIdentifier": "t_bool", "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } ], - "id": 172, + "id": 111, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "2477:7:1", + "referencedDeclaration": 1440, + "src": "3173:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 176, + "id": 116, "isConstant": false, "isLValue": false, "isPure": false, @@ -2031,38 +1945,38 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2477:22:1", + "src": "3173:71:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 177, + "id": 117, "nodeType": "ExpressionStatement", - "src": "2477:22:1" + "src": "3173:71:0" }, { - "id": 178, + "id": 118, "nodeType": "PlaceholderStatement", - "src": "2509:1:1" + "src": "3254:1:0" } ] }, "documentation": null, - "id": 180, - "name": "isNonZero", + "id": 120, + "name": "isPositive", "nodeType": "ModifierDefinition", "parameters": { - "id": 171, + "id": 110, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 170, + "id": 109, "name": "_quantity", "nodeType": "VariableDeclaration", - "scope": 180, - "src": "2451:14:1", + "scope": 120, + "src": "3147:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2070,10 +1984,10 @@ export const SetToken = "typeString": "uint256" }, "typeName": { - "id": 169, + "id": 108, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2451:4:1", + "src": "3147:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2083,16 +1997,16 @@ export const SetToken = "visibility": "internal" } ], - "src": "2450:16:1" + "src": "3146:16:0" }, - "src": "2432:85:1", + "src": "3127:135:0", "visibility": "internal" }, { "body": { - "id": 288, + "id": 141, "nodeType": "Block", - "src": "2956:1554:1", + "src": "3309:93:0", "statements": [ { "expression": { @@ -2101,218 +2015,90 @@ export const SetToken = { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 198, + "id": 129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 195, - "name": "_components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "3017:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3017:18:1", + "id": 125, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 122, + "src": "3327:3:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3038:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3017:22:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f6d706f6e656e74206c656e677468206e6565647320746f206265206772656174207468616e2030", - "id": 199, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3041:43:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_af1aa43cd68feb04e30fa2dd8b887d579b12f174db6d808f2f1d5cbe9bf93e0b", - "typeString": "literal_string \"Component length needs to be great than 0\"" - }, - "value": "Component length needs to be great than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_af1aa43cd68feb04e30fa2dd8b887d579b12f174db6d808f2f1d5cbe9bf93e0b", - "typeString": "literal_string \"Component length needs to be great than 0\"" - } - ], - "id": 194, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "3009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3009:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 201, - "nodeType": "ExpressionStatement", - "src": "3009:76:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3342:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], "expression": { - "argumentTypes": null, - "id": 203, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3147:6:1", + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3334:7:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3147:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 205, + "id": 128, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "3163:1:1", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "3334:10:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "src": "3147:17:1", + "src": "3327:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - { - "argumentTypes": null, - "hexValue": "556e697473206d7573742062652067726561746572207468616e2030", - "id": 207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3166:30:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b429d23a593cc6479d757e298b5d5b9ff3cd48fd1caec2e31fdab1a96db1faea", - "typeString": "literal_string \"Units must be greater than 0\"" - }, - "value": "Units must be greater than 0" } ], "expression": { @@ -2320,27 +2106,23 @@ export const SetToken = { "typeIdentifier": "t_bool", "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b429d23a593cc6479d757e298b5d5b9ff3cd48fd1caec2e31fdab1a96db1faea", - "typeString": "literal_string \"Units must be greater than 0\"" } ], - "id": 202, + "id": 124, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2818, - "src": "3139:7:1", + "referencedDeclaration": 1439, + "src": "3319:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 208, + "id": 130, "isConstant": false, "isLValue": false, "isPure": false, @@ -2348,15 +2130,15 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3139:58:1", + "src": "3319:26:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 209, + "id": 131, "nodeType": "ExpressionStatement", - "src": "3139:58:1" + "src": "3319:26:0" }, { "expression": { @@ -2365,97 +2147,85 @@ export const SetToken = { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 215, + "id": 137, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 211, - "name": "_components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "3283:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3283:18:1", + "id": 133, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 122, + "src": "3363:3:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", - "operator": "==", + "operator": "!=", "rightExpression": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 135, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1463, + "src": "3378:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SetToken_$498", + "typeString": "contract SetToken" + } + } + ], "expression": { - "argumentTypes": null, - "id": 213, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3305:6:1", + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SetToken_$498", + "typeString": "contract SetToken" + } + ], + "id": 134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3370:7:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 214, + "id": 136, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3305:13:1", + "names": [], + "nodeType": "FunctionCall", + "src": "3370:13:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "3283:35:1", + "src": "3363:20:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - { - "argumentTypes": null, - "hexValue": "436f6d706f6e656e7420616e6420756e6974206c656e67746873206d757374206265207468652073616d65", - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3320:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2f2af9c2d05d7e735e1a1200787dd612cb60f54ad5a23a8a586562adddc605d", - "typeString": "literal_string \"Component and unit lengths must be the same\"" - }, - "value": "Component and unit lengths must be the same" } ], "expression": { @@ -2463,27 +2233,23 @@ export const SetToken = { "typeIdentifier": "t_bool", "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2f2af9c2d05d7e735e1a1200787dd612cb60f54ad5a23a8a586562adddc605d", - "typeString": "literal_string \"Component and unit lengths must be the same\"" } ], - "id": 210, + "id": 132, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2818, - "src": "3275:7:1", + "referencedDeclaration": 1439, + "src": "3355:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 217, + "id": 138, "isConstant": false, "isLValue": false, "isPure": false, @@ -2491,80 +2257,176 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3275:91:1", + "src": "3355:29:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 218, + "id": 139, "nodeType": "ExpressionStatement", - "src": "3275:91:1" + "src": "3355:29:0" }, { - "expression": { + "id": 140, + "nodeType": "PlaceholderStatement", + "src": "3394:1:0" + } + ] + }, + "documentation": null, + "id": 142, + "name": "isValidDestination", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 122, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 142, + "src": "3296:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 121, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3296:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3295:13:0" + }, + "src": "3268:134:0", + "visibility": "internal" + }, + { + "body": { + "id": 279, + "nodeType": "Block", + "src": "4363:1934:0", + "statements": [ + { + "assignments": [ + 165 + ], + "declarations": [ + { + "constant": false, + "id": 165, + "name": "minDecimals", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4498:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 164, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4498:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 167, + "initialValue": { "argumentTypes": null, - "id": 221, + "hexValue": "3138", + "id": 166, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 219, - "name": "naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "3377:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "Literal", + "src": "4518:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 220, - "name": "_naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "3391:12:1", + "value": "18" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4498:22:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 169, + "name": "currentDecimals", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4530:21:0", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3377:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 168, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4530:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" } - }, - "id": 222, - "nodeType": "ExpressionStatement", - "src": "3377:26:1" + ], + "id": 170, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "4530:21:0" }, { "body": { - "id": 286, + "id": 269, "nodeType": "Block", - "src": "3715:789:1", + "src": "4604:1402:0", "statements": [ { "assignments": [ - 235 + 183 ], "declarations": [ { "constant": false, - "id": 235, + "id": 183, "name": "currentUnits", "nodeType": "VariableDeclaration", - "scope": 289, - "src": "3811:17:1", + "scope": 280, + "src": "4700:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2572,10 +2434,10 @@ export const SetToken = "typeString": "uint256" }, "typeName": { - "id": 234, + "id": 182, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3811:4:1", + "src": "4700:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2585,31 +2447,31 @@ export const SetToken = "visibility": "internal" } ], - "id": 239, + "id": 187, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 236, + "id": 184, "name": "_units", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3831:6:1", + "referencedDeclaration": 150, + "src": "4720:6:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 238, + "id": 186, "indexExpression": { "argumentTypes": null, - "id": 237, + "id": 185, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "3838:1:1", + "referencedDeclaration": 172, + "src": "4727:1:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -2620,14 +2482,14 @@ export const SetToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3831:9:1", + "src": "4720:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3811:29:1" + "src": "4700:29:0" }, { "expression": { @@ -2639,19 +2501,19 @@ export const SetToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 243, + "id": 191, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 241, + "id": 189, "name": "currentUnits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "3862:12:1", + "referencedDeclaration": 183, + "src": "4768:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2662,14 +2524,14 @@ export const SetToken = "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 242, + "id": 190, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3877:1:1", + "src": "4783:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2677,7 +2539,7 @@ export const SetToken = }, "value": "0" }, - "src": "3862:16:1", + "src": "4768:16:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2685,21 +2547,16 @@ export const SetToken = }, { "argumentTypes": null, - "hexValue": "556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a65726f", - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3880:36:1", - "subdenomination": null, + "id": 192, + "name": "INVALID_COMPONENT_UNIT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "4802:22:0", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1fcd00b39e3151e09a562622d3a6b29cabbd51954c8dfac36c49958a5358ead2", - "typeString": "literal_string \"Unit declarations must be non-zero\"" - }, - "value": "Unit declarations must be non-zero" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } ], "expression": { @@ -2709,25 +2566,25 @@ export const SetToken = "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_1fcd00b39e3151e09a562622d3a6b29cabbd51954c8dfac36c49958a5358ead2", - "typeString": "literal_string \"Unit declarations must be non-zero\"" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } ], - "id": 240, + "id": 188, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2818, - "src": "3854:7:1", + "referencedDeclaration": 1440, + "src": "4743:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 245, + "id": 193, "isConstant": false, "isLValue": false, "isPure": false, @@ -2735,28 +2592,28 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3854:63:1", + "src": "4743:95:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 246, + "id": 194, "nodeType": "ExpressionStatement", - "src": "3854:63:1" + "src": "4743:95:0" }, { "assignments": [ - 248 + 196 ], "declarations": [ { "constant": false, - "id": 248, + "id": 196, "name": "currentComponent", "nodeType": "VariableDeclaration", - "scope": 289, - "src": "3985:24:1", + "scope": 280, + "src": "4906:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2764,10 +2621,10 @@ export const SetToken = "typeString": "address" }, "typeName": { - "id": 247, + "id": 195, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3985:7:1", + "src": "4906:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2777,31 +2634,31 @@ export const SetToken = "visibility": "internal" } ], - "id": 252, + "id": 200, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 249, + "id": 197, "name": "_components", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "4012:11:1", + "referencedDeclaration": 147, + "src": "4933:11:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 251, + "id": 199, "indexExpression": { "argumentTypes": null, - "id": 250, + "id": 198, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "4024:1:1", + "referencedDeclaration": 172, + "src": "4945:1:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -2812,14 +2669,14 @@ export const SetToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4012:14:1", + "src": "4933:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "3985:41:1" + "src": "4906:41:0" }, { "expression": { @@ -2831,19 +2688,19 @@ export const SetToken = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 258, + "id": 206, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 254, + "id": 202, "name": "currentComponent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4048:16:1", + "referencedDeclaration": 196, + "src": "4986:16:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2857,14 +2714,14 @@ export const SetToken = { "argumentTypes": null, "hexValue": "30", - "id": 256, + "id": 204, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4076:1:1", + "src": "5014:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2880,20 +2737,20 @@ export const SetToken = "typeString": "int_const 0" } ], - "id": 255, + "id": 203, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4068:7:1", + "src": "5006:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 257, + "id": 205, "isConstant": false, "isLValue": false, "isPure": true, @@ -2901,13 +2758,13 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4068:10:1", + "src": "5006:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4048:30:1", + "src": "4986:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2915,21 +2772,16 @@ export const SetToken = }, { "argumentTypes": null, - "hexValue": "436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f2061646472657373", - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4080:39:1", - "subdenomination": null, + "id": 207, + "name": "INVALID_COMPONENT_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "5034:25:0", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_969b60f773ceaa56d354520346cdb4706d2cd4c28ed781f9ff7cf04e7b476634", - "typeString": "literal_string \"Components must have non-zero address\"" - }, - "value": "Components must have non-zero address" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } ], "expression": { @@ -2939,25 +2791,25 @@ export const SetToken = "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_969b60f773ceaa56d354520346cdb4706d2cd4c28ed781f9ff7cf04e7b476634", - "typeString": "literal_string \"Components must have non-zero address\"" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } ], - "id": 253, + "id": 201, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2818, - "src": "4040:7:1", + "referencedDeclaration": 1440, + "src": "4961:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 260, + "id": 208, "isConstant": false, "isLValue": false, "isPure": false, @@ -2965,108 +2817,148 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4040:80:1", + "src": "4961:112:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 261, + "id": 209, "nodeType": "ExpressionStatement", - "src": "4040:80:1" + "src": "4961:112:0" }, { - "expression": { + "condition": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4205:35:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 264, - "name": "currentComponent", + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "646563696d616c732829", + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5211:12:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", + "typeString": "literal_string \"decimals()\"" + }, + "value": "decimals()" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", + "typeString": "literal_string \"decimals()\"" + } + ], + "id": 213, + "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4223:16:1", + "referencedDeclaration": 1430, + "src": "5201:9:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } - ], - "id": 263, - "name": "tokenIsComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "4206:16:1", + }, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5201:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - }, - "id": 265, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 212, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4206:34:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "5194:6:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": "bytes4" }, + "id": 216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5194:31:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } ], - "id": 262, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "4197:7:1", + "expression": { + "argumentTypes": null, + "id": 210, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5172:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5172:21:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_barecall_payable$__$returns$_t_bool_$", + "typeString": "function () payable returns (bool)" } }, - "id": 267, + "id": 217, "isConstant": false, "isLValue": false, "isPure": false, @@ -3074,998 +2966,588 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4197:44:1", + "src": "5172:54:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 268, - "nodeType": "ExpressionStatement", - "src": "4197:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 269, - "name": "isComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "4308:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 273, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { + "falseBody": { + "id": 240, + "nodeType": "Block", + "src": "5420:185:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "argumentTypes": null, - "id": 271, - "name": "currentComponent", + "id": 236, + "name": "minDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4330:16:1", + "referencedDeclaration": 165, + "src": "5575:11:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } - ], - "id": 270, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "4320:9:1", + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5589:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5575:15:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "id": 272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4320:27:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4308:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "id": 239, + "nodeType": "ExpressionStatement", + "src": "5575:15:0" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4351:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4308:47:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + ] }, - "id": 276, - "nodeType": "ExpressionStatement", - "src": "4308:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "id": 241, + "nodeType": "IfStatement", + "src": "5168:437:0", + "trueBody": { + "id": 235, + "nodeType": "Block", + "src": "5228:186:0", + "statements": [ { - "argumentTypes": null, - "arguments": [ - { + "expression": { + "argumentTypes": null, + "id": 224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "argumentTypes": null, - "id": 281, - "name": "currentComponent", + "id": 218, + "name": "currentDecimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4424:16:1", + "referencedDeclaration": 169, + "src": "5246:15:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "id": 282, - "name": "currentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4465:12:1", + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 220, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5278:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 219, + "name": "DetailedERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "5264:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$1099_$", + "typeString": "type(contract DetailedERC20)" + } + }, + "id": 221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5264:31:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DetailedERC20_$1099", + "typeString": "contract DetailedERC20" + } + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 1076, + "src": "5264:40:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5264:42:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } - } - ], - "expression": { - "argumentTypes": null, - "id": 280, - "name": "Component", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "4386:9:1", + }, + "src": "5246:60:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Component_$86_storage_ptr_$", - "typeString": "type(struct SetToken.Component storage pointer)" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "id": 283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "address_", - "unit_" - ], - "nodeType": "FunctionCall", - "src": "4386:106:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_memory", - "typeString": "struct SetToken.Component memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Component_$86_memory", - "typeString": "struct SetToken.Component memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 277, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "4370:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } + "id": 225, + "nodeType": "ExpressionStatement", + "src": "5246:60:0" }, - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4370:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Component_$86_storage_$returns$_t_uint256_$", - "typeString": "function (struct SetToken.Component storage ref) returns (uint256)" - } - }, - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4370:123:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 285, - "nodeType": "ExpressionStatement", - "src": "4370:123:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 227, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "3691:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 228, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3695:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + { + "expression": { + "argumentTypes": null, + "id": 233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 226, + "name": "minDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5324:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 227, + "name": "currentDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5338:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 228, + "name": "minDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5356:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "5338:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 231, + "name": "minDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5388:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "5338:61:0", + "trueExpression": { + "argumentTypes": null, + "id": 230, + "name": "currentDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5370:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "5324:75:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 234, + "nodeType": "ExpressionStatement", + "src": "5324:75:0" + } + ] } }, - "id": 229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3695:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3691:17:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 287, - "initializationExpression": { - "assignments": [ - 224 - ], - "declarations": [ { - "constant": false, - "id": 224, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "3677:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 223, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3677:6:1", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5689:35:0", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 244, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5707:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 243, + "name": "tokenIsComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "5690:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5690:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 242, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1439, + "src": "5681:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5681:44:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 226, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3688:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "id": 248, + "nodeType": "ExpressionStatement", + "src": "5681:44:0" }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3677:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3710:3:1", - "subExpression": { - "argumentTypes": null, - "id": 231, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "3710:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 233, - "nodeType": "ExpressionStatement", - "src": "3710:3:1" - }, - "nodeType": "ForStatement", - "src": "3672:832:1" - } - ] - }, - "documentation": "@dev Constructor Function for the issuance of an {Set} token\n@param _components address[] A list of component address which you want to include\n@param _units uint[] A list of quantities in gWei of each component (corresponds to the {Set} of _components)", - "id": 289, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 191, - "name": "_naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "2927:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 192, - "modifierName": { - "argumentTypes": null, - "id": 190, - "name": "isNonZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "2917:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2917:23:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 189, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 183, - "name": "_components", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2831:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 181, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2831:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 182, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2831:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 186, - "name": "_units", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2862:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 184, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2862:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 185, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2862:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 188, - "name": "_naturalUnit", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2885:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 187, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2885:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2821:87:1" - }, - "payable": false, - "returnParameters": { - "id": 193, - "nodeType": "ParameterList", - "parameters": [], - "src": "2956:0:1" - }, - "scope": 980, - "src": "2810:1700:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 387, - "nodeType": "Block", - "src": "5132:969:1", - "statements": [ - { - "body": { - "id": 373, - "nodeType": "Block", - "src": "5355:642:1", - "statements": [ { - "assignments": [ - 314 - ], - "declarations": [ - { - "constant": false, - "id": 314, - "name": "currentComponent", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5369:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 313, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 319, - "initialValue": { + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 315, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "5396:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 317, - "indexExpression": { - "argumentTypes": null, - "id": 316, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5407:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5396:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 318, + "id": 258, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "5396:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5369:49:1" - }, - { - "assignments": [ - 321 - ], - "declarations": [ - { - "constant": false, - "id": 321, - "name": "currentUnits", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5432:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 320, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5432:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 326, - "initialValue": { - "argumentTypes": null, - "expression": { + "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 322, - "name": "components", + "id": 249, + "name": "isComponent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "5452:10:1", + "referencedDeclaration": 54, + "src": "5792:11:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" } }, - "id": 324, + "id": 256, "indexExpression": { - "argumentTypes": null, - "id": 323, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5463:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5452:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 325, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "5452:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5432:39:1" - }, - { - "assignments": [ - 328 - ], - "declarations": [ - { - "constant": false, - "id": 328, - "name": "preTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5486:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 327, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5486:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 335, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 333, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "5546:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 330, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "5518:16:1", + "arguments": [ + { + "argumentTypes": null, + "id": 253, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5831:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 251, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "5814:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5814:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:34:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } ], - "id": 329, - "name": "ERC20", + "id": 250, + "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "5512:5:1", + "referencedDeclaration": 1430, + "src": "5804:9:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "id": 331, + "id": 255, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5512:23:1", + "src": "5804:45:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 332, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "5512:33:1", + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5792:58:0", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5512:39:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5486:65:1" - }, - { - "assignments": [ - 337 - ], - "declarations": [ - { - "constant": false, - "id": 337, - "name": "transferValue", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5566:18:1", - "stateVariable": false, - "storageLocation": "default", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5853:4:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 336, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5566:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 342, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 339, - "name": "currentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "5610:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_bool", + "typeString": "bool" }, - { - "argumentTypes": null, - "id": 340, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "5624:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 338, - "name": "calculateTransferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "5587:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } + "value": "true" }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5587:47:1", + "src": "5792:65:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5566:68:1" + "id": 259, + "nodeType": "ExpressionStatement", + "src": "5792:65:0" }, { "expression": { @@ -4076,54 +3558,25 @@ export const SetToken = "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 348, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "5693:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5693:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 350, - "name": "this", + "id": 264, + "name": "currentComponent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "5705:4:1", + "referencedDeclaration": 196, + "src": "5926:16:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, - "id": 351, - "name": "transferValue", + "id": 265, + "name": "currentUnits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 337, - "src": "5711:13:1", + "referencedDeclaration": 183, + "src": "5967:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4131,258 +3584,71 @@ export const SetToken = } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 345, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "5662:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 344, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "5656:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5656:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 2396, - "src": "5656:36:1", + "argumentTypes": null, + "id": 263, + "name": "Component", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 45, + "src": "5888:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" + "typeIdentifier": "t_type$_t_struct$_Component_$45_storage_ptr_$", + "typeString": "type(struct SetToken.Component storage pointer)" } }, - "id": 352, + "id": 266, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "structConstructorCall", "lValueRequested": false, - "names": [], + "names": [ + "address_", + "unit_" + ], "nodeType": "FunctionCall", - "src": "5656:69:1", + "src": "5888:106:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Component_$45_memory", + "typeString": "struct SetToken.Component memory" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Component_$45_memory", + "typeString": "struct SetToken.Component memory" } ], - "id": 343, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "5648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5648:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 354, - "nodeType": "ExpressionStatement", - "src": "5648:78:1" - }, - { - "assignments": [ - 356 - ], - "declarations": [ - { - "constant": false, - "id": 356, - "name": "postTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5838:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 355, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5838:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 363, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { + "expression": { "argumentTypes": null, - "id": 361, - "name": "this", + "id": 260, + "name": "components", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "5899:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 358, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "5871:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 357, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "5865:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5865:23:1", + "referencedDeclaration": 50, + "src": "5872:10:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" } }, - "id": 360, + "id": 262, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "balanceOf", + "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "5865:33:1", + "referencedDeclaration": null, + "src": "5872:15:0", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Component_$45_storage_$returns$_t_uint256_$", + "typeString": "function (struct SetToken.Component storage ref) returns (uint256)" } }, - "id": 362, + "id": 267, "isConstant": false, "isLValue": false, "isPure": false, @@ -4390,229 +3656,92 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5865:39:1", + "src": "5872:123:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5838:66:1" + "id": 268, + "nodeType": "ExpressionStatement", + "src": "5872:123:0" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 175, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 172, + "src": "4580:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 176, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 150, + "src": "4584:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 367, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 337, - "src": "5948:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 365, - "name": "preTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "5925:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "5925:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5925:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 369, - "name": "postTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "5966:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5925:60:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 364, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "5918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5918:68:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 372, - "nodeType": "ExpressionStatement", - "src": "5918:68:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 306, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5327:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 307, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "5331:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 308, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5331:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5327:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 374, - "initializationExpression": { - "assignments": [ - 303 - ], - "declarations": [ + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4584:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4580:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 270, + "initializationExpression": { + "assignments": [ + 172 + ], + "declarations": [ { "constant": false, - "id": 303, + "id": 172, "name": "i", "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5313:8:1", + "scope": 280, + "src": "4566:8:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4620,10 +3749,10 @@ export const SetToken = "typeString": "uint16" }, "typeName": { - "id": 302, + "id": 171, "name": "uint16", "nodeType": "ElementaryTypeName", - "src": "5313:6:1", + "src": "4566:6:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -4633,18 +3762,18 @@ export const SetToken = "visibility": "internal" } ], - "id": 305, + "id": 174, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 304, + "id": 173, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5324:1:1", + "src": "4577:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4653,12 +3782,12 @@ export const SetToken = "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "5313:12:1" + "src": "4566:12:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 311, + "id": 180, "isConstant": false, "isLValue": false, "isPure": false, @@ -4666,15 +3795,15 @@ export const SetToken = "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5350:3:1", + "src": "4599:3:0", "subExpression": { "argumentTypes": null, - "id": 310, + "id": 179, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5350:1:1", + "referencedDeclaration": 172, + "src": "4599:1:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -4685,266 +3814,289 @@ export const SetToken = "typeString": "uint16" } }, - "id": 312, + "id": 181, "nodeType": "ExpressionStatement", - "src": "5350:3:1" + "src": "4599:3:0" }, "nodeType": "ForStatement", - "src": "5308:689:1" + "src": "4561:1445:0" }, { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 376, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "6012:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 375, - "name": "mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "6007:4:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 377, + "id": 273, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6007:15:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 378, - "nodeType": "ExpressionStatement", - "src": "6007:15:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 380, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "6050:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6050:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 382, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "6062:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "leftHandSide": { + "argumentTypes": null, + "id": 271, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "6236:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 379, - "name": "LogIssuance", + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 272, + "name": "_factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1614, - "src": "6038:11:1", + "referencedDeclaration": 144, + "src": "6246:8:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6038:34:1", + "src": "6236:18:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 384, - "nodeType": "EmitStatement", - "src": "6033:39:1" + "id": 274, + "nodeType": "ExpressionStatement", + "src": "6236:18:0" }, { "expression": { "argumentTypes": null, - "hexValue": "74727565", - "id": 385, + "id": 277, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "bool", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "6090:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 301, - "id": 386, - "nodeType": "Return", - "src": "6083:11:1" - } - ] - }, - "documentation": "@dev Function to convert component into {Set} Tokens\n * Please note that the user's ERC20 component must be approved by\ntheir ERC20 contract to transfer their components to this contract.\n * @param _quantity uint The quantity of Sets desired to issue in Wei as a multiple of naturalUnit", - "id": 388, + "leftHandSide": { + "argumentTypes": null, + "id": 275, + "name": "naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "6264:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 276, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 152, + "src": "6278:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6264:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 278, + "nodeType": "ExpressionStatement", + "src": "6264:26:0" + } + ] + }, + "documentation": "Constructor function for {Set} token\n * As looping operations are expensive, checking for duplicates will be on the onus of the application developer\n * @param _components address[] A list of component address which you want to include\n@param _units uint[] A list of quantities in gWei of each component (corresponds to the {Set} of _components)\n@param _naturalUnit uint The minimum multiple of Sets that can be issued or redeeemed\n@param _name string The Set's name\n@param _symbol string the Set's symbol", + "id": 280, "implemented": true, - "isConstructor": false, + "isConstructor": true, "isDeclaredConst": false, "modifiers": [ { "arguments": [ { "argumentTypes": null, - "id": 294, - "name": "_quantity", + "id": 159, + "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "5062:9:1", + "referencedDeclaration": 154, + "src": "4244:5:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } - } - ], - "id": 295, - "modifierName": { - "argumentTypes": null, - "id": 293, - "name": "isMultipleOfNaturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "5038:23:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5038:34:1" - }, - { - "arguments": [ + }, { "argumentTypes": null, - "id": 297, - "name": "_quantity", + "id": 160, + "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "5091:9:1", + "referencedDeclaration": 156, + "src": "4251:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4260:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" } ], - "id": 298, + "id": 162, "modifierName": { "argumentTypes": null, - "id": 296, - "name": "isNonZero", + "id": 158, + "name": "DetailedERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "5081:9:1", + "referencedDeclaration": 1099, + "src": "4230:13:0", "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" + "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$1099_$", + "typeString": "type(contract DetailedERC20)" } }, "nodeType": "ModifierInvocation", - "src": "5081:20:1" + "src": "4230:33:0" } ], - "name": "issue", + "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 292, + "id": 157, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 291, - "name": "_quantity", + "id": 144, + "name": "_factory", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4057:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 143, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4057:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 147, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4083:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 145, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4083:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 146, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4083:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 150, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4114:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 148, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4114:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 149, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4114:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 152, + "name": "_naturalUnit", "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5014:14:1", + "scope": 280, + "src": "4137:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4952,10 +4104,10 @@ export const SetToken = "typeString": "uint256" }, "typeName": { - "id": 290, + "id": 151, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5014:4:1", + "src": "4137:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4963,1188 +4115,886 @@ export const SetToken = }, "value": null, "visibility": "internal" - } - ], - "src": "5013:16:1" - }, - "payable": false, - "returnParameters": { - "id": 301, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 300, - "name": "", + "id": 154, + "name": "_name", "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5126:4:1", + "scope": 280, + "src": "4164:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 299, - "name": "bool", + "id": 153, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "5126:4:1", + "src": "4164:6:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 156, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4186:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 155, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4186:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, "visibility": "internal" } ], - "src": "5125:6:1" + "src": "4047:159:0" + }, + "payable": false, + "returnParameters": { + "id": 163, + "nodeType": "ParameterList", + "parameters": [], + "src": "4363:0:0" }, - "scope": 980, - "src": "4999:1102:1", + "scope": 498, + "src": "4036:2261:0", "stateMutability": "nonpayable", - "superFunction": 1601, + "superFunction": null, "visibility": "public" }, { "body": { - "id": 488, + "id": 307, "nodeType": "Block", - "src": "6570:795:1", + "src": "6709:220:0", "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 405, - "name": "_quantity", + "id": 289, + "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6585:9:1", + "referencedDeclaration": 982, + "src": "6765:8:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + }, + "id": 291, + "indexExpression": { + "argumentTypes": null, + "id": 290, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "6774:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "id": 404, - "name": "burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "6580:4:1", + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6765:17:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6580:15:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 407, - "nodeType": "ExpressionStatement", - "src": "6580:15:1" - }, - { - "body": { - "id": 478, - "nodeType": "Block", - "src": "6653:632:1", - "statements": [ - { - "assignments": [ - 420 - ], - "declarations": [ - { - "constant": false, - "id": 420, - "name": "currentComponent", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6667:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 419, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6667:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 425, - "initialValue": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 421, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "6694:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 423, - "indexExpression": { - "argumentTypes": null, - "id": 422, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6705:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6694:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 424, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "6694:22:1", + "id": 296, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 284, + "src": "6807:9:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6667:49:1" - }, - { - "assignments": [ - 427 - ], - "declarations": [ + } + ], + "expression": { + "argumentTypes": [ { - "constant": false, - "id": 427, - "name": "currentUnits", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6730:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 426, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6730:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 432, - "initialValue": { + "expression": { "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 428, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "6750:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 430, - "indexExpression": { - "argumentTypes": null, - "id": 429, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6761:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6750:13:1", + "id": 292, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "6785:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 294, + "indexExpression": { + "argumentTypes": null, + "id": 293, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "6794:7:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 431, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "6750:19:1", + "nodeType": "IndexAccess", + "src": "6785:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6730:39:1" + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 882, + "src": "6785:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - { - "assignments": [ - 434 - ], - "declarations": [ + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6785:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6765:52:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 299, + "nodeType": "ExpressionStatement", + "src": "6765:52:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 300, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "6880:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 303, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 284, + "src": "6912:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ { - "constant": false, - "id": 434, - "name": "preTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6784:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 433, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6784:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 441, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 439, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "6844:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 436, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "6816:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 435, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "6810:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6810:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "6810:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6810:39:1", + "id": 301, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "6895:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6784:65:1" + "id": 302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 882, + "src": "6895:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6895:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6880:42:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 306, + "nodeType": "ExpressionStatement", + "src": "6880:42:0" + } + ] + }, + "documentation": null, + "id": 308, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 287, + "modifierName": { + "argumentTypes": null, + "id": 286, + "name": "isCore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "6698:6:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6698:6:0" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 282, + "name": "_issuer", + "nodeType": "VariableDeclaration", + "scope": 308, + "src": "6627:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 281, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6627:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 284, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 308, + "src": "6652:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 283, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6652:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6617:55:0" + }, + "payable": false, + "returnParameters": { + "id": 288, + "nodeType": "ParameterList", + "parameters": [], + "src": "6709:0:0" + }, + "scope": 498, + "src": "6604:325:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 354, + "nodeType": "Block", + "src": "7316:219:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "assignments": [ - 443 - ], - "declarations": [ - { - "constant": false, - "id": 443, - "name": "transferValue", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6864:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6864:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 448, - "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 445, - "name": "currentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "6908:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 446, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6922:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "baseExpression": { + "argumentTypes": null, + "id": 321, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "7334:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 444, - "name": "calculateTransferValue", + }, + "id": 323, + "indexExpression": { + "argumentTypes": null, + "id": 322, + "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "6885:22:1", + "referencedDeclaration": 310, + "src": "7343:5:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 447, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6885:47:1", + "nodeType": "IndexAccess", + "src": "7334:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6864:68:1" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 454, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "6987:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6987:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 456, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "6999:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 451, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "6960:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 450, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "6954:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6954:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2437, - "src": "6954:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6954:59:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 324, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 312, + "src": "7353:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7334:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1439, + "src": "7326:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7326:37:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 327, + "nodeType": "ExpressionStatement", + "src": "7326:37:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 328, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "7374:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 330, + "indexExpression": { + "argumentTypes": null, + "id": 329, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "7383:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7374:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 335, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 312, + "src": "7412:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 331, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "7392:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 449, - "name": "require", + }, + "id": 333, + "indexExpression": { + "argumentTypes": null, + "id": 332, + "name": "_from", "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "6946:7:1", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "7401:5:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 458, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6946:68:1", + "nodeType": "IndexAccess", + "src": "7392:15:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 459, - "nodeType": "ExpressionStatement", - "src": "6946:68:1" + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 858, + "src": "7392:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - { - "assignments": [ - 461 - ], - "declarations": [ + "id": 336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7392:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7374:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 338, + "nodeType": "ExpressionStatement", + "src": "7374:48:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 339, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "7432:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 342, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 312, + "src": "7464:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ { - "constant": false, - "id": 461, - "name": "postTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "7126:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 460, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7126:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 468, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 466, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "7187:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 463, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "7159:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 462, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "7153:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7153:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 465, + "id": 340, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "7447:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 858, + "src": "7447:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7447:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7432:42:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 345, + "nodeType": "ExpressionStatement", + "src": "7432:42:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 347, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "7499:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 349, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "7153:33:1", + "nodeType": "Literal", + "src": "7514:1:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } - }, - "id": 467, + ], + "id": 348, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7153:39:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "7506:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "nodeType": "VariableDeclarationStatement", - "src": "7126:66:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 472, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "7236:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 470, - "name": "preTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "7213:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "7213:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7213:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 474, - "name": "postTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 461, - "src": "7254:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7213:60:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 469, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "7206:6:1", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7206:68:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 477, - "nodeType": "ExpressionStatement", - "src": "7206:68:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 412, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6625:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 413, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "6629:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 414, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6629:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6625:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 479, - "initializationExpression": { - "assignments": [ - 409 - ], - "declarations": [ - { - "constant": false, - "id": 409, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6611:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 408, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "6611:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 411, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6622:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "6611:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "6648:3:1", - "subExpression": { - "argumentTypes": null, - "id": 416, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6648:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 418, - "nodeType": "ExpressionStatement", - "src": "6648:3:1" - }, - "nodeType": "ForStatement", - "src": "6606:679:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 481, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "7314:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7314:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7506:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, { "argumentTypes": null, - "id": 483, + "id": 351, "name": "_quantity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "7326:9:1", + "referencedDeclaration": 312, + "src": "7518:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6153,6 +5003,10 @@ export const SetToken = ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, { "typeIdentifier": "t_address", "typeString": "address" @@ -6162,18 +5016,18 @@ export const SetToken = "typeString": "uint256" } ], - "id": 480, - "name": "LogRedemption", + "id": 346, + "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "7300:13:1", + "referencedDeclaration": 1173, + "src": "7490:8:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" } }, - "id": 484, + "id": 352, "isConstant": false, "isLValue": false, "isPure": false, @@ -6181,357 +5035,227 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7300:36:1", + "src": "7490:38:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 485, + "id": 353, "nodeType": "EmitStatement", - "src": "7295:41:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7354:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 403, - "id": 487, - "nodeType": "Return", - "src": "7347:11:1" + "src": "7485:43:0" } ] }, - "documentation": "@dev Function to convert {Set} Tokens into underlying components\n * The ERC20 components do not need to be approved to call this function\n * @param _quantity uint The quantity of Sets desired to redeem in Wei as a multiple of naturalUnit", - "id": 489, + "documentation": null, + "id": 355, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { - "arguments": [ - { - "argumentTypes": null, - "id": 393, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6463:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 394, - "modifierName": { - "argumentTypes": null, - "id": 392, - "name": "isMultipleOfNaturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "6439:23:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6439:34:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 396, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6503:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 397, + "arguments": null, + "id": 315, "modifierName": { "argumentTypes": null, - "id": 395, - "name": "hasSufficientBalance", + "id": 314, + "name": "isCore", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "6482:20:1", + "referencedDeclaration": 72, + "src": "7275:6:0", "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6482:31:1" + "src": "7275:6:0" }, { "arguments": [ { "argumentTypes": null, - "id": 399, + "id": 317, "name": "_quantity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6532:9:1", + "referencedDeclaration": 312, + "src": "7301:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 400, + "id": 318, "modifierName": { "argumentTypes": null, - "id": 398, - "name": "isNonZero", + "id": 316, + "name": "isPositive", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "6522:9:1", + "referencedDeclaration": 120, + "src": "7290:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "6522:20:1" + "src": "7290:21:0" } ], - "name": "redeem", + "name": "burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 391, + "id": 313, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 390, - "name": "_quantity", + "id": 310, + "name": "_from", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6400:14:1", + "scope": 355, + "src": "7206:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 389, - "name": "uint", + "id": 309, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "6400:4:1", + "src": "7206:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" - } - ], - "src": "6399:16:1" - }, - "payable": false, - "returnParameters": { - "id": 403, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 402, - "name": "", + "id": 312, + "name": "_quantity", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6560:4:1", + "scope": 355, + "src": "7229:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 401, - "name": "bool", + "id": 311, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6560:4:1", + "src": "7229:4:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "6559:6:1" + "src": "7196:53:0" + }, + "payable": false, + "returnParameters": { + "id": 319, + "nodeType": "ParameterList", + "parameters": [], + "src": "7316:0:0" }, - "scope": 980, - "src": "6384:981:1", + "scope": 498, + "src": "7183:352:0", "stateMutability": "nonpayable", - "superFunction": 1608, - "visibility": "public" + "superFunction": null, + "visibility": "external" }, { "body": { - "id": 618, + "id": 396, "nodeType": "Block", - "src": "8384:1290:1", + "src": "7670:249:0", "statements": [ { - "expression": { + "assignments": [ + 364 + ], + "declarations": [ + { + "constant": false, + "id": 364, + "name": "componentAddresses", + "nodeType": "VariableDeclaration", + "scope": 397, + "src": "7680:35:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 362, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7680:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 363, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7680:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 371, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { "argumentTypes": null, - "id": 508, - "name": "_componentsToExclude", + "id": 368, + "name": "components", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "8527:20:1", + "referencedDeclaration": 50, + "src": "7732:10:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8550:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8527:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4578636c7564656420636f6d706f6e656e7473206d757374206265206e6f6e2d7a65726f", - "id": 511, + "id": 369, "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "8553:38:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dc43b6bde85ab0739e4e8030797fca8fcafe90429a798e69497c4f2c6dea5097", - "typeString": "literal_string \"Excluded components must be non-zero\"" - }, - "value": "Excluded components must be non-zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dc43b6bde85ab0739e4e8030797fca8fcafe90429a798e69497c4f2c6dea5097", - "typeString": "literal_string \"Excluded components must be non-zero\"" - } - ], - "id": 507, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "8519:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8519:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "8519:73:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 515, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8608:9:1", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7732:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6545,18 +5269,39 @@ export const SetToken = "typeString": "uint256" } ], - "id": 514, - "name": "burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "8603:4:1", + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "7718:13:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7722:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 366, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7722:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } } }, - "id": 516, + "id": 370, "isConstant": false, "isLValue": false, "isPure": false, @@ -6564,11784 +5309,636 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8603:15:1", + "src": "7718:32:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" } }, - "id": 517, - "nodeType": "ExpressionStatement", - "src": "8603:15:1" + "nodeType": "VariableDeclarationStatement", + "src": "7680:70:0" }, { "body": { - "id": 607, + "id": 392, "nodeType": "Block", - "src": "8676:889:1", + "src": "7807:71:0", "statements": [ { - "assignments": [ - 530 - ], - "declarations": [ - { - "constant": false, - "id": 530, - "name": "transferValue", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8690:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 529, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8690:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 538, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 532, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "8734:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 534, - "indexExpression": { - "argumentTypes": null, - "id": 533, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8745:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8734:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 535, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "8734:19:1", + "id": 383, + "name": "componentAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "7821:18:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - { + "id": 385, + "indexExpression": { "argumentTypes": null, - "id": 536, - "name": "_quantity", + "id": 384, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8755:9:1", + "referencedDeclaration": 373, + "src": "7840:1:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint16", + "typeString": "uint16" } - ], - "id": 531, - "name": "calculateTransferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "8711:22:1", + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7821:21:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8711:54:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8690:75:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 539, - "name": "_componentsToExclude", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "8947:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8978:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 542, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8983:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "8978:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } + "baseExpression": { + "argumentTypes": null, + "id": 386, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "7845:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8970:7:1", + }, + "id": 388, + "indexExpression": { + "argumentTypes": null, + "id": 387, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "7856:1:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": "bytes32" + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } }, - "id": 544, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8970:15:1", + "nodeType": "IndexAccess", + "src": "7845:13:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_struct$_Component_$45_storage", + "typeString": "struct SetToken.Component storage ref" } }, - "src": "8947:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 546, + "id": 389, "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "8988:1:1", - "subdenomination": null, + "memberName": "address_", + "nodeType": "MemberAccess", + "referencedDeclaration": 42, + "src": "7845:22:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "src": "8947:42:1", + "src": "7821:46:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "falseBody": { - "id": 605, - "nodeType": "Block", - "src": "9080:475:1", - "statements": [ - { - "assignments": [ - 559 - ], - "declarations": [ - { - "constant": false, - "id": 559, - "name": "preTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "9098:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 558, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9098:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 569, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 567, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "9164:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "9130:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 563, - "indexExpression": { - "argumentTypes": null, - "id": 562, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9141:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9130:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 564, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "9130:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 560, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "9124:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9124:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "9124:39:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9124:45:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9098:71:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 578, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "9235:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9235:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 580, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "9247:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 572, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "9202:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 574, - "indexExpression": { - "argumentTypes": null, - "id": 573, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9213:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9202:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 575, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "9202:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 571, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "9196:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9196:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2437, - "src": "9196:38:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9196:65:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 570, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "9188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9188:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 583, - "nodeType": "ExpressionStatement", - "src": "9188:74:1" - }, - { - "assignments": [ - 585 - ], - "declarations": [ - { - "constant": false, - "id": 585, - "name": "postTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "9382:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 584, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9382:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 595, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 593, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "9449:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "9415:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9426:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9415:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 590, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "9415:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 586, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "9409:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9409:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "9409:39:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9409:45:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9382:72:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 599, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "9502:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 597, - "name": "preTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 559, - "src": "9479:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "9479:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9479:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 601, - "name": "postTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "9520:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9479:60:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 596, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "9472:6:1", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9472:68:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 604, - "nodeType": "ExpressionStatement", - "src": "9472:68:1" - } - ] - }, - "id": 606, - "nodeType": "IfStatement", - "src": "8943:612:1", - "trueBody": { - "id": 557, - "nodeType": "Block", - "src": "8991:83:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 548, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "9009:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 552, - "indexExpression": { - "argumentTypes": null, - "id": 549, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9028:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9009:21:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 553, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 550, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "9031:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9031:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9009:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 554, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "9046:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9009:50:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 556, - "nodeType": "ExpressionStatement", - "src": "9009:50:1" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 522, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8648:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 523, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "8652:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 524, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8652:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8648:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 608, - "initializationExpression": { - "assignments": [ - 519 - ], - "declarations": [ - { - "constant": false, - "id": 519, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8634:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 518, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "8634:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 521, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 520, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8645:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8634:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8671:3:1", - "subExpression": { - "argumentTypes": null, - "id": 526, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8671:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 528, - "nodeType": "ExpressionStatement", - "src": "8671:3:1" - }, - "nodeType": "ForStatement", - "src": "8629:936:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 610, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "9601:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9601:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 612, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "9613:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 613, - "name": "_componentsToExclude", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "9624:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 609, - "name": "LogPartialRedemption", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "9580:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$", - "typeString": "function (address,uint256,bytes32)" - } - }, - "id": 614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9580:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 615, - "nodeType": "EmitStatement", - "src": "9575:70:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9663:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 506, - "id": 617, - "nodeType": "Return", - "src": "9656:11:1" - } - ] - }, - "documentation": "@dev Function to withdraw a portion of the component tokens of a Set\n * This function should be used in the event that a component token has been\npaused for transfer temporarily or permanently. This allows users a\nmethod to withdraw tokens in the event that one token has been frozen.\n * The mask can be computed by summing the powers of 2 of indexes of components to exclude.\nFor example, to exclude the 0th, 1st, and 3rd components, we pass in the hex of\n1 + 2 + 8 = 11, padded to length 32 i.e. 0x000000000000000000000000000000000000000000000000000000000000000b\n * @param _quantity uint The quantity of Sets desired to redeem in Wei\n@param _componentsToExclude bytes32 Hex of bitmask of components to exclude", - "id": 619, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 496, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8277:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 497, - "modifierName": { - "argumentTypes": null, - "id": 495, - "name": "isMultipleOfNaturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "8253:23:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8253:34:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 499, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8306:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 500, - "modifierName": { - "argumentTypes": null, - "id": 498, - "name": "isNonZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "8296:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8296:20:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 502, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8346:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 503, - "modifierName": { - "argumentTypes": null, - "id": 501, - "name": "hasSufficientBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "8325:20:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8325:31:1" - } - ], - "name": "partialRedeem", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 491, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8184:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8184:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 493, - "name": "_componentsToExclude", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8200:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 492, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8200:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8183:46:1" - }, - "payable": false, - "returnParameters": { - "id": 506, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 505, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8374:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 504, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8374:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8373:6:1" - }, - "scope": 980, - "src": "8161:1513:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 701, - "nodeType": "Block", - "src": "10288:693:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 627, - "name": "_componentsToRedeem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "10306:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10328:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10306:23:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f6d706f6e656e747320746f2072656465656d206d757374206265206e6f6e2d7a65726f", - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10331:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_580384d9ad1b31ff306fd95da0728bd78ff8cb2c4fbafcbb934965791a78d2b3", - "typeString": "literal_string \"Components to redeem must be non-zero\"" - }, - "value": "Components to redeem must be non-zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_580384d9ad1b31ff306fd95da0728bd78ff8cb2c4fbafcbb934965791a78d2b3", - "typeString": "literal_string \"Components to redeem must be non-zero\"" - } - ], - "id": 626, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "10298:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10298:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 632, - "nodeType": "ExpressionStatement", - "src": "10298:73:1" - }, - { - "body": { - "id": 691, - "nodeType": "Block", - "src": "10429:458:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 644, - "name": "_componentsToRedeem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "10447:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10477:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 647, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10482:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "10477:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 645, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10469:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": "bytes32" - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10469:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "10447:37:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10487:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10447:41:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 690, - "nodeType": "IfStatement", - "src": "10443:434:1", - "trueBody": { - "id": 689, - "nodeType": "Block", - "src": "10490:387:1", - "statements": [ - { - "assignments": [ - 654 - ], - "declarations": [ - { - "constant": false, - "id": 654, - "name": "currentComponent", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10508:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 653, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10508:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 659, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 655, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "10535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 657, - "indexExpression": { - "argumentTypes": null, - "id": 656, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10546:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10535:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 658, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "10535:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10508:49:1" - }, - { - "assignments": [ - 661 - ], - "declarations": [ - { - "constant": false, - "id": 661, - "name": "remainingBalance", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10575:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 660, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10575:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 668, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 662, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "10599:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 664, - "indexExpression": { - "argumentTypes": null, - "id": 663, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10618:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10599:21:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 667, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 665, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10621:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10621:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10599:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10575:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 669, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "10735:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 673, - "indexExpression": { - "argumentTypes": null, - "id": 670, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10754:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10735:21:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 674, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 671, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10757:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10757:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10735:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10771:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10735:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 677, - "nodeType": "ExpressionStatement", - "src": "10735:37:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 683, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10832:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10832:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 685, - "name": "remainingBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 661, - "src": "10844:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 680, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "10805:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 679, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "10799:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10799:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2437, - "src": "10799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10799:62:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 678, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "10791:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10791:71:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 688, - "nodeType": "ExpressionStatement", - "src": "10791:71:1" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 637, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10401:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 638, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "10405:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 639, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10405:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10401:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 692, - "initializationExpression": { - "assignments": [ - 634 - ], - "declarations": [ - { - "constant": false, - "id": 634, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10387:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 633, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "10387:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 636, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10398:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10387:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10424:3:1", - "subExpression": { - "argumentTypes": null, - "id": 641, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10424:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 643, - "nodeType": "ExpressionStatement", - "src": "10424:3:1" - }, - "nodeType": "ForStatement", - "src": "10382:505:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 694, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10920:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10920:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 696, - "name": "_componentsToRedeem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "10932:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 693, - "name": "LogRedeemExcluded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "10902:17:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32)" - } - }, - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10902:50:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 698, - "nodeType": "EmitStatement", - "src": "10897:55:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10970:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 625, - "id": 700, - "nodeType": "Return", - "src": "10963:11:1" - } - ] - }, - "documentation": "@dev Function to withdraw tokens that have previously been excluded when calling\nthe partialRedeem method\nThe mask can be computed by summing the powers of 2 of indexes of components to redeem.\nFor example, to redeem the 0th, 1st, and 3rd components, we pass in the hex of\n1 + 2 + 8 = 11, padded to length 32 i.e. 0x000000000000000000000000000000000000000000000000000000000000000b\n * @param _componentsToRedeem bytes32 Hex of bitmask of components to redeem", - "id": 702, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "redeemExcluded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 622, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "_componentsToRedeem", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10217:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 620, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10216:29:1" - }, - "payable": false, - "returnParameters": { - "id": 625, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 624, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10278:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 623, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10278:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10277:6:1" - }, - "scope": 980, - "src": "10193:788:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 743, - "nodeType": "Block", - "src": "11216:249:1", - "statements": [ - { - "assignments": [ - 711 - ], - "declarations": [ - { - "constant": false, - "id": 711, - "name": "componentAddresses", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "11226:35:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 709, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11226:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 710, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11226:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 718, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 715, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11278:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 716, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11278:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "11264:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 712, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 713, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11268:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11264:32:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11226:70:1" - }, - { - "body": { - "id": 739, - "nodeType": "Block", - "src": "11353:71:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 730, - "name": "componentAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 711, - "src": "11367:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 732, - "indexExpression": { - "argumentTypes": null, - "id": 731, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11386:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11367:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 733, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11391:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 735, - "indexExpression": { - "argumentTypes": null, - "id": 734, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11402:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11391:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 736, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "11391:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11367:46:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "11367:46:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 723, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11325:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 724, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11329:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 725, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11329:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11325:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 740, - "initializationExpression": { - "assignments": [ - 720 - ], - "declarations": [ - { - "constant": false, - "id": 720, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "11311:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 719, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "11311:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 722, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11322:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "11311:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "11348:3:1", - "subExpression": { - "argumentTypes": null, - "id": 727, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11348:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 729, - "nodeType": "ExpressionStatement", - "src": "11348:3:1" - }, - "nodeType": "ForStatement", - "src": "11306:118:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 741, - "name": "componentAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 711, - "src": "11440:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 707, - "id": 742, - "nodeType": "Return", - "src": "11433:25:1" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Getters\n////////////////////////////////////////////////////////", - "id": 744, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getComponents", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 703, - "nodeType": "ParameterList", - "parameters": [], - "src": "11153:2:1" - }, - "payable": false, - "returnParameters": { - "id": 707, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 706, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "11201:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11201:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 705, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11201:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11200:11:1" - }, - "scope": 980, - "src": "11131:334:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 785, - "nodeType": "Block", - "src": "11547:201:1", - "statements": [ - { - "assignments": [ - 753 - ], - "declarations": [ - { - "constant": false, - "id": 753, - "name": "units", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "11557:19:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11557:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 752, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11557:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 760, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 757, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11590:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 758, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11590:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 756, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "11579:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 754, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11583:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 755, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11583:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11579:29:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11557:51:1" - }, - { - "body": { - "id": 781, - "nodeType": "Block", - "src": "11665:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 772, - "name": "units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "11679:5:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 774, - "indexExpression": { - "argumentTypes": null, - "id": 773, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11685:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11679:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 775, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11690:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 777, - "indexExpression": { - "argumentTypes": null, - "id": 776, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11701:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11690:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 778, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "11690:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11679:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 780, - "nodeType": "ExpressionStatement", - "src": "11679:30:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 765, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11637:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 766, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11641:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 767, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11641:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11637:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 782, - "initializationExpression": { - "assignments": [ - 762 - ], - "declarations": [ - { - "constant": false, - "id": 762, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "11623:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 761, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "11623:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 764, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11634:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "11623:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "11660:3:1", - "subExpression": { - "argumentTypes": null, - "id": 769, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11660:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 771, - "nodeType": "ExpressionStatement", - "src": "11660:3:1" - }, - "nodeType": "ForStatement", - "src": "11618:102:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 783, - "name": "units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "11736:5:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "functionReturnParameters": 749, - "id": 784, - "nodeType": "Return", - "src": "11729:12:1" - } - ] - }, - "documentation": null, - "id": 786, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getUnits", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 745, - "nodeType": "ParameterList", - "parameters": [], - "src": "11488:2:1" - }, - "payable": false, - "returnParameters": { - "id": 749, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 748, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "11535:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 746, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11535:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 747, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11535:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11534:8:1" - }, - "scope": 980, - "src": "11471:277:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 835, - "nodeType": "Block", - "src": "11913:336:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 797, - "name": "_componentAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "11948:17:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 796, - "name": "tokenIsComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "11931:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11931:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 795, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "11923:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11923:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 800, - "nodeType": "ExpressionStatement", - "src": "11923:44:1" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 802, - "name": "componentIndex", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11978:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 801, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11978:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 803, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "11978:19:1" - }, - { - "body": { - "id": 827, - "nodeType": "Block", - "src": "12053:124:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 815, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "12071:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 817, - "indexExpression": { - "argumentTypes": null, - "id": 816, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12082:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12071:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 818, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "12071:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 819, - "name": "_componentAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "12097:17:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12071:43:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 826, - "nodeType": "IfStatement", - "src": "12067:100:1", - "trueBody": { - "id": 825, - "nodeType": "Block", - "src": "12116:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 821, - "name": "componentIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "12134:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 822, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12151:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12134:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 824, - "nodeType": "ExpressionStatement", - "src": "12134:18:1" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 808, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12025:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 809, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "12029:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 810, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12029:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12025:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 828, - "initializationExpression": { - "assignments": [ - 805 - ], - "declarations": [ - { - "constant": false, - "id": 805, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "12013:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 804, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12013:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 807, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12022:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12013:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12048:3:1", - "subExpression": { - "argumentTypes": null, - "id": 812, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12048:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 814, - "nodeType": "ExpressionStatement", - "src": "12048:3:1" - }, - "nodeType": "ForStatement", - "src": "12008:169:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 829, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "12194:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 831, - "indexExpression": { - "argumentTypes": null, - "id": 830, - "name": "componentIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "12213:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12194:34:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 833, - "indexExpression": { - "argumentTypes": null, - "id": 832, - "name": "_userAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 790, - "src": "12229:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12194:48:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 794, - "id": 834, - "nodeType": "Return", - "src": "12187:55:1" - } - ] - }, - "documentation": null, - "id": 836, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getUnredeemedBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 788, - "name": "_componentAddress", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11793:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 787, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11793:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 790, - "name": "_userAddress", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11828:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 789, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11828:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11783:71:1" - }, - "payable": false, - "returnParameters": { - "id": 794, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 793, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11900:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 792, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11900:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11899:9:1" - }, - "scope": 980, - "src": "11754:495:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 854, - "nodeType": "Block", - "src": "12549:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 850, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "12581:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 851, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "12586:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 848, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "12566:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_SetToken_$980", - "typeString": "contract super SetToken" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2324, - "src": "12566:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12566:27:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 847, - "id": 853, - "nodeType": "Return", - "src": "12559:34:1" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Transfer Updates\n////////////////////////////////////////////////////////", - "id": 855, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 843, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "12502:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 844, - "modifierName": { - "argumentTypes": null, - "id": 842, - "name": "validDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "12485:16:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12485:21:1" - } - ], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 841, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 838, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 855, - "src": "12435:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 837, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12435:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 840, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 855, - "src": "12456:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 839, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12456:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12425:51:1" - }, - "payable": false, - "returnParameters": { - "id": 847, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 846, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 855, - "src": "12539:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 845, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12539:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12538:6:1" - }, - "scope": 980, - "src": "12408:192:1", - "stateMutability": "nonpayable", - "superFunction": 2324, - "visibility": "public" - }, - { - "body": { - "id": 876, - "nodeType": "Block", - "src": "12774:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 871, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "12810:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 872, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "12817:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 873, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 861, - "src": "12822:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 869, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "12791:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_SetToken_$980", - "typeString": "contract super SetToken" - } - }, - "id": 870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 2652, - "src": "12791:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12791:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 868, - "id": 875, - "nodeType": "Return", - "src": "12784:45:1" - } - ] - }, - "documentation": null, - "id": 877, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 864, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "12727:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 865, - "modifierName": { - "argumentTypes": null, - "id": 863, - "name": "validDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "12710:16:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12710:21:1" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 862, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 857, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12637:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 856, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12637:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 859, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12660:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 858, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12660:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 861, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12681:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 860, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12681:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12627:74:1" - }, - "payable": false, - "returnParameters": { - "id": 868, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 867, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12764:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 866, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12764:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12763:6:1" - }, - "scope": 980, - "src": "12606:230:1", - "stateMutability": "nonpayable", - "superFunction": 2652, - "visibility": "public" - }, - { - "body": { - "id": 890, - "nodeType": "Block", - "src": "13116:61:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 884, - "name": "isComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "13133:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 888, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 886, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "13155:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 885, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "13145:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13145:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13133:37:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 883, - "id": 889, - "nodeType": "Return", - "src": "13126:44:1" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Private Function\n////////////////////////////////////////////////////////", - "id": 891, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "tokenIsComponent", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 880, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 879, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 891, - "src": "13031:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 878, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13031:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13021:37:1" - }, - "payable": false, - "returnParameters": { - "id": 883, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 891, - "src": "13106:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 881, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "13106:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13105:6:1" - }, - "scope": 980, - "src": "12996:181:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 908, - "nodeType": "Block", - "src": "13329:69:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 905, - "name": "componentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 893, - "src": "13376:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 902, - "name": "naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "13359:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 900, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "13346:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 2110, - "src": "13346:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13346:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 2096, - "src": "13346:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13346:45:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 899, - "id": 907, - "nodeType": "Return", - "src": "13339:52:1" - } - ] - }, - "documentation": null, - "id": 909, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "calculateTransferValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 896, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 893, - "name": "componentUnits", - "nodeType": "VariableDeclaration", - "scope": 909, - "src": "13224:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 892, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13224:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 895, - "name": "quantity", - "nodeType": "VariableDeclaration", - "scope": 909, - "src": "13253:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 894, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13253:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13214:58:1" - }, - "payable": false, - "returnParameters": { - "id": 899, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 898, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 909, - "src": "13319:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 897, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13319:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13318:6:1" - }, - "scope": 980, - "src": "13183:215:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 943, - "nodeType": "Block", - "src": "13468:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 914, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13478:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 917, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 915, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13487:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13487:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13478:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 923, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "13526:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 918, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13501:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 921, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13510:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13510:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13501:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "13501:24:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13501:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13478:57:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 926, - "nodeType": "ExpressionStatement", - "src": "13478:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 927, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13545:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 930, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "13577:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 928, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13560:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "13560:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13560:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13545:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 933, - "nodeType": "ExpressionStatement", - "src": "13545:41:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13618:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13610:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13610:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 938, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13622:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13622:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 940, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "13634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 934, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "13601:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13601:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 942, - "nodeType": "EmitStatement", - "src": "13596:47:1" - } - ] - }, - "documentation": null, - "id": 944, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 912, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 911, - "name": "quantity", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13427:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 910, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13427:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13417:29:1" - }, - "payable": false, - "returnParameters": { - "id": 913, - "nodeType": "ParameterList", - "parameters": [], - "src": "13468:0:1" - }, - "scope": 980, - "src": "13404:246:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 978, - "nodeType": "Block", - "src": "13720:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 949, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13730:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 952, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 950, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13739:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13739:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13730:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 958, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "13778:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 953, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13753:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 956, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 954, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13762:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13762:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13753:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "13753:24:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13753:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13730:57:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 961, - "nodeType": "ExpressionStatement", - "src": "13730:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 962, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13797:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 965, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "13829:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 963, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13812:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "13812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13812:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13797:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 968, - "nodeType": "ExpressionStatement", - "src": "13797:41:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 970, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13862:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13862:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13882:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 972, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13874:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13874:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 975, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "13886:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 969, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "13853:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13853:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 977, - "nodeType": "EmitStatement", - "src": "13848:47:1" - } - ] - }, - "documentation": null, - "id": 979, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 947, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 946, - "name": "quantity", - "nodeType": "VariableDeclaration", - "scope": 979, - "src": "13679:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 945, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13679:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13669:29:1" - }, - "payable": false, - "returnParameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:0:1" - }, - "scope": 980, - "src": "13656:246:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 981, - "src": "485:13419:1" - } - ], - "src": "0:13905:1" - }, - "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetToken.sol", - "exportedSymbols": { - "SetToken": [ - 980 - ] - }, - "id": 981, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 58, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "id": 59, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:1" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", - "id": 60, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2800, - "src": "60:67:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 61, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2415, - "src": "128:59:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "file": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "id": 62, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2372, - "src": "188:67:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", - "file": "zeppelin-solidity/contracts/math/SafeMath.sol", - "id": 63, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 2156, - "src": "256:55:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/lib/AddressArrayUtils.sol", - "file": "../lib/AddressArrayUtils.sol", - "id": 64, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 1688, - "src": "312:38:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", - "file": "./interfaces/ISetToken.sol", - "id": 65, - "nodeType": "ImportDirective", - "scope": 981, - "sourceUnit": 1622, - "src": "351:36:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 66, - "name": "StandardToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "510:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", - "typeString": "contract StandardToken" - } - }, - "id": 67, - "nodeType": "InheritanceSpecifier", - "src": "510:13:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "", - "id": 69, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "543:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 70, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "547:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 71, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "551:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "baseName": { - "contractScope": null, - "id": 68, - "name": "DetailedERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2371, - "src": "529:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$2371", - "typeString": "contract DetailedERC20" - } - }, - "id": 72, - "nodeType": "InheritanceSpecifier", - "src": "529:25:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 73, - "name": "ISetToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1621, - "src": "560:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "id": 74, - "nodeType": "InheritanceSpecifier", - "src": "560:9:1" - } - ], - "contractDependencies": [ - 1621, - 2337, - 2371, - 2414, - 2446, - 2799 - ], - "contractKind": "contract", - "documentation": "@title {Set}\n@author Felix Feng\n@dev Implementation of the basic {Set} token.", - "fullyImplemented": true, - "id": 980, - "linearizedBaseContracts": [ - 980, - 1621, - 2371, - 2799, - 2337, - 2414, - 2446 - ], - "name": "SetToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 77, - "libraryName": { - "contractScope": null, - "id": 75, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "582:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "576:27:1", - "typeName": { - "id": 76, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "595:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 81, - "libraryName": { - "contractScope": null, - "id": 78, - "name": "AddressArrayUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1687, - "src": "614:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressArrayUtils_$1687", - "typeString": "library AddressArrayUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "608:38:1", - "typeName": { - "baseType": { - "id": 79, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "636:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 80, - "length": null, - "nodeType": "ArrayTypeName", - "src": "636:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - { - "canonicalName": "SetToken.Component", - "id": 86, - "members": [ - { - "constant": false, - "id": 83, - "name": "address_", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "831:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 82, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "831:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 85, - "name": "unit_", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "857:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 84, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "857:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Component", - "nodeType": "StructDefinition", - "scope": 980, - "src": "804:70:1", - "visibility": "public" - }, - { - "constant": false, - "id": 88, - "name": "naturalUnit", - "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1023:23:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 87, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1023:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 91, - "name": "components", - "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1052:29:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 89, - "name": "Component", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 86, - "src": "1052:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage_ptr", - "typeString": "struct SetToken.Component" - } - }, - "id": 90, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1052:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage_ptr", - "typeString": "struct SetToken.Component[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 95, - "name": "isComponent", - "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1135:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 94, - "keyType": { - "id": 92, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1135:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 93, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1154:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 101, - "name": "unredeemedBalances", - "nodeType": "VariableDeclaration", - "scope": 980, - "src": "1250:69:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - }, - "typeName": { - "id": 100, - "keyType": { - "id": 96, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1258:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "1250:41:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - }, - "valueType": { - "id": 99, - "keyType": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1274:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1266:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 98, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1285:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": "////////////////////////////////////////////////////////\n Events\n////////////////////////////////////////////////////////", - "id": 109, - "name": "LogPartialRedemption", - "nodeType": "EventDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 103, - "indexed": true, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "1506:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 102, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1506:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 105, - "indexed": false, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "1539:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 104, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1539:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "indexed": false, - "name": "_excludedComponents", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "1563:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 106, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1563:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1496:100:1" - }, - "src": "1470:127:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 115, - "name": "LogRedeemExcluded", - "nodeType": "EventDefinition", - "parameters": { - "id": 114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 111, - "indexed": true, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "1636:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1636:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 113, - "indexed": false, - "name": "_components", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "1669:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 112, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1669:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1626:68:1" - }, - "src": "1603:92:1" - }, - { - "body": { - "id": 130, - "nodeType": "Block", - "src": "1892:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 120, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2074:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 123, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 121, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "2083:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2083:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2074:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 124, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "2098:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2074:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5573657220646f6573206e6f7420686176652073756666696369656e742062616c616e6365", - "id": 126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2108:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2904332a815b8920ad7c1c875f85d43154f982f515649fe19f339b58ac141e71", - "typeString": "literal_string \"User does not have sufficient balance\"" - }, - "value": "User does not have sufficient balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2904332a815b8920ad7c1c875f85d43154f982f515649fe19f339b58ac141e71", - "typeString": "literal_string \"User does not have sufficient balance\"" - } - ], - "id": 119, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "2066:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2066:82:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 128, - "nodeType": "ExpressionStatement", - "src": "2066:82:1" - }, - { - "id": 129, - "nodeType": "PlaceholderStatement", - "src": "2158:1:1" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Modifiers\n////////////////////////////////////////////////////////", - "id": 131, - "name": "hasSufficientBalance", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 117, - "name": "quantity", - "nodeType": "VariableDeclaration", - "scope": 131, - "src": "1877:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1876:15:1" - }, - "src": "1847:319:1", - "visibility": "internal" - }, - { - "body": { - "id": 152, - "nodeType": "Block", - "src": "2211:93:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 136, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "2229:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2244:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2236:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2236:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2229:17:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 135, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2221:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2221:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 142, - "nodeType": "ExpressionStatement", - "src": "2221:26:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 144, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "2265:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 146, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "2280:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2272:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2272:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2265:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 143, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2257:29:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 150, - "nodeType": "ExpressionStatement", - "src": "2257:29:1" - }, - { - "id": 151, - "nodeType": "PlaceholderStatement", - "src": "2296:1:1" - } - ] - }, - "documentation": null, - "id": 153, - "name": "validDestination", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 133, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 153, - "src": "2198:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2198:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2197:13:1" - }, - "src": "2172:132:1", - "visibility": "internal" - }, - { - "body": { - "id": 167, - "nodeType": "Block", - "src": "2359:67:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 158, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 155, - "src": "2378:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 159, - "name": "naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "2390:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2378:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 161, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2377:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 162, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2406:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2377:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 157, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2369:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 165, - "nodeType": "ExpressionStatement", - "src": "2369:39:1" - }, - { - "id": 166, - "nodeType": "PlaceholderStatement", - "src": "2418:1:1" - } - ] - }, - "documentation": null, - "id": 168, - "name": "isMultipleOfNaturalUnit", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 155, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 168, - "src": "2343:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 154, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2343:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2342:16:1" - }, - "src": "2310:116:1", - "visibility": "internal" - }, - { - "body": { - "id": 179, - "nodeType": "Block", - "src": "2467:50:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 173, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "2485:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2497:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2485:13:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 172, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2477:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2477:22:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 177, - "nodeType": "ExpressionStatement", - "src": "2477:22:1" - }, - { - "id": 178, - "nodeType": "PlaceholderStatement", - "src": "2509:1:1" - } - ] - }, - "documentation": null, - "id": 180, - "name": "isNonZero", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 170, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 180, - "src": "2451:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 169, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2451:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2450:16:1" - }, - "src": "2432:85:1", - "visibility": "internal" - }, - { - "body": { - "id": 288, - "nodeType": "Block", - "src": "2956:1554:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 195, - "name": "_components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "3017:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3017:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3038:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3017:22:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f6d706f6e656e74206c656e677468206e6565647320746f206265206772656174207468616e2030", - "id": 199, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3041:43:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_af1aa43cd68feb04e30fa2dd8b887d579b12f174db6d808f2f1d5cbe9bf93e0b", - "typeString": "literal_string \"Component length needs to be great than 0\"" - }, - "value": "Component length needs to be great than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_af1aa43cd68feb04e30fa2dd8b887d579b12f174db6d808f2f1d5cbe9bf93e0b", - "typeString": "literal_string \"Component length needs to be great than 0\"" - } - ], - "id": 194, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "3009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3009:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 201, - "nodeType": "ExpressionStatement", - "src": "3009:76:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 203, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3147:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3147:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3163:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3147:17:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "556e697473206d7573742062652067726561746572207468616e2030", - "id": 207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3166:30:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b429d23a593cc6479d757e298b5d5b9ff3cd48fd1caec2e31fdab1a96db1faea", - "typeString": "literal_string \"Units must be greater than 0\"" - }, - "value": "Units must be greater than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b429d23a593cc6479d757e298b5d5b9ff3cd48fd1caec2e31fdab1a96db1faea", - "typeString": "literal_string \"Units must be greater than 0\"" - } - ], - "id": 202, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "3139:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3139:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 209, - "nodeType": "ExpressionStatement", - "src": "3139:58:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 211, - "name": "_components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "3283:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3283:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 213, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3305:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3305:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3283:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f6d706f6e656e7420616e6420756e6974206c656e67746873206d757374206265207468652073616d65", - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3320:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2f2af9c2d05d7e735e1a1200787dd612cb60f54ad5a23a8a586562adddc605d", - "typeString": "literal_string \"Component and unit lengths must be the same\"" - }, - "value": "Component and unit lengths must be the same" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2f2af9c2d05d7e735e1a1200787dd612cb60f54ad5a23a8a586562adddc605d", - "typeString": "literal_string \"Component and unit lengths must be the same\"" - } - ], - "id": 210, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "3275:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3275:91:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 218, - "nodeType": "ExpressionStatement", - "src": "3275:91:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 219, - "name": "naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "3377:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 220, - "name": "_naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "3391:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3377:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 222, - "nodeType": "ExpressionStatement", - "src": "3377:26:1" - }, - { - "body": { - "id": 286, - "nodeType": "Block", - "src": "3715:789:1", - "statements": [ - { - "assignments": [ - 235 - ], - "declarations": [ - { - "constant": false, - "id": 235, - "name": "currentUnits", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "3811:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 234, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3811:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 239, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 236, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 238, - "indexExpression": { - "argumentTypes": null, - "id": 237, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "3838:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3831:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3811:29:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 241, - "name": "currentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "3862:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3877:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3862:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a65726f", - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3880:36:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1fcd00b39e3151e09a562622d3a6b29cabbd51954c8dfac36c49958a5358ead2", - "typeString": "literal_string \"Unit declarations must be non-zero\"" - }, - "value": "Unit declarations must be non-zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1fcd00b39e3151e09a562622d3a6b29cabbd51954c8dfac36c49958a5358ead2", - "typeString": "literal_string \"Unit declarations must be non-zero\"" - } - ], - "id": 240, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "3854:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3854:63:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 246, - "nodeType": "ExpressionStatement", - "src": "3854:63:1" - }, - { - "assignments": [ - 248 - ], - "declarations": [ - { - "constant": false, - "id": 248, - "name": "currentComponent", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "3985:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 247, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3985:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 252, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 249, - "name": "_components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "4012:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 251, - "indexExpression": { - "argumentTypes": null, - "id": 250, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "4024:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4012:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3985:41:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 254, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4048:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4076:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4068:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 257, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4068:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4048:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f2061646472657373", - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4080:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_969b60f773ceaa56d354520346cdb4706d2cd4c28ed781f9ff7cf04e7b476634", - "typeString": "literal_string \"Components must have non-zero address\"" - }, - "value": "Components must have non-zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_969b60f773ceaa56d354520346cdb4706d2cd4c28ed781f9ff7cf04e7b476634", - "typeString": "literal_string \"Components must have non-zero address\"" - } - ], - "id": 253, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "4040:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4040:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 261, - "nodeType": "ExpressionStatement", - "src": "4040:80:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4205:35:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 264, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4223:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 263, - "name": "tokenIsComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "4206:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4206:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 262, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "4197:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4197:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 268, - "nodeType": "ExpressionStatement", - "src": "4197:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 269, - "name": "isComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "4308:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 273, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 271, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4330:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 270, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "4320:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4320:27:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4308:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4351:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4308:47:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 276, - "nodeType": "ExpressionStatement", - "src": "4308:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 281, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "4424:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 282, - "name": "currentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4465:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 280, - "name": "Component", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "4386:9:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Component_$86_storage_ptr_$", - "typeString": "type(struct SetToken.Component storage pointer)" - } - }, - "id": 283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "address_", - "unit_" - ], - "nodeType": "FunctionCall", - "src": "4386:106:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_memory", - "typeString": "struct SetToken.Component memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Component_$86_memory", - "typeString": "struct SetToken.Component memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 277, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "4370:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4370:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Component_$86_storage_$returns$_t_uint256_$", - "typeString": "function (struct SetToken.Component storage ref) returns (uint256)" - } - }, - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4370:123:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 285, - "nodeType": "ExpressionStatement", - "src": "4370:123:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 227, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "3691:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 228, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3695:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3695:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3691:17:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 287, - "initializationExpression": { - "assignments": [ - 224 - ], - "declarations": [ - { - "constant": false, - "id": 224, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "3677:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 223, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3677:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 226, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3688:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3677:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3710:3:1", - "subExpression": { - "argumentTypes": null, - "id": 231, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "3710:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 233, - "nodeType": "ExpressionStatement", - "src": "3710:3:1" - }, - "nodeType": "ForStatement", - "src": "3672:832:1" - } - ] - }, - "documentation": "@dev Constructor Function for the issuance of an {Set} token\n@param _components address[] A list of component address which you want to include\n@param _units uint[] A list of quantities in gWei of each component (corresponds to the {Set} of _components)", - "id": 289, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 191, - "name": "_naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "2927:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 192, - "modifierName": { - "argumentTypes": null, - "id": 190, - "name": "isNonZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "2917:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "2917:23:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 189, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 183, - "name": "_components", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2831:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 181, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2831:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 182, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2831:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 186, - "name": "_units", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2862:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 184, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2862:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 185, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2862:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 188, - "name": "_naturalUnit", - "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2885:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 187, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2885:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2821:87:1" - }, - "payable": false, - "returnParameters": { - "id": 193, - "nodeType": "ParameterList", - "parameters": [], - "src": "2956:0:1" - }, - "scope": 980, - "src": "2810:1700:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 387, - "nodeType": "Block", - "src": "5132:969:1", - "statements": [ - { - "body": { - "id": 373, - "nodeType": "Block", - "src": "5355:642:1", - "statements": [ - { - "assignments": [ - 314 - ], - "declarations": [ - { - "constant": false, - "id": 314, - "name": "currentComponent", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5369:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 313, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 319, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 315, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "5396:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 317, - "indexExpression": { - "argumentTypes": null, - "id": 316, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5407:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5396:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 318, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "5396:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5369:49:1" - }, - { - "assignments": [ - 321 - ], - "declarations": [ - { - "constant": false, - "id": 321, - "name": "currentUnits", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5432:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 320, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5432:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 326, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 322, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "5452:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 324, - "indexExpression": { - "argumentTypes": null, - "id": 323, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5463:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5452:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 325, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "5452:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5432:39:1" - }, - { - "assignments": [ - 328 - ], - "declarations": [ - { - "constant": false, - "id": 328, - "name": "preTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5486:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 327, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5486:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 335, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 333, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "5546:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 330, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "5518:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 329, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "5512:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5512:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "5512:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5512:39:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5486:65:1" - }, - { - "assignments": [ - 337 - ], - "declarations": [ - { - "constant": false, - "id": 337, - "name": "transferValue", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5566:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 336, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5566:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 342, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 339, - "name": "currentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "5610:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 340, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "5624:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 338, - "name": "calculateTransferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "5587:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5587:47:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5566:68:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 348, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "5693:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5693:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 350, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "5705:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - }, - { - "argumentTypes": null, - "id": 351, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 337, - "src": "5711:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 345, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "5662:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 344, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "5656:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5656:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 2396, - "src": "5656:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5656:69:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 343, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "5648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5648:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 354, - "nodeType": "ExpressionStatement", - "src": "5648:78:1" - }, - { - "assignments": [ - 356 - ], - "declarations": [ - { - "constant": false, - "id": 356, - "name": "postTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5838:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 355, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5838:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 363, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 361, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "5899:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 358, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "5871:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 357, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "5865:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5865:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "5865:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5865:39:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5838:66:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 367, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 337, - "src": "5948:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 365, - "name": "preTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "5925:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "5925:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5925:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 369, - "name": "postTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "5966:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5925:60:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 364, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "5918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5918:68:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 372, - "nodeType": "ExpressionStatement", - "src": "5918:68:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 306, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5327:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 307, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "5331:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 308, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5331:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5327:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 374, - "initializationExpression": { - "assignments": [ - 303 - ], - "declarations": [ - { - "constant": false, - "id": 303, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5313:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 302, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "5313:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 305, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5324:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5313:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5350:3:1", - "subExpression": { - "argumentTypes": null, - "id": 310, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 303, - "src": "5350:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 312, - "nodeType": "ExpressionStatement", - "src": "5350:3:1" - }, - "nodeType": "ForStatement", - "src": "5308:689:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 376, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "6012:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 375, - "name": "mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "6007:4:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6007:15:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 378, - "nodeType": "ExpressionStatement", - "src": "6007:15:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 380, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "6050:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6050:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 382, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "6062:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 379, - "name": "LogIssuance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1614, - "src": "6038:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6038:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 384, - "nodeType": "EmitStatement", - "src": "6033:39:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6090:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 301, - "id": 386, - "nodeType": "Return", - "src": "6083:11:1" - } - ] - }, - "documentation": "@dev Function to convert component into {Set} Tokens\n * Please note that the user's ERC20 component must be approved by\ntheir ERC20 contract to transfer their components to this contract.\n * @param _quantity uint The quantity of Sets desired to issue in Wei as a multiple of naturalUnit", - "id": 388, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 294, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "5062:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 295, - "modifierName": { - "argumentTypes": null, - "id": 293, - "name": "isMultipleOfNaturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "5038:23:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5038:34:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 297, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "5091:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 298, - "modifierName": { - "argumentTypes": null, - "id": 296, - "name": "isNonZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "5081:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "5081:20:1" - } - ], - "name": "issue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 292, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 291, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5014:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 290, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5014:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5013:16:1" - }, - "payable": false, - "returnParameters": { - "id": 301, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 300, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 388, - "src": "5126:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 299, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5126:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5125:6:1" - }, - "scope": 980, - "src": "4999:1102:1", - "stateMutability": "nonpayable", - "superFunction": 1601, - "visibility": "public" - }, - { - "body": { - "id": 488, - "nodeType": "Block", - "src": "6570:795:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 405, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6585:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 404, - "name": "burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "6580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6580:15:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 407, - "nodeType": "ExpressionStatement", - "src": "6580:15:1" - }, - { - "body": { - "id": 478, - "nodeType": "Block", - "src": "6653:632:1", - "statements": [ - { - "assignments": [ - 420 - ], - "declarations": [ - { - "constant": false, - "id": 420, - "name": "currentComponent", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6667:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 419, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6667:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 425, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 421, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "6694:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 423, - "indexExpression": { - "argumentTypes": null, - "id": 422, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6705:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6694:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 424, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "6694:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6667:49:1" - }, - { - "assignments": [ - 427 - ], - "declarations": [ - { - "constant": false, - "id": 427, - "name": "currentUnits", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6730:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 426, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6730:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 432, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 428, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "6750:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 430, - "indexExpression": { - "argumentTypes": null, - "id": 429, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6761:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6750:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 431, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "6750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6730:39:1" + "id": 391, + "nodeType": "ExpressionStatement", + "src": "7821:46:0" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 376, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "7779:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 377, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "7783:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" + } }, + "id": 378, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7783:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7779:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 393, + "initializationExpression": { + "assignments": [ + 373 + ], + "declarations": [ { - "assignments": [ - 434 - ], - "declarations": [ - { - "constant": false, - "id": 434, - "name": "preTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6784:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 433, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6784:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 441, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 439, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "6844:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 436, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "6816:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 435, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "6810:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6810:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "6810:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6810:39:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "constant": false, + "id": 373, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 397, + "src": "7765:8:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" }, - "nodeType": "VariableDeclarationStatement", - "src": "6784:65:1" - }, - { - "assignments": [ - 443 - ], - "declarations": [ - { - "constant": false, - "id": 443, - "name": "transferValue", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6864:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6864:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 448, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 445, - "name": "currentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "6908:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 446, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6922:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 444, - "name": "calculateTransferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "6885:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6885:47:1", + "typeName": { + "id": 372, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "7765:6:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint16", + "typeString": "uint16" } }, - "nodeType": "VariableDeclarationStatement", - "src": "6864:68:1" + "value": null, + "visibility": "internal" + } + ], + "id": 375, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7776:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 454, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "6987:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6987:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 456, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "6999:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 451, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "6960:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 450, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "6954:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6954:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2437, - "src": "6954:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6954:59:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 449, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "6946:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6946:68:1", + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7765:12:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7802:3:0", + "subExpression": { + "argumentTypes": null, + "id": 380, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "7802:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 382, + "nodeType": "ExpressionStatement", + "src": "7802:3:0" + }, + "nodeType": "ForStatement", + "src": "7760:118:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 394, + "name": "componentAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "7894:18:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 360, + "id": 395, + "nodeType": "Return", + "src": "7887:25:0" + } + ] + }, + "documentation": null, + "id": 397, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getComponents", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 356, + "nodeType": "ParameterList", + "parameters": [], + "src": "7608:2:0" + }, + "payable": false, + "returnParameters": { + "id": 360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 359, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 397, + "src": "7655:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 357, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7655:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 358, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7655:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7654:11:0" + }, + "scope": 498, + "src": "7586:333:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 438, + "nodeType": "Block", + "src": "8001:201:0", + "statements": [ + { + "assignments": [ + 406 + ], + "declarations": [ + { + "constant": false, + "id": 406, + "name": "units", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "8011:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 404, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8011:4:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 459, - "nodeType": "ExpressionStatement", - "src": "6946:68:1" + "id": 405, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8011:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } }, + "value": null, + "visibility": "internal" + } + ], + "id": 413, + "initialValue": { + "argumentTypes": null, + "arguments": [ { - "assignments": [ - 461 - ], - "declarations": [ - { - "constant": false, - "id": 461, - "name": "postTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "7126:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 460, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7126:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 468, - "initialValue": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 466, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "7187:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 463, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 420, - "src": "7159:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 462, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "7153:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7153:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "7153:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7153:39:1", + "id": 410, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8044:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" + } + }, + "id": 411, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8044:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "8033:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8037:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "7126:66:1" - }, + "id": 408, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8037:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8033:29:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8011:51:0" + }, + { + "body": { + "id": 434, + "nodeType": "Block", + "src": "8119:55:0", + "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 472, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "7236:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 470, - "name": "preTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "7213:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "7213:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7213:37:1", + "id": 425, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 406, + "src": "8133:5:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 427, + "indexExpression": { + "argumentTypes": null, + "id": 426, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "8139:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8133:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 428, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8144:10:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "id": 430, + "indexExpression": { "argumentTypes": null, - "id": 474, - "name": "postTransferBalance", + "id": 429, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 461, - "src": "7254:19:1", + "referencedDeclaration": 415, + "src": "8155:1:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint16", + "typeString": "uint16" } }, - "src": "7213:60:1", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8144:13:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Component_$45_storage", + "typeString": "struct SetToken.Component storage ref" } - ], - "id": 469, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "7206:6:1", + }, + "id": 431, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "unit_", + "nodeType": "MemberAccess", + "referencedDeclaration": 44, + "src": "8144:19:0", "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7206:68:1", + "src": "8133:30:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 477, + "id": 433, "nodeType": "ExpressionStatement", - "src": "7206:68:1" + "src": "8133:30:0" } ] }, @@ -18351,19 +5948,19 @@ export const SetToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 415, + "id": 421, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 412, + "id": 418, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6625:1:1", + "referencedDeclaration": 415, + "src": "8091:1:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -18375,18 +5972,18 @@ export const SetToken = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 413, + "id": 419, "name": "components", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "6629:10:1", + "referencedDeclaration": 50, + "src": "8095:10:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", "typeString": "struct SetToken.Component storage ref[] storage ref" } }, - "id": 414, + "id": 420, "isConstant": false, "isLValue": true, "isPure": false, @@ -18394,31 +5991,31 @@ export const SetToken = "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6629:17:1", + "src": "8095:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6625:21:1", + "src": "8091:21:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 479, + "id": 435, "initializationExpression": { "assignments": [ - 409 + 415 ], "declarations": [ { "constant": false, - "id": 409, + "id": 415, "name": "i", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6611:8:1", + "scope": 439, + "src": "8077:8:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18426,10 +6023,10 @@ export const SetToken = "typeString": "uint16" }, "typeName": { - "id": 408, + "id": 414, "name": "uint16", "nodeType": "ElementaryTypeName", - "src": "6611:6:1", + "src": "8077:6:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -18439,18 +6036,18 @@ export const SetToken = "visibility": "internal" } ], - "id": 411, + "id": 417, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 410, + "id": 416, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6622:1:1", + "src": "8088:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18459,12 +6056,12 @@ export const SetToken = "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6611:12:1" + "src": "8077:12:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 417, + "id": 423, "isConstant": false, "isLValue": false, "isPure": false, @@ -18472,15 +6069,15 @@ export const SetToken = "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6648:3:1", + "src": "8114:3:0", "subExpression": { "argumentTypes": null, - "id": 416, + "id": 422, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "6648:1:1", + "referencedDeclaration": 415, + "src": "8114:1:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -18491,41 +6088,116 @@ export const SetToken = "typeString": "uint16" } }, - "id": 418, + "id": 424, "nodeType": "ExpressionStatement", - "src": "6648:3:1" + "src": "8114:3:0" }, "nodeType": "ForStatement", - "src": "6606:679:1" + "src": "8072:102:0" }, { - "eventCall": { + "expression": { + "argumentTypes": null, + "id": 436, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 406, + "src": "8190:5:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 402, + "id": 437, + "nodeType": "Return", + "src": "8183:12:0" + } + ] + }, + "documentation": null, + "id": 439, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getUnits", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 398, + "nodeType": "ParameterList", + "parameters": [], + "src": "7942:2:0" + }, + "payable": false, + "returnParameters": { + "id": 402, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 401, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "7989:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 399, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7989:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 400, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7989:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7988:8:0" + }, + "scope": 498, + "src": "7925:277:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 457, + "nodeType": "Block", + "src": "8407:51:0", + "statements": [ + { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 481, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "7314:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7314:10:1", + "id": 453, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 441, + "src": "8439:3:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18533,12 +6205,12 @@ export const SetToken = }, { "argumentTypes": null, - "id": 483, - "name": "_quantity", + "id": 454, + "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "7326:9:1", + "referencedDeclaration": 443, + "src": "8444:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18556,18 +6228,34 @@ export const SetToken = "typeString": "uint256" } ], - "id": 480, - "name": "LogRedemption", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "7300:13:1", + "expression": { + "argumentTypes": null, + "id": 451, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "8424:5:0", + "typeDescriptions": { + "typeIdentifier": "t_super$_SetToken_$498", + "typeString": "contract super SetToken" + } + }, + "id": 452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1052, + "src": "8424:14:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" } }, - "id": 484, + "id": 455, "isConstant": false, "isLValue": false, "isPure": false, @@ -18575,161 +6263,98 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7300:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 485, - "nodeType": "EmitStatement", - "src": "7295:41:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7354:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 403, - "id": 487, - "nodeType": "Return", - "src": "7347:11:1" - } - ] - }, - "documentation": "@dev Function to convert {Set} Tokens into underlying components\n * The ERC20 components do not need to be approved to call this function\n * @param _quantity uint The quantity of Sets desired to redeem in Wei as a multiple of naturalUnit", - "id": 489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 393, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6463:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 394, - "modifierName": { - "argumentTypes": null, - "id": 392, - "name": "isMultipleOfNaturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "6439:23:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6439:34:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 396, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6503:9:1", + "src": "8424:27:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } - } - ], - "id": 397, - "modifierName": { - "argumentTypes": null, - "id": 395, - "name": "hasSufficientBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "6482:20:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6482:31:1" - }, + }, + "functionReturnParameters": 450, + "id": 456, + "nodeType": "Return", + "src": "8417:34:0" + } + ] + }, + "documentation": null, + "id": 458, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ { "arguments": [ { "argumentTypes": null, - "id": 399, - "name": "_quantity", + "id": 446, + "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 390, - "src": "6532:9:1", + "referencedDeclaration": 441, + "src": "8375:3:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } } ], - "id": 400, + "id": 447, "modifierName": { "argumentTypes": null, - "id": 398, - "name": "isNonZero", + "id": 445, + "name": "isValidDestination", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "6522:9:1", + "referencedDeclaration": 142, + "src": "8356:18:0", "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "6522:20:1" + "src": "8356:23:0" } ], - "name": "redeem", + "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 391, + "id": 444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 390, - "name": "_quantity", + "id": 441, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "8291:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8291:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 443, + "name": "_value", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6400:14:1", + "scope": 458, + "src": "8312:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18737,10 +6362,10 @@ export const SetToken = "typeString": "uint256" }, "typeName": { - "id": 389, - "name": "uint", + "id": 442, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6400:4:1", + "src": "8312:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18750,20 +6375,20 @@ export const SetToken = "visibility": "internal" } ], - "src": "6399:16:1" + "src": "8281:51:0" }, "payable": false, "returnParameters": { - "id": 403, + "id": 450, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 402, + "id": 449, "name": "", "nodeType": "VariableDeclaration", - "scope": 489, - "src": "6560:4:1", + "scope": 458, + "src": "8397:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18771,10 +6396,10 @@ export const SetToken = "typeString": "bool" }, "typeName": { - "id": 401, + "id": 448, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6560:4:1", + "src": "8397:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18784,19 +6409,19 @@ export const SetToken = "visibility": "internal" } ], - "src": "6559:6:1" + "src": "8396:6:0" }, - "scope": 980, - "src": "6384:981:1", + "scope": 498, + "src": "8264:194:0", "stateMutability": "nonpayable", - "superFunction": 1608, + "superFunction": 1052, "visibility": "public" }, { "body": { - "id": 618, + "id": 479, "nodeType": "Block", - "src": "8384:1290:1", + "src": "8634:62:0", "statements": [ { "expression": { @@ -18804,99 +6429,87 @@ export const SetToken = "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 508, - "name": "_componentsToExclude", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "8527:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8550:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8527:24:1", + "id": 474, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 460, + "src": "8670:5:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, - "hexValue": "4578636c7564656420636f6d706f6e656e7473206d757374206265206e6f6e2d7a65726f", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8553:38:1", - "subdenomination": null, + "id": 475, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "8677:3:0", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dc43b6bde85ab0739e4e8030797fca8fcafe90429a798e69497c4f2c6dea5097", - "typeString": "literal_string \"Excluded components must be non-zero\"" - }, - "value": "Excluded components must be non-zero" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 476, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "8682:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" }, { - "typeIdentifier": "t_stringliteral_dc43b6bde85ab0739e4e8030797fca8fcafe90429a798e69497c4f2c6dea5097", - "typeString": "literal_string \"Excluded components must be non-zero\"" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 507, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "8519:7:1", + "expression": { + "argumentTypes": null, + "id": 472, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "8651:5:0", + "typeDescriptions": { + "typeIdentifier": "t_super$_SetToken_$498", + "typeString": "contract super SetToken" + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1274, + "src": "8651:18:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" } }, - "id": 512, + "id": 477, "isConstant": false, "isLValue": false, "isPure": false, @@ -18904,1474 +6517,2250 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8519:73:1", + "src": "8651:38:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 471, + "id": 478, + "nodeType": "Return", + "src": "8644:45:0" + } + ] + }, + "documentation": null, + "id": 480, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 467, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "8602:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 468, + "modifierName": { + "argumentTypes": null, + "id": 466, + "name": "isValidDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 142, + "src": "8583:18:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8583:23:0" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 465, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 460, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "8495:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8495:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 462, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "8518:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 461, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8518:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 464, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "8539:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8539:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8485:74:0" + }, + "payable": false, + "returnParameters": { + "id": 471, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 470, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "8624:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 469, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8624:4:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "8519:73:1" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "8623:6:0" + }, + "scope": 498, + "src": "8464:232:0", + "stateMutability": "nonpayable", + "superFunction": 1274, + "visibility": "public" + }, + { + "body": { + "id": 496, + "nodeType": "Block", + "src": "8875:79:0", + "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 515, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8608:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 514, - "name": "burn", + "baseExpression": { + "argumentTypes": null, + "id": 487, + "name": "isComponent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "8603:4:1", + "referencedDeclaration": 54, + "src": "8892:11:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" } }, - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8603:15:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 517, - "nodeType": "ExpressionStatement", - "src": "8603:15:1" - }, - { - "body": { - "id": 607, - "nodeType": "Block", - "src": "8676:889:1", - "statements": [ - { - "assignments": [ - 530 - ], - "declarations": [ - { - "constant": false, - "id": 530, - "name": "transferValue", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8690:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 529, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8690:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 538, - "initialValue": { + "id": 494, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 532, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "8734:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 534, - "indexExpression": { - "argumentTypes": null, - "id": 533, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8745:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8734:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 535, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "8734:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 536, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8755:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 531, - "name": "calculateTransferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 909, - "src": "8711:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) view returns (uint256)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8711:54:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8690:75:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 539, - "name": "_componentsToExclude", + "id": 491, + "name": "_tokenAddress", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "8947:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8978:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 542, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8983:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "8978:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": "bytes32" - }, - "id": 544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8970:15:1", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "8931:13:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "src": "8947:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 546, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 489, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "8914:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 490, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "8988:1:1", - "subdenomination": null, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8914:16:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } }, - "src": "8947:42:1", + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8914:31:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } + ], + "id": 488, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1430, + "src": "8904:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8904:42:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8892:55:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 486, + "id": 495, + "nodeType": "Return", + "src": "8885:62:0" + } + ] + }, + "documentation": null, + "id": 497, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "tokenIsComponent", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 482, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 497, + "src": "8790:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 481, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8790:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8780:37:0" + }, + "payable": false, + "returnParameters": { + "id": 486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 485, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 497, + "src": "8865:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 484, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8865:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8864:6:0" + }, + "scope": 498, + "src": "8755:199:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 499, + "src": "1039:7917:0" + } + ], + "src": "597:8360:0" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetToken.sol", + "exportedSymbols": { + "SetToken": [ + 498 + ] + }, + "id": 499, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:0" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 499, + "sourceUnit": 1100, + "src": "623:90:0", + "symbolAliases": [ + { + "foreign": 2, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", + "id": 5, + "nodeType": "ImportDirective", + "scope": 499, + "sourceUnit": 1422, + "src": "714:90:0", + "symbolAliases": [ + { + "foreign": 4, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 7, + "nodeType": "ImportDirective", + "scope": 499, + "sourceUnit": 884, + "src": "805:73:0", + "symbolAliases": [ + { + "foreign": 6, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", + "file": "./interfaces/ISetFactory.sol", + "id": 9, + "nodeType": "ImportDirective", + "scope": 499, + "sourceUnit": 575, + "src": "879:59:0", + "symbolAliases": [ + { + "foreign": 8, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10, + "name": "StandardToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1421, + "src": "1064:13:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardToken_$1421", + "typeString": "contract StandardToken" + } + }, + "id": 11, + "nodeType": "InheritanceSpecifier", + "src": "1064:13:0" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12, + "name": "DetailedERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1099, + "src": "1083:13:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DetailedERC20_$1099", + "typeString": "contract DetailedERC20" + } + }, + "id": 13, + "nodeType": "InheritanceSpecifier", + "src": "1083:13:0" + } + ], + "contractDependencies": [ + 1065, + 1099, + 1142, + 1174, + 1421 + ], + "contractKind": "contract", + "documentation": "@title SetToken\n@author Set Protocol\n * Implementation of the basic {Set} token.", + "fullyImplemented": true, + "id": 498, + "linearizedBaseContracts": [ + 498, + 1099, + 1421, + 1065, + 1142, + 1174 + ], + "name": "SetToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 16, + "libraryName": { + "contractScope": null, + "id": 14, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 883, + "src": "1109:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$883", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1103:27:0", + "typeName": { + "id": 15, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1122:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 19, + "name": "COMPONENTS_INPUT_MISMATCH", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1183:91:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 17, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1183:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6d706f6e656e747320616e6420756e697473206d757374206265207468652073616d65206c656e6774682e", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1227:47:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_507b7271d0f520677dcc8f52ce111f2a3d6cc23688f132cd90329dcf0980ccdd", + "typeString": "literal_string \"Components and units must be the same length.\"" + }, + "value": "Components and units must be the same length." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 22, + "name": "COMPONENTS_MISSING", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1280:68:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 20, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1280:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6d706f6e656e7473206d757374206e6f7420626520656d7074792e", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1317:31:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c812e6febc96d0f15c9ef704912a1e5b8ac9ee7602acc3375346a83f7a2a9021", + "typeString": "literal_string \"Components must not be empty.\"" + }, + "value": "Components must not be empty." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 25, + "name": "INVALID_COMPONENT_UNIT", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1354:78:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 23, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1354:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a65726f2e", + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1395:37:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_615190b3721d5d2af7bfb2963be7ac841d5b81d1062f7f16fb3ebe7964aaa975", + "typeString": "literal_string \"Unit declarations must be non-zero.\"" + }, + "value": "Unit declarations must be non-zero." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 28, + "name": "INVALID_COMPONENT_ADDRESS", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1438:84:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 26, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1438:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616464726573732e", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1482:40:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c797d4c348b9995d79eeab7c20eaf4ca13ae42e7484e60cde80a890be1da5b5c", + "typeString": "literal_string \"Components must have non-zero address.\"" + }, + "value": "Components must have non-zero address." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 31, + "name": "INVALID_NATURAL_UNIT", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1528:92:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 29, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1528:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "4e61747572616c20756e697420646f6573206e6f7420776f726b207769746820636f6d706f6e656e7420646563696d616c732e", + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1567:53:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4b7120cbe8d08c58dcbc7d80995b28a0b5a9deed88a172beefd52b7c34f75cea", + "typeString": "literal_string \"Natural unit does not work with component decimals.\"" + }, + "value": "Natural unit does not work with component decimals." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 34, + "name": "INVALID_SENDER", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1626:84:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 32, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1626:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "53656e646572206973206e6f74207065726d697474656420746f20706572666f726d20746869732066756e6374696f6e2e", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1659:51:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4ffa3e3d08011fc170562a3d08e8750b05ecc5c344e09f4df43ed4eea4688153", + "typeString": "literal_string \"Sender is not permitted to perform this function.\"" + }, + "value": "Sender is not permitted to perform this function." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 37, + "name": "UNITS_MISSING", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1716:58:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 35, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1716:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e697473206d757374206e6f7420626520656d7074792e", + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1748:26:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3167a8b9326a8184e0ced4d846000fe29af4b52d9f88c79765c357d850670a90", + "typeString": "literal_string \"Units must not be empty.\"" + }, + "value": "Units must not be empty." + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 40, + "name": "ZERO_QUANTITY", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "1780:69:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 38, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1780:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5175616e74697479206d7573742062652067726561746572207468616e207a65726f2e", + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1812:37:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3da6978e12ad268e4eb66f4a79840b60e48f93e78540f7911187ddd7f0f6f2c7", + "typeString": "literal_string \"Quantity must be greater than zero.\"" + }, + "value": "Quantity must be greater than zero." + }, + "visibility": "internal" + }, + { + "canonicalName": "SetToken.Component", + "id": 45, + "members": [ + { + "constant": false, + "id": 42, + "name": "address_", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "1928:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 41, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1928:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "name": "unit_", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "1954:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 43, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1954:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Component", + "nodeType": "StructDefinition", + "scope": 498, + "src": "1901:70:0", + "visibility": "public" + }, + { + "constant": false, + "id": 47, + "name": "naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "2030:23:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 46, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2030:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 50, + "name": "components", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "2059:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 48, + "name": "Component", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 45, + "src": "2059:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Component_$45_storage_ptr", + "typeString": "struct SetToken.Component" + } + }, + "id": 49, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2059:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage_ptr", + "typeString": "struct SetToken.Component[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 54, + "name": "isComponent", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "2142:45:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 53, + "keyType": { + "id": 51, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2150:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "2142:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 52, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2161:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 56, + "name": "factory", + "nodeType": "VariableDeclaration", + "scope": 498, + "src": "2259:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 55, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2259:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 71, + "nodeType": "Block", + "src": "2353:128:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "falseBody": { - "id": 605, - "nodeType": "Block", - "src": "9080:475:1", - "statements": [ - { - "assignments": [ - 559 - ], - "declarations": [ - { - "constant": false, - "id": 559, - "name": "preTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "9098:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 558, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9098:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 569, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 567, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "9164:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "9130:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 563, - "indexExpression": { - "argumentTypes": null, - "id": 562, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9141:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9130:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 564, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "9130:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 560, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "9124:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9124:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "9124:39:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9124:45:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9098:71:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 578, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "9235:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9235:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 580, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "9247:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 572, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "9202:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 574, - "indexExpression": { - "argumentTypes": null, - "id": 573, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9213:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9202:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 575, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "9202:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 571, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "9196:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9196:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2437, - "src": "9196:38:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9196:65:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 570, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "9188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9188:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 583, - "nodeType": "ExpressionStatement", - "src": "9188:74:1" - }, - { - "assignments": [ - 585 - ], - "declarations": [ - { - "constant": false, - "id": 585, - "name": "postTransferBalance", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "9382:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 584, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9382:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 595, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 593, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2845, - "src": "9449:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SetToken_$980", - "typeString": "contract SetToken" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "9415:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9426:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9415:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 590, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "9415:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 586, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "9409:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9409:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2428, - "src": "9409:39:1", + "id": 66, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 59, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1436, + "src": "2384:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2384:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 62, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "2410:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9409:45:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9382:72:1" - }, - { + ], "expression": { - "argumentTypes": null, - "arguments": [ + "argumentTypes": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 599, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "9502:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 597, - "name": "preTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 559, - "src": "9479:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "9479:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9479:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 601, - "name": "postTransferBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "9520:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9479:60:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_address", + "typeString": "address" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 596, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "9472:6:1", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9472:68:1", + "id": 61, + "name": "ISetFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 574, + "src": "2398:11:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_type$_t_contract$_ISetFactory_$574_$", + "typeString": "type(contract ISetFactory)" } }, - "id": 604, - "nodeType": "ExpressionStatement", - "src": "9472:68:1" + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2398:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISetFactory_$574", + "typeString": "contract ISetFactory" + } + }, + "id": 64, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "core", + "nodeType": "MemberAccess", + "referencedDeclaration": 556, + "src": "2398:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" + } + }, + "id": 65, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2398:27:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2384:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 67, + "name": "INVALID_SENDER", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "2439:14:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 58, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "2363:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2363:100:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 69, + "nodeType": "ExpressionStatement", + "src": "2363:100:0" + }, + { + "id": 70, + "nodeType": "PlaceholderStatement", + "src": "2473:1:0" + } + ] + }, + "documentation": null, + "id": 72, + "name": "isCore", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 57, + "nodeType": "ParameterList", + "parameters": [], + "src": "2350:2:0" + }, + "src": "2335:146:0", + "visibility": "internal" + }, + { + "body": { + "id": 106, + "nodeType": "Block", + "src": "2621:500:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 81, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "2712:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2712:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2733:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2712:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 85, + "name": "COMPONENTS_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "2748:18:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 80, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "2691:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 86, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2691:85:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 87, + "nodeType": "ExpressionStatement", + "src": "2691:85:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 92, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 89, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 78, + "src": "2868:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" } - ] + }, + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2868:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "id": 606, - "nodeType": "IfStatement", - "src": "8943:612:1", - "trueBody": { - "id": 557, - "nodeType": "Block", - "src": "8991:83:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 548, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "9009:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 552, - "indexExpression": { - "argumentTypes": null, - "id": 549, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "9028:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9009:21:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 553, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 550, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "9031:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9031:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9009:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 554, - "name": "transferValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "9046:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9009:50:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 556, - "nodeType": "ExpressionStatement", - "src": "9009:50:1" + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2884:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2868:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 93, + "name": "UNITS_MISSING", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2899:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 88, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "2847:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2847:75:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 95, + "nodeType": "ExpressionStatement", + "src": "2847:75:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 97, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "3019:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } - ] + }, + "id": 98, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3019:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 99, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 78, + "src": "3041:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3041:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3019:35:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 102, + "name": "COMPONENTS_INPUT_MISMATCH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "3068:25:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 96, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "2998:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } }, - "id": 525, + "id": 103, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 522, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8648:1:1", + "names": [], + "nodeType": "FunctionCall", + "src": "2998:105:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 104, + "nodeType": "ExpressionStatement", + "src": "2998:105:0" + }, + { + "id": 105, + "nodeType": "PlaceholderStatement", + "src": "3113:1:0" + } + ] + }, + "documentation": null, + "id": 107, + "name": "areValidCreationParameters", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 79, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 75, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "2583:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2583:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { + "id": 74, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2583:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 78, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "2606:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 76, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2606:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 77, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2606:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2582:38:0" + }, + "src": "2547:574:0", + "visibility": "internal" + }, + { + "body": { + "id": 119, + "nodeType": "Block", + "src": "3163:99:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 523, - "name": "components", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 112, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "3194:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 113, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3206:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3194:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 115, + "name": "ZERO_QUANTITY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "8652:10:1", + "referencedDeclaration": 40, + "src": "3221:13:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" + "typeIdentifier": "t_string_memory", + "typeString": "string memory" } - }, - "id": 524, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8652:17:1", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 111, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "3173:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "src": "8648:21:1", + "id": 116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3173:71:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 608, - "initializationExpression": { - "assignments": [ - 519 - ], - "declarations": [ + "id": 117, + "nodeType": "ExpressionStatement", + "src": "3173:71:0" + }, + { + "id": 118, + "nodeType": "PlaceholderStatement", + "src": "3254:1:0" + } + ] + }, + "documentation": null, + "id": 120, + "name": "isPositive", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 109, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 120, + "src": "3147:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 108, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3147:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3146:16:0" + }, + "src": "3127:135:0", + "visibility": "internal" + }, + { + "body": { + "id": 141, + "nodeType": "Block", + "src": "3309:93:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "constant": false, - "id": 519, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8634:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "typeName": { - "id": 518, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "8634:6:1", + "id": 129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 125, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 122, + "src": "3327:3:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "value": null, - "visibility": "internal" + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3342:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3334:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3334:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3327:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } } ], - "id": 521, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 520, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8645:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8634:12:1" - }, - "loopExpression": { "expression": { - "argumentTypes": null, - "id": 527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8671:3:1", - "subExpression": { - "argumentTypes": null, - "id": 526, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "8671:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, + ], + "id": 124, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1439, + "src": "3319:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 528, - "nodeType": "ExpressionStatement", - "src": "8671:3:1" + "id": 130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3319:26:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "nodeType": "ForStatement", - "src": "8629:936:1" + "id": 131, + "nodeType": "ExpressionStatement", + "src": "3319:26:0" }, { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 610, - "name": "msg", + "id": 133, + "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "9601:3:1", + "referencedDeclaration": 122, + "src": "3363:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 135, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1463, + "src": "3378:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SetToken_$498", + "typeString": "contract SetToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SetToken_$498", + "typeString": "contract SetToken" + } + ], + "id": 134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3370:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3370:13:0", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9601:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 612, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "9613:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 613, - "name": "_componentsToExclude", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 493, - "src": "9624:20:1", + "src": "3363:20:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "id": 609, - "name": "LogPartialRedemption", + "id": 132, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "9580:20:1", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1439, + "src": "3355:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$", - "typeString": "function (address,uint256,bytes32)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 614, + "id": 138, "isConstant": false, "isLValue": false, "isPure": false, @@ -20379,1554 +8768,1136 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9580:65:1", + "src": "3355:29:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 615, - "nodeType": "EmitStatement", - "src": "9575:70:1" + "id": 139, + "nodeType": "ExpressionStatement", + "src": "3355:29:0" }, { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9663:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 506, - "id": 617, - "nodeType": "Return", - "src": "9656:11:1" + "id": 140, + "nodeType": "PlaceholderStatement", + "src": "3394:1:0" } ] }, - "documentation": "@dev Function to withdraw a portion of the component tokens of a Set\n * This function should be used in the event that a component token has been\npaused for transfer temporarily or permanently. This allows users a\nmethod to withdraw tokens in the event that one token has been frozen.\n * The mask can be computed by summing the powers of 2 of indexes of components to exclude.\nFor example, to exclude the 0th, 1st, and 3rd components, we pass in the hex of\n1 + 2 + 8 = 11, padded to length 32 i.e. 0x000000000000000000000000000000000000000000000000000000000000000b\n * @param _quantity uint The quantity of Sets desired to redeem in Wei\n@param _componentsToExclude bytes32 Hex of bitmask of components to exclude", - "id": 619, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 496, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8277:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 497, - "modifierName": { - "argumentTypes": null, - "id": 495, - "name": "isMultipleOfNaturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "8253:23:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8253:34:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 499, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8306:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 500, - "modifierName": { - "argumentTypes": null, - "id": 498, - "name": "isNonZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "8296:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8296:20:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 502, - "name": "_quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "8346:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 503, - "modifierName": { - "argumentTypes": null, - "id": 501, - "name": "hasSufficientBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "8325:20:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8325:31:1" - } - ], - "name": "partialRedeem", - "nodeType": "FunctionDefinition", + "documentation": null, + "id": 142, + "name": "isValidDestination", + "nodeType": "ModifierDefinition", "parameters": { - "id": 494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 491, - "name": "_quantity", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8184:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8184:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 493, - "name": "_componentsToExclude", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8200:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 492, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8200:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8183:46:1" - }, - "payable": false, - "returnParameters": { - "id": 506, + "id": 123, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 505, - "name": "", + "id": 122, + "name": "_to", "nodeType": "VariableDeclaration", - "scope": 619, - "src": "8374:4:1", + "scope": 142, + "src": "3296:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 504, - "name": "bool", + "id": 121, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "8374:4:1", + "src": "3296:7:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "8373:6:1" + "src": "3295:13:0" }, - "scope": 980, - "src": "8161:1513:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" + "src": "3268:134:0", + "visibility": "internal" }, { "body": { - "id": 701, + "id": 279, "nodeType": "Block", - "src": "10288:693:1", + "src": "4363:1934:0", "statements": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 627, - "name": "_componentsToRedeem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "10306:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10328:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10306:23:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "assignments": [ + 165 + ], + "declarations": [ + { + "constant": false, + "id": 165, + "name": "minDecimals", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4498:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" }, - { - "argumentTypes": null, - "hexValue": "436f6d706f6e656e747320746f2072656465656d206d757374206265206e6f6e2d7a65726f", - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10331:39:1", - "subdenomination": null, + "typeName": { + "id": 164, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4498:5:0", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_580384d9ad1b31ff306fd95da0728bd78ff8cb2c4fbafcbb934965791a78d2b3", - "typeString": "literal_string \"Components to redeem must be non-zero\"" - }, - "value": "Components to redeem must be non-zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_580384d9ad1b31ff306fd95da0728bd78ff8cb2c4fbafcbb934965791a78d2b3", - "typeString": "literal_string \"Components to redeem must be non-zero\"" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } - ], - "id": 626, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2818, - "src": "10298:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 631, + }, + "value": null, + "visibility": "internal" + } + ], + "id": 167, + "initialValue": { + "argumentTypes": null, + "hexValue": "3138", + "id": 166, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10298:73:1", + "nodeType": "Literal", + "src": "4518:2:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" }, - "id": 632, - "nodeType": "ExpressionStatement", - "src": "10298:73:1" + "nodeType": "VariableDeclarationStatement", + "src": "4498:22:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 169, + "name": "currentDecimals", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4530:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 168, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4530:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 170, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "4530:21:0" }, { "body": { - "id": 691, + "id": 269, "nodeType": "Block", - "src": "10429:458:1", + "src": "4604:1402:0", "statements": [ { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 644, - "name": "_componentsToRedeem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "10447:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "assignments": [ + 183 + ], + "declarations": [ + { + "constant": false, + "id": 183, + "name": "currentUnits", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4700:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10477:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 647, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10482:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "10477:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 645, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10469:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": "bytes32" - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10469:15:1", + "typeName": { + "id": 182, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4700:4:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "10447:37:1", + "value": null, + "visibility": "internal" + } + ], + "id": 187, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 184, + "name": "_units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 150, + "src": "4720:6:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "id": 186, + "indexExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10487:1:1", - "subdenomination": null, + "id": 185, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 172, + "src": "4727:1:0", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } }, - "src": "10447:41:1", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4720:9:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "falseBody": null, - "id": 690, - "nodeType": "IfStatement", - "src": "10443:434:1", - "trueBody": { - "id": 689, - "nodeType": "Block", - "src": "10490:387:1", - "statements": [ - { - "assignments": [ - 654 - ], - "declarations": [ - { - "constant": false, - "id": 654, - "name": "currentComponent", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10508:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 653, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10508:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 659, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 655, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "10535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 657, - "indexExpression": { - "argumentTypes": null, - "id": 656, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10546:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10535:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 658, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "10535:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10508:49:1" - }, + "nodeType": "VariableDeclarationStatement", + "src": "4700:29:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "assignments": [ - 661 - ], - "declarations": [ - { - "constant": false, - "id": 661, - "name": "remainingBalance", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10575:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 660, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10575:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 668, - "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 662, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "10599:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 664, - "indexExpression": { - "argumentTypes": null, - "id": 663, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10618:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10599:21:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 667, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 665, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10621:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10621:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10599:33:1", + "id": 189, + "name": "currentUnits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "4768:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "10575:57:1" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { "argumentTypes": null, - "id": 676, + "hexValue": "30", + "id": 190, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 669, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "10735:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" - } - }, - "id": 673, - "indexExpression": { - "argumentTypes": null, - "id": 670, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10754:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10735:21:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 674, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 671, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10757:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10757:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10735:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10771:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "nodeType": "Literal", + "src": "4783:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "src": "10735:37:1", + "value": "0" + }, + "src": "4768:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 192, + "name": "INVALID_COMPONENT_UNIT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "4802:22:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 188, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "4743:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4743:95:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 194, + "nodeType": "ExpressionStatement", + "src": "4743:95:0" + }, + { + "assignments": [ + 196 + ], + "declarations": [ + { + "constant": false, + "id": 196, + "name": "currentComponent", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4906:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 195, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4906:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 200, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 197, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "4933:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 199, + "indexExpression": { + "argumentTypes": null, + "id": 198, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 172, + "src": "4945:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4933:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4906:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 202, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "4986:16:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 677, - "nodeType": "ExpressionStatement", - "src": "10735:37:1" - }, - { - "expression": { + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 683, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10832:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10832:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 685, - "name": "remainingBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 661, - "src": "10844:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 680, - "name": "currentComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "10805:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 679, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "10799:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2414_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10799:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", - "typeString": "contract ERC20" - } - }, - "id": 682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2437, - "src": "10799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 686, + "hexValue": "30", + "id": 204, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10799:62:1", + "nodeType": "Literal", + "src": "5014:1:0", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "id": 678, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "10791:7:1", + "id": 203, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5006:7:0", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 687, + "id": 205, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10791:71:1", + "src": "5006:10:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 688, - "nodeType": "ExpressionStatement", - "src": "10791:71:1" + "src": "4986:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 207, + "name": "INVALID_COMPONENT_ADDRESS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "5034:25:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 637, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10401:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 638, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "10405:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 639, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10405:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10401:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 692, - "initializationExpression": { - "assignments": [ - 634 - ], - "declarations": [ - { - "constant": false, - "id": 634, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10387:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 633, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "10387:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 636, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10398:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10387:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10424:3:1", - "subExpression": { - "argumentTypes": null, - "id": 641, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10424:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 643, - "nodeType": "ExpressionStatement", - "src": "10424:3:1" - }, - "nodeType": "ForStatement", - "src": "10382:505:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 694, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "10920:3:1", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 201, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1440, + "src": "4961:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4961:112:0", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10920:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "id": 209, + "nodeType": "ExpressionStatement", + "src": "4961:112:0" }, { - "argumentTypes": null, - "id": 696, - "name": "_componentsToRedeem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "10932:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 693, - "name": "LogRedeemExcluded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "10902:17:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32)" - } - }, - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10902:50:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 698, - "nodeType": "EmitStatement", - "src": "10897:55:1" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10970:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 625, - "id": 700, - "nodeType": "Return", - "src": "10963:11:1" - } - ] - }, - "documentation": "@dev Function to withdraw tokens that have previously been excluded when calling\nthe partialRedeem method\nThe mask can be computed by summing the powers of 2 of indexes of components to redeem.\nFor example, to redeem the 0th, 1st, and 3rd components, we pass in the hex of\n1 + 2 + 8 = 11, padded to length 32 i.e. 0x000000000000000000000000000000000000000000000000000000000000000b\n * @param _componentsToRedeem bytes32 Hex of bitmask of components to redeem", - "id": 702, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "redeemExcluded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 622, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "_componentsToRedeem", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10217:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 620, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10216:29:1" - }, - "payable": false, - "returnParameters": { - "id": 625, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 624, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "10278:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 623, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10278:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10277:6:1" - }, - "scope": 980, - "src": "10193:788:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 743, - "nodeType": "Block", - "src": "11216:249:1", - "statements": [ - { - "assignments": [ - 711 - ], - "declarations": [ - { - "constant": false, - "id": 711, - "name": "componentAddresses", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "11226:35:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 709, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11226:7:1", + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "646563696d616c732829", + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5211:12:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", + "typeString": "literal_string \"decimals()\"" + }, + "value": "decimals()" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", + "typeString": "literal_string \"decimals()\"" + } + ], + "id": 213, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1430, + "src": "5201:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5201:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5194:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": "bytes4" + }, + "id": 216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5194:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "argumentTypes": null, + "id": 210, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5172:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5172:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$__$returns$_t_bool_$", + "typeString": "function () payable returns (bool)" + } + }, + "id": 217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5172:54:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 710, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11226:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" + "falseBody": { + "id": 240, + "nodeType": "Block", + "src": "5420:185:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 236, + "name": "minDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5575:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5589:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5575:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 239, + "nodeType": "ExpressionStatement", + "src": "5575:15:0" + } + ] + }, + "id": 241, + "nodeType": "IfStatement", + "src": "5168:437:0", + "trueBody": { + "id": 235, + "nodeType": "Block", + "src": "5228:186:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 218, + "name": "currentDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5246:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 220, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5278:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 219, + "name": "DetailedERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "5264:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$1099_$", + "typeString": "type(contract DetailedERC20)" + } + }, + "id": 221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5264:31:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DetailedERC20_$1099", + "typeString": "contract DetailedERC20" + } + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 1076, + "src": "5264:40:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5264:42:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "5246:60:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 225, + "nodeType": "ExpressionStatement", + "src": "5246:60:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 226, + "name": "minDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5324:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 227, + "name": "currentDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5338:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 228, + "name": "minDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5356:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "5338:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 231, + "name": "minDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5388:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "5338:61:0", + "trueExpression": { + "argumentTypes": null, + "id": 230, + "name": "currentDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5370:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "5324:75:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 234, + "nodeType": "ExpressionStatement", + "src": "5324:75:0" + } + ] } }, - "value": null, - "visibility": "internal" - } - ], - "id": 718, - "initialValue": { - "argumentTypes": null, - "arguments": [ { - "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 715, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11278:10:1", + "arguments": [ + { + "argumentTypes": null, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5689:35:0", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 244, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5707:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 243, + "name": "tokenIsComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "5690:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5690:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 242, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1439, + "src": "5681:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5681:44:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 716, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11278:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "11264:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" + "id": 248, + "nodeType": "ExpressionStatement", + "src": "5681:44:0" }, - "typeName": { - "baseType": { - "id": 712, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 713, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11268:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11264:32:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11226:70:1" - }, - { - "body": { - "id": 739, - "nodeType": "Block", - "src": "11353:71:1", - "statements": [ { "expression": { "argumentTypes": null, - "id": 737, + "id": 258, "isConstant": false, "isLValue": false, "isPure": false, @@ -21935,29 +9906,117 @@ export const SetToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 730, - "name": "componentAddresses", + "id": 249, + "name": "isComponent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 711, - "src": "11367:18:1", + "referencedDeclaration": 54, + "src": "5792:11:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" } }, - "id": 732, + "id": 256, "indexExpression": { "argumentTypes": null, - "id": 731, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11386:1:1", + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 253, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5831:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 251, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "5814:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5814:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 250, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1430, + "src": "5804:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5804:45:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "isConstant": false, @@ -21965,79 +10024,158 @@ export const SetToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "11367:21:1", + "src": "5792:58:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "expression": { + "hexValue": "74727565", + "id": 257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5853:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5792:65:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 259, + "nodeType": "ExpressionStatement", + "src": "5792:65:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 733, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11391:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" + "arguments": [ + { + "argumentTypes": null, + "id": 264, + "name": "currentComponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 196, + "src": "5926:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 265, + "name": "currentUnits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "5967:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "id": 735, - "indexExpression": { + ], + "expression": { "argumentTypes": null, - "id": 734, - "name": "i", + "id": 263, + "name": "Component", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11402:1:1", + "referencedDeclaration": 45, + "src": "5888:9:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_type$_t_struct$_Component_$45_storage_ptr_$", + "typeString": "type(struct SetToken.Component storage pointer)" } }, + "id": 266, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "structConstructorCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11391:13:1", + "names": [ + "address_", + "unit_" + ], + "nodeType": "FunctionCall", + "src": "5888:106:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" + "typeIdentifier": "t_struct$_Component_$45_memory", + "typeString": "struct SetToken.Component memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Component_$45_memory", + "typeString": "struct SetToken.Component memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 260, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "5872:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" } }, - "id": 736, + "id": 262, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "address_", + "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "11391:22:1", + "referencedDeclaration": null, + "src": "5872:15:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Component_$45_storage_$returns$_t_uint256_$", + "typeString": "function (struct SetToken.Component storage ref) returns (uint256)" } }, - "src": "11367:46:1", + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5872:123:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 738, + "id": 268, "nodeType": "ExpressionStatement", - "src": "11367:46:1" + "src": "5872:123:0" } ] }, @@ -22047,19 +10185,19 @@ export const SetToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 726, + "id": 178, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 723, + "id": 175, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11325:1:1", + "referencedDeclaration": 172, + "src": "4580:1:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -22071,50 +10209,50 @@ export const SetToken = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 724, - "name": "components", + "id": 176, + "name": "_units", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11329:10:1", + "referencedDeclaration": 150, + "src": "4584:6:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" } }, - "id": 725, + "id": 177, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11329:17:1", + "src": "4584:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11325:21:1", + "src": "4580:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 740, + "id": 270, "initializationExpression": { "assignments": [ - 720 + 172 ], "declarations": [ { "constant": false, - "id": 720, + "id": 172, "name": "i", "nodeType": "VariableDeclaration", - "scope": 744, - "src": "11311:8:1", + "scope": 280, + "src": "4566:8:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22122,10 +10260,10 @@ export const SetToken = "typeString": "uint16" }, "typeName": { - "id": 719, + "id": 171, "name": "uint16", "nodeType": "ElementaryTypeName", - "src": "11311:6:1", + "src": "4566:6:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -22135,18 +10273,18 @@ export const SetToken = "visibility": "internal" } ], - "id": 722, + "id": 174, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 721, + "id": 173, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11322:1:1", + "src": "4577:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -22155,12 +10293,12 @@ export const SetToken = "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "11311:12:1" + "src": "4566:12:0" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 728, + "id": 180, "isConstant": false, "isLValue": false, "isPure": false, @@ -22168,15 +10306,15 @@ export const SetToken = "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "11348:3:1", + "src": "4599:3:0", "subExpression": { "argumentTypes": null, - "id": 727, + "id": 179, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "11348:1:1", + "referencedDeclaration": 172, + "src": "4599:1:0", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -22187,603 +10325,739 @@ export const SetToken = "typeString": "uint16" } }, - "id": 729, + "id": 181, "nodeType": "ExpressionStatement", - "src": "11348:3:1" + "src": "4599:3:0" + }, + "nodeType": "ForStatement", + "src": "4561:1445:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 271, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "6236:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 272, + "name": "_factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 144, + "src": "6246:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6236:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 274, + "nodeType": "ExpressionStatement", + "src": "6236:18:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 275, + "name": "naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "6264:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 276, + "name": "_naturalUnit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 152, + "src": "6278:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6264:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 278, + "nodeType": "ExpressionStatement", + "src": "6264:26:0" + } + ] + }, + "documentation": "Constructor function for {Set} token\n * As looping operations are expensive, checking for duplicates will be on the onus of the application developer\n * @param _components address[] A list of component address which you want to include\n@param _units uint[] A list of quantities in gWei of each component (corresponds to the {Set} of _components)\n@param _naturalUnit uint The minimum multiple of Sets that can be issued or redeeemed\n@param _name string The Set's name\n@param _symbol string the Set's symbol", + "id": 280, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 159, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "4244:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 160, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 156, + "src": "4251:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4260:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "id": 162, + "modifierName": { + "argumentTypes": null, + "id": 158, + "name": "DetailedERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1099, + "src": "4230:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$1099_$", + "typeString": "type(contract DetailedERC20)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4230:33:0" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 144, + "name": "_factory", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4057:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 143, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4057:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 147, + "name": "_components", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4083:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 145, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4083:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 146, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4083:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 150, + "name": "_units", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4114:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 148, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4114:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 149, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4114:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 152, + "name": "_naturalUnit", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4137:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "nodeType": "ForStatement", - "src": "11306:118:1" + "typeName": { + "id": 151, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4137:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" }, { - "expression": { - "argumentTypes": null, - "id": 741, - "name": "componentAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 711, - "src": "11440:18:1", + "constant": false, + "id": 154, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "4164:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 153, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4164:6:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, - "functionReturnParameters": 707, - "id": 742, - "nodeType": "Return", - "src": "11433:25:1" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Getters\n////////////////////////////////////////////////////////", - "id": 744, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getComponents", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 703, - "nodeType": "ParameterList", - "parameters": [], - "src": "11153:2:1" - }, - "payable": false, - "returnParameters": { - "id": 707, - "nodeType": "ParameterList", - "parameters": [ + "value": null, + "visibility": "internal" + }, { "constant": false, - "id": 706, - "name": "", + "id": 156, + "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 744, - "src": "11201:9:1", + "scope": 280, + "src": "4186:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "baseType": { - "id": 704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11201:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 705, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11201:9:1", + "id": 155, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4186:6:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, "visibility": "internal" } ], - "src": "11200:11:1" + "src": "4047:159:0" }, - "scope": 980, - "src": "11131:334:1", - "stateMutability": "view", + "payable": false, + "returnParameters": { + "id": 163, + "nodeType": "ParameterList", + "parameters": [], + "src": "4363:0:0" + }, + "scope": 498, + "src": "4036:2261:0", + "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 785, + "id": 307, "nodeType": "Block", - "src": "11547:201:1", + "src": "6709:220:0", "statements": [ { - "assignments": [ - 753 - ], - "declarations": [ - { - "constant": false, - "id": 753, - "name": "units", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "11557:19:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11557:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 752, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11557:6:1", + "expression": { + "argumentTypes": null, + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 289, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "6765:8:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 760, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { + "id": 291, + "indexExpression": { "argumentTypes": null, - "expression": { + "id": 290, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "6774:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6765:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 757, - "name": "components", + "id": 296, + "name": "_quantity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11590:10:1", + "referencedDeclaration": 284, + "src": "6807:9:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 758, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11590:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], - "id": 756, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "11579:10:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 754, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11583:4:1", - "typeDescriptions": { + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "id": 755, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11583:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11579:29:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11557:51:1" - }, - { - "body": { - "id": 781, - "nodeType": "Block", - "src": "11665:55:1", - "statements": [ - { + ], "expression": { "argumentTypes": null, - "id": 779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 772, - "name": "units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "11679:5:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 774, - "indexExpression": { - "argumentTypes": null, - "id": 773, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11685:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11679:8:1", + "id": 292, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "6785:8:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 294, + "indexExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 775, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11690:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 777, - "indexExpression": { - "argumentTypes": null, - "id": 776, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11701:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11690:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 778, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "unit_", - "nodeType": "MemberAccess", - "referencedDeclaration": 85, - "src": "11690:19:1", + "id": 293, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "6794:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "11679:30:1", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6785:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 780, - "nodeType": "ExpressionStatement", - "src": "11679:30:1" + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 882, + "src": "6785:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6785:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { + }, + "src": "6765:52:0", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 768, + } + }, + "id": 299, + "nodeType": "ExpressionStatement", + "src": "6765:52:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { "argumentTypes": null, - "id": 765, - "name": "i", + "id": 300, + "name": "totalSupply_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11637:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 766, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11641:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 767, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11641:17:1", + "referencedDeclaration": 984, + "src": "6880:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11637:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 782, - "initializationExpression": { - "assignments": [ - 762 - ], - "declarations": [ - { - "constant": false, - "id": 762, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 786, - "src": "11623:8:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 761, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "11623:6:1", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 303, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 284, + "src": "6912:9:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 301, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "6895:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 764, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11634:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "id": 302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 882, + "src": "6895:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "11623:12:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 770, + "id": 304, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "11660:3:1", - "subExpression": { - "argumentTypes": null, - "id": 769, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 762, - "src": "11660:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, + "names": [], + "nodeType": "FunctionCall", + "src": "6895:27:0", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 771, - "nodeType": "ExpressionStatement", - "src": "11660:3:1" - }, - "nodeType": "ForStatement", - "src": "11618:102:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 783, - "name": "units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "11736:5:1", + "src": "6880:42:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 749, - "id": 784, - "nodeType": "Return", - "src": "11729:12:1" + "id": 306, + "nodeType": "ExpressionStatement", + "src": "6880:42:0" } ] }, "documentation": null, - "id": 786, + "id": 308, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getUnits", + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 287, + "modifierName": { + "argumentTypes": null, + "id": 286, + "name": "isCore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "6698:6:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6698:6:0" + } + ], + "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 745, - "nodeType": "ParameterList", - "parameters": [], - "src": "11488:2:1" - }, - "payable": false, - "returnParameters": { - "id": 749, + "id": 285, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 748, - "name": "", + "id": 282, + "name": "_issuer", "nodeType": "VariableDeclaration", - "scope": 786, - "src": "11535:6:1", + "scope": 308, + "src": "6627:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "baseType": { - "id": 746, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11535:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 747, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11535:6:1", + "id": 281, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6627:7:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 284, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 308, + "src": "6652:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 283, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6652:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "11534:8:1" + "src": "6617:55:0" }, - "scope": 980, - "src": "11471:277:1", - "stateMutability": "view", + "payable": false, + "returnParameters": { + "id": 288, + "nodeType": "ParameterList", + "parameters": [], + "src": "6709:0:0" + }, + "scope": 498, + "src": "6604:325:0", + "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 835, + "id": 354, "nodeType": "Block", - "src": "11913:336:1", + "src": "7316:219:0", "statements": [ { "expression": { @@ -22791,636 +11065,378 @@ export const SetToken = "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 797, - "name": "_componentAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "11948:17:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 796, - "name": "tokenIsComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "11931:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 798, + "id": 325, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11931:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 795, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "11923:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11923:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 800, - "nodeType": "ExpressionStatement", - "src": "11923:44:1" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 802, - "name": "componentIndex", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11978:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 801, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11978:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 803, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "11978:19:1" - }, - { - "body": { - "id": 827, - "nodeType": "Block", - "src": "12053:124:1", - "statements": [ - { - "condition": { + "leftExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 815, - "name": "components", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "12071:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" - } - }, - "id": 817, - "indexExpression": { - "argumentTypes": null, - "id": 816, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12082:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12071:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Component_$86_storage", - "typeString": "struct SetToken.Component storage ref" - } - }, - "id": 818, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "address_", - "nodeType": "MemberAccess", - "referencedDeclaration": 83, - "src": "12071:22:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "baseExpression": { "argumentTypes": null, - "id": 819, - "name": "_componentAddress", + "id": 321, + "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "12097:17:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12071:43:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 826, - "nodeType": "IfStatement", - "src": "12067:100:1", - "trueBody": { - "id": 825, - "nodeType": "Block", - "src": "12116:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 821, - "name": "componentIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "12134:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 822, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12151:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12134:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 824, - "nodeType": "ExpressionStatement", - "src": "12134:18:1" + "referencedDeclaration": 982, + "src": "7334:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } - ] + }, + "id": 323, + "indexExpression": { + "argumentTypes": null, + "id": 322, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "7343:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7334:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 324, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 312, + "src": "7353:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7334:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } } - ] + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1439, + 1440 + ], + "referencedDeclaration": 1439, + "src": "7326:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7326:37:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "condition": { + "id": 327, + "nodeType": "ExpressionStatement", + "src": "7326:37:0" + }, + { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 811, + "id": 337, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 808, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12025:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { + "leftHandSide": { "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "id": 809, - "name": "components", + "id": 328, + "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "12029:10:1", + "referencedDeclaration": 982, + "src": "7374:8:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Component_$86_storage_$dyn_storage", - "typeString": "struct SetToken.Component storage ref[] storage ref" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 330, + "indexExpression": { + "argumentTypes": null, + "id": 329, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "7383:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 810, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12029:17:1", + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7374:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12025:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 828, - "initializationExpression": { - "assignments": [ - 805 - ], - "declarations": [ - { - "constant": false, - "id": 805, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "12013:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 804, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12013:4:1", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 335, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 312, + "src": "7412:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 331, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "7392:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 333, + "indexExpression": { + "argumentTypes": null, + "id": 332, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "7401:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7392:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 807, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12022:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 858, + "src": "7392:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12013:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 813, + "id": 336, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12048:3:1", - "subExpression": { - "argumentTypes": null, - "id": 812, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "12048:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "names": [], + "nodeType": "FunctionCall", + "src": "7392:30:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 814, - "nodeType": "ExpressionStatement", - "src": "12048:3:1" + "src": "7374:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "nodeType": "ForStatement", - "src": "12008:169:1" + "id": 338, + "nodeType": "ExpressionStatement", + "src": "7374:48:0" }, { "expression": { "argumentTypes": null, - "baseExpression": { + "id": 344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 339, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "7432:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 829, - "name": "unredeemedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "12194:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(uint256 => mapping(address => uint256))" + "arguments": [ + { + "argumentTypes": null, + "id": 342, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 312, + "src": "7464:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "id": 831, - "indexExpression": { - "argumentTypes": null, - "id": 830, - "name": "componentIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "12213:14:1", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 340, + "name": "totalSupply_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "7447:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 858, + "src": "7447:16:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, + "id": 343, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12194:34:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 833, - "indexExpression": { - "argumentTypes": null, - "id": 832, - "name": "_userAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 790, - "src": "12229:12:1", + "names": [], + "nodeType": "FunctionCall", + "src": "7447:27:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12194:48:1", + "src": "7432:42:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 794, - "id": 834, - "nodeType": "Return", - "src": "12187:55:1" - } - ] - }, - "documentation": null, - "id": 836, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getUnredeemedBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 788, - "name": "_componentAddress", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11793:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 787, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11793:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" + "id": 345, + "nodeType": "ExpressionStatement", + "src": "7432:42:0" }, { - "constant": false, - "id": 790, - "name": "_userAddress", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11828:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 789, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11828:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11783:71:1" - }, - "payable": false, - "returnParameters": { - "id": 794, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 793, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "11900:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 792, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11900:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11899:9:1" - }, - "scope": 980, - "src": "11754:495:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 854, - "nodeType": "Block", - "src": "12549:51:1", - "statements": [ - { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 850, - "name": "_to", + "id": 347, + "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "12581:3:1", + "referencedDeclaration": 310, + "src": "7499:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23428,12 +11444,68 @@ export const SetToken = }, { "argumentTypes": null, - "id": 851, - "name": "_value", + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7514:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7506:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7506:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 351, + "name": "_quantity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "12586:6:1", + "referencedDeclaration": 312, + "src": "7518:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23442,6 +11514,10 @@ export const SetToken = ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, { "typeIdentifier": "t_address", "typeString": "address" @@ -23451,34 +11527,18 @@ export const SetToken = "typeString": "uint256" } ], - "expression": { - "argumentTypes": null, - "id": 848, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "12566:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_SetToken_$980", - "typeString": "contract super SetToken" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 2324, - "src": "12566:14:1", + "id": 346, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1173, + "src": "7490:8:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" } }, - "id": 852, + "id": 352, "isConstant": false, "isLValue": false, "isPure": false, @@ -23486,72 +11546,90 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12566:27:1", + "src": "7490:38:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 847, - "id": 853, - "nodeType": "Return", - "src": "12559:34:1" + "id": 353, + "nodeType": "EmitStatement", + "src": "7485:43:0" } ] }, - "documentation": "////////////////////////////////////////////////////////\n Transfer Updates\n////////////////////////////////////////////////////////", - "id": 855, + "documentation": null, + "id": 355, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ + { + "arguments": null, + "id": 315, + "modifierName": { + "argumentTypes": null, + "id": 314, + "name": "isCore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "7275:6:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7275:6:0" + }, { "arguments": [ { "argumentTypes": null, - "id": 843, - "name": "_to", + "id": 317, + "name": "_quantity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "12502:3:1", + "referencedDeclaration": 312, + "src": "7301:9:0", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], - "id": 844, + "id": 318, "modifierName": { "argumentTypes": null, - "id": 842, - "name": "validDestination", + "id": 316, + "name": "isPositive", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "12485:16:1", + "referencedDeclaration": 120, + "src": "7290:10:0", "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "12485:21:1" + "src": "7290:21:0" } ], - "name": "transfer", + "name": "burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 841, + "id": 313, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 838, - "name": "_to", + "id": 310, + "name": "_from", "nodeType": "VariableDeclaration", - "scope": 855, - "src": "12435:11:1", + "scope": 355, + "src": "7206:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23559,10 +11637,10 @@ export const SetToken = "typeString": "address" }, "typeName": { - "id": 837, + "id": 309, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12435:7:1", + "src": "7206:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23573,11 +11651,11 @@ export const SetToken = }, { "constant": false, - "id": 840, - "name": "_value", + "id": 312, + "name": "_quantity", "nodeType": "VariableDeclaration", - "scope": 855, - "src": "12456:14:1", + "scope": 355, + "src": "7229:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23585,10 +11663,10 @@ export const SetToken = "typeString": "uint256" }, "typeName": { - "id": 839, - "name": "uint256", + "id": 311, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12456:7:1", + "src": "7229:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23598,1080 +11676,1276 @@ export const SetToken = "visibility": "internal" } ], - "src": "12425:51:1" + "src": "7196:53:0" }, "payable": false, "returnParameters": { - "id": 847, + "id": 319, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 846, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 855, - "src": "12539:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 845, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12539:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12538:6:1" + "parameters": [], + "src": "7316:0:0" }, - "scope": 980, - "src": "12408:192:1", + "scope": 498, + "src": "7183:352:0", "stateMutability": "nonpayable", - "superFunction": 2324, - "visibility": "public" + "superFunction": null, + "visibility": "external" }, { "body": { - "id": 876, + "id": 396, "nodeType": "Block", - "src": "12774:62:1", + "src": "7670:249:0", "statements": [ { - "expression": { + "assignments": [ + 364 + ], + "declarations": [ + { + "constant": false, + "id": 364, + "name": "componentAddresses", + "nodeType": "VariableDeclaration", + "scope": 397, + "src": "7680:35:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 362, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7680:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 363, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7680:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 371, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 368, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "7732:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" + } + }, + "id": 369, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7732:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "7718:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7722:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 366, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7722:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7718:32:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7680:70:0" + }, + { + "body": { + "id": 392, + "nodeType": "Block", + "src": "7807:71:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 383, + "name": "componentAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "7821:18:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 385, + "indexExpression": { + "argumentTypes": null, + "id": 384, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "7840:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7821:21:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 386, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "7845:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" + } + }, + "id": 388, + "indexExpression": { + "argumentTypes": null, + "id": 387, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "7856:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7845:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Component_$45_storage", + "typeString": "struct SetToken.Component storage ref" + } + }, + "id": 389, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "address_", + "nodeType": "MemberAccess", + "referencedDeclaration": 42, + "src": "7845:22:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7821:46:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 391, + "nodeType": "ExpressionStatement", + "src": "7821:46:0" + } + ] + }, + "condition": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 871, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "12810:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 872, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "12817:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 873, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 861, - "src": "12822:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 376, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "7779:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 869, - "name": "super", + "id": 377, + "name": "components", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "12791:5:1", + "referencedDeclaration": 50, + "src": "7783:10:0", "typeDescriptions": { - "typeIdentifier": "t_super$_SetToken_$980", - "typeString": "contract super SetToken" + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" } }, - "id": 870, + "id": 378, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "transferFrom", + "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": 2652, - "src": "12791:18:1", + "referencedDeclaration": null, + "src": "7783:17:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12791:38:1", + "src": "7779:21:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 868, - "id": 875, - "nodeType": "Return", - "src": "12784:45:1" - } - ] - }, - "documentation": null, - "id": 877, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 864, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "12727:3:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 865, - "modifierName": { - "argumentTypes": null, - "id": 863, - "name": "validDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "12710:16:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12710:21:1" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 862, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 857, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12637:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 856, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12637:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 859, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12660:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "id": 393, + "initializationExpression": { + "assignments": [ + 373 + ], + "declarations": [ + { + "constant": false, + "id": 373, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 397, + "src": "7765:8:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 372, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "7765:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 375, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 374, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7776:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7765:12:0" }, - "typeName": { - "id": 858, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12660:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7802:3:0", + "subExpression": { + "argumentTypes": null, + "id": 380, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "7802:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 382, + "nodeType": "ExpressionStatement", + "src": "7802:3:0" }, - "value": null, - "visibility": "internal" + "nodeType": "ForStatement", + "src": "7760:118:0" }, { - "constant": false, - "id": 861, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12681:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 860, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12681:7:1", + "expression": { + "argumentTypes": null, + "id": 394, + "name": "componentAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "7894:18:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" } }, - "value": null, - "visibility": "internal" + "functionReturnParameters": 360, + "id": 395, + "nodeType": "Return", + "src": "7887:25:0" } - ], - "src": "12627:74:1" + ] + }, + "documentation": null, + "id": 397, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getComponents", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 356, + "nodeType": "ParameterList", + "parameters": [], + "src": "7608:2:0" }, "payable": false, "returnParameters": { - "id": 868, + "id": 360, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 867, + "id": 359, "name": "", "nodeType": "VariableDeclaration", - "scope": 877, - "src": "12764:4:1", + "scope": 397, + "src": "7655:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" }, "typeName": { - "id": 866, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12764:4:1", + "baseType": { + "id": 357, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7655:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 358, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7655:9:0", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], - "src": "12763:6:1" + "src": "7654:11:0" }, - "scope": 980, - "src": "12606:230:1", - "stateMutability": "nonpayable", - "superFunction": 2652, + "scope": 498, + "src": "7586:333:0", + "stateMutability": "view", + "superFunction": null, "visibility": "public" }, { "body": { - "id": 890, + "id": 438, "nodeType": "Block", - "src": "13116:61:1", + "src": "8001:201:0", "statements": [ { - "expression": { + "assignments": [ + 406 + ], + "declarations": [ + { + "constant": false, + "id": 406, + "name": "units", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "8011:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 404, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8011:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 405, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8011:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 413, + "initialValue": { "argumentTypes": null, - "baseExpression": { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 410, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8044:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" + } + }, + "id": 411, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8044:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "8033:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8037:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 408, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8037:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8033:29:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8011:51:0" + }, + { + "body": { + "id": 434, + "nodeType": "Block", + "src": "8119:55:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 425, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 406, + "src": "8133:5:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 427, + "indexExpression": { + "argumentTypes": null, + "id": 426, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "8139:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8133:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 428, + "name": "components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8144:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" + } + }, + "id": 430, + "indexExpression": { + "argumentTypes": null, + "id": 429, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "8155:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8144:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Component_$45_storage", + "typeString": "struct SetToken.Component storage ref" + } + }, + "id": 431, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "unit_", + "nodeType": "MemberAccess", + "referencedDeclaration": 44, + "src": "8144:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8133:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 433, + "nodeType": "ExpressionStatement", + "src": "8133:30:0" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 884, - "name": "isComponent", + "id": 418, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "13133:11:1", + "referencedDeclaration": 415, + "src": "8091:1:0", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" + "typeIdentifier": "t_uint16", + "typeString": "uint16" } }, - "id": 888, - "indexExpression": { + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 886, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "13155:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 885, - "name": "keccak256", + "argumentTypes": null, + "id": 419, + "name": "components", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "13145:9:1", + "referencedDeclaration": 50, + "src": "8095:10:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" + "typeIdentifier": "t_array$_t_struct$_Component_$45_storage_$dyn_storage", + "typeString": "struct SetToken.Component storage ref[] storage ref" } }, - "id": 887, + "id": 420, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13145:24:1", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8095:17:0", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13133:37:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 883, - "id": 889, - "nodeType": "Return", - "src": "13126:44:1" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Private Function\n////////////////////////////////////////////////////////", - "id": 891, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "tokenIsComponent", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 880, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 879, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 891, - "src": "13031:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 878, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13031:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13021:37:1" - }, - "payable": false, - "returnParameters": { - "id": 883, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 891, - "src": "13106:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 881, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "13106:4:1", + "src": "8091:21:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "13105:6:1" - }, - "scope": 980, - "src": "12996:181:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 908, - "nodeType": "Block", - "src": "13329:69:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ + "id": 435, + "initializationExpression": { + "assignments": [ + 415 + ], + "declarations": [ { - "argumentTypes": null, - "id": 905, - "name": "componentUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 893, - "src": "13376:14:1", + "constant": false, + "id": 415, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "8077:8:0", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 902, - "name": "naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "13359:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 900, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 895, - "src": "13346:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 2110, - "src": "13346:12:1", + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 414, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "8077:6:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_uint16", + "typeString": "uint16" } }, - "id": 903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13346:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "value": null, + "visibility": "internal" + } + ], + "id": 417, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8088:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "id": 904, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8077:12:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 2096, - "src": "13346:29:1", + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "8114:3:0", + "subExpression": { + "argumentTypes": null, + "id": 422, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "8114:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13346:45:1", + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 424, + "nodeType": "ExpressionStatement", + "src": "8114:3:0" + }, + "nodeType": "ForStatement", + "src": "8072:102:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 436, + "name": "units", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 406, + "src": "8190:5:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" } }, - "functionReturnParameters": 899, - "id": 907, + "functionReturnParameters": 402, + "id": 437, "nodeType": "Return", - "src": "13339:52:1" + "src": "8183:12:0" } ] }, "documentation": null, - "id": 909, + "id": 439, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "calculateTransferValue", + "name": "getUnits", "nodeType": "FunctionDefinition", "parameters": { - "id": 896, + "id": 398, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 893, - "name": "componentUnits", - "nodeType": "VariableDeclaration", - "scope": 909, - "src": "13224:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 892, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13224:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 895, - "name": "quantity", - "nodeType": "VariableDeclaration", - "scope": 909, - "src": "13253:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 894, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13253:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13214:58:1" + "parameters": [], + "src": "7942:2:0" }, "payable": false, "returnParameters": { - "id": 899, + "id": 402, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 898, + "id": 401, "name": "", "nodeType": "VariableDeclaration", - "scope": 909, - "src": "13319:4:1", + "scope": 439, + "src": "7989:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" }, "typeName": { - "id": 897, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13319:4:1", + "baseType": { + "id": 399, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7989:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 400, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7989:6:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" } }, "value": null, "visibility": "internal" } ], - "src": "13318:6:1" + "src": "7988:8:0" }, - "scope": 980, - "src": "13183:215:1", + "scope": 498, + "src": "7925:277:0", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 943, + "id": 457, "nodeType": "Block", - "src": "13468:182:1", + "src": "8407:51:0", "statements": [ { "expression": { "argumentTypes": null, - "id": 925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 914, - "name": "balances", + "id": 453, + "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13478:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 917, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 915, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13487:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13487:10:1", + "referencedDeclaration": 441, + "src": "8439:3:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13478:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 923, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "13526:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 918, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13501:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 921, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13510:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13510:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13501:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "13501:24:1", + { + "argumentTypes": null, + "id": 454, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 443, + "src": "8444:6:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13501:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13478:57:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 926, - "nodeType": "ExpressionStatement", - "src": "13478:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 927, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13545:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 930, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "13577:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 928, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13560:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "13560:16:1", + "argumentTypes": null, + "id": 451, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "8424:5:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_super$_SetToken_$498", + "typeString": "contract super SetToken" } }, - "id": 931, + "id": 452, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13560:26:1", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1052, + "src": "8424:14:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" } }, - "src": "13545:41:1", + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8424:27:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 450, + "id": 456, + "nodeType": "Return", + "src": "8417:34:0" + } + ] + }, + "documentation": null, + "id": 458, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 446, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 441, + "src": "8375:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 447, + "modifierName": { + "argumentTypes": null, + "id": 445, + "name": "isValidDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 142, + "src": "8356:18:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8356:23:0" + } + ], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 444, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 441, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "8291:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8291:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 443, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "8312:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 442, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8312:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 933, - "nodeType": "ExpressionStatement", - "src": "13545:41:1" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "8281:51:0" + }, + "payable": false, + "returnParameters": { + "id": 450, + "nodeType": "ParameterList", + "parameters": [ { - "eventCall": { + "constant": false, + "id": 449, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 458, + "src": "8397:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 448, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8397:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8396:6:0" + }, + "scope": 498, + "src": "8264:194:0", + "stateMutability": "nonpayable", + "superFunction": 1052, + "visibility": "public" + }, + { + "body": { + "id": 479, + "nodeType": "Block", + "src": "8634:62:0", + "statements": [ + { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13618:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13610:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13610:10:1", + "id": 474, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 460, + "src": "8670:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24679,28 +12953,12 @@ export const SetToken = }, { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 938, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13622:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13622:10:1", + "id": 475, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "8677:3:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24708,12 +12966,12 @@ export const SetToken = }, { "argumentTypes": null, - "id": 940, - "name": "quantity", + "id": 476, + "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "13634:8:1", + "referencedDeclaration": 464, + "src": "8682:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24735,18 +12993,34 @@ export const SetToken = "typeString": "uint256" } ], - "id": 934, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "13601:8:1", + "expression": { + "argumentTypes": null, + "id": 472, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "8651:5:0", + "typeDescriptions": { + "typeIdentifier": "t_super$_SetToken_$498", + "typeString": "contract super SetToken" + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1274, + "src": "8651:18:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" } }, - "id": 941, + "id": 477, "isConstant": false, "isLValue": false, "isPure": false, @@ -24754,37 +13028,124 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13601:42:1", + "src": "8651:38:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 942, - "nodeType": "EmitStatement", - "src": "13596:47:1" + "functionReturnParameters": 471, + "id": 478, + "nodeType": "Return", + "src": "8644:45:0" } ] }, "documentation": null, - "id": 944, + "id": 480, "implemented": true, "isConstructor": false, "isDeclaredConst": false, - "modifiers": [], - "name": "mint", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 467, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "8602:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 468, + "modifierName": { + "argumentTypes": null, + "id": 466, + "name": "isValidDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 142, + "src": "8583:18:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8583:23:0" + } + ], + "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 912, + "id": 465, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 911, - "name": "quantity", + "id": 460, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "8495:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8495:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 462, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "8518:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 461, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8518:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 464, + "name": "_value", "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13427:13:1", + "scope": 480, + "src": "8539:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24792,10 +13153,10 @@ export const SetToken = "typeString": "uint256" }, "typeName": { - "id": 910, - "name": "uint", + "id": 463, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13427:4:1", + "src": "8539:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24805,286 +13166,159 @@ export const SetToken = "visibility": "internal" } ], - "src": "13417:29:1" + "src": "8485:74:0" }, "payable": false, "returnParameters": { - "id": 913, + "id": 471, "nodeType": "ParameterList", - "parameters": [], - "src": "13468:0:1" + "parameters": [ + { + "constant": false, + "id": 470, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "8624:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 469, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8624:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8623:6:0" }, - "scope": 980, - "src": "13404:246:1", + "scope": 498, + "src": "8464:232:0", "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" + "superFunction": 1274, + "visibility": "public" }, { "body": { - "id": 978, + "id": 496, "nodeType": "Block", - "src": "13720:182:1", + "src": "8875:79:0", "statements": [ { "expression": { - "argumentTypes": null, - "id": 960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 949, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13730:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 952, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 950, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13739:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13739:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13730:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 958, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "13778:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 953, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "13753:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 956, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 954, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13762:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13762:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13753:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "13753:24:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13753:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13730:57:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 961, - "nodeType": "ExpressionStatement", - "src": "13730:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 962, - "name": "totalSupply_", + "id": 487, + "name": "isComponent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13797:12:1", + "referencedDeclaration": 54, + "src": "8892:11:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "id": 494, + "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 965, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "13829:8:1", + "arguments": [ + { + "argumentTypes": null, + "id": 491, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 482, + "src": "8931:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 489, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1423, + "src": "8914:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8914:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8914:31:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } ], - "expression": { - "argumentTypes": null, - "id": 963, - "name": "totalSupply_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2256, - "src": "13812:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "13812:16:1", + "id": 488, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1430, + "src": "8904:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "id": 966, + "id": 493, "isConstant": false, "isLValue": false, "isPure": false, @@ -25092,237 +13326,123 @@ export const SetToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13812:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13797:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 968, - "nodeType": "ExpressionStatement", - "src": "13797:41:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 970, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "13862:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13862:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13882:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 972, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13874:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13874:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 975, - "name": "quantity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "13886:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 969, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "13853:8:1", + "src": "8904:42:0", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 976, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13853:42:1", + "nodeType": "IndexAccess", + "src": "8892:55:0", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 977, - "nodeType": "EmitStatement", - "src": "13848:47:1" + "functionReturnParameters": 486, + "id": 495, + "nodeType": "Return", + "src": "8885:62:0" } ] }, "documentation": null, - "id": 979, + "id": 497, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "burn", + "name": "tokenIsComponent", "nodeType": "FunctionDefinition", "parameters": { - "id": 947, + "id": 483, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 946, - "name": "quantity", + "id": 482, + "name": "_tokenAddress", "nodeType": "VariableDeclaration", - "scope": 979, - "src": "13679:13:1", + "scope": 497, + "src": "8790:21:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 945, - "name": "uint", + "id": 481, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "13679:4:1", + "src": "8790:7:0", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "13669:29:1" + "src": "8780:37:0" }, "payable": false, "returnParameters": { - "id": 948, + "id": 486, "nodeType": "ParameterList", - "parameters": [], - "src": "13720:0:1" + "parameters": [ + { + "constant": false, + "id": 485, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 497, + "src": "8865:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 484, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8865:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8864:6:0" }, - "scope": 980, - "src": "13656:246:1", - "stateMutability": "nonpayable", + "scope": 498, + "src": "8755:199:0", + "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 981, - "src": "485:13419:1" + "scope": 499, + "src": "1039:7917:0" } ], - "src": "0:13905:1" + "src": "597:8360:0" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.606Z" + "updatedAt": "2018-07-07T15:28:53.730Z" } \ No newline at end of file diff --git a/artifacts/ts/SetTokenFactory.ts b/artifacts/ts/SetTokenFactory.ts index c708d8511..f432e665b 100644 --- a/artifacts/ts/SetTokenFactory.ts +++ b/artifacts/ts/SetTokenFactory.ts @@ -6,7 +6,233 @@ export const SetTokenFactory = "constant": false, "inputs": [ { - "name": "_tokens", + "name": "_authTarget", + "type": "address" + } + ], + "name": "addAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "authorities", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + } + ], + "name": "removeAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "removeAuthorizedAddressAtIndex", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "authorized", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAuthorizedAddresses", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "core", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "authAddress", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AddressAuthorized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "addressRemoved", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AuthorizedAddressRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_coreAddress", + "type": "address" + } + ], + "name": "setCoreAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_components", "type": "address[]" }, { @@ -16,9 +242,17 @@ export const SetTokenFactory = { "name": "_naturalUnit", "type": "uint256" + }, + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" } ], - "name": "createSet", + "name": "create", "outputs": [ { "name": "", @@ -30,63 +264,261 @@ export const SetTokenFactory = "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50613dcc806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063821f91f414610046575b600080fd5b34801561005257600080fd5b506100f7600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610139565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000838383610146610206565b808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b83811015610190578082015181840152602081019050610175565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156101d25780820151818401526020810190506101b7565b5050505090500195505050505050604051809103906000f0801580156101fc573d6000803e3d6000fd5b5090509392505050565b604051613b8a8061021783390190560060806040523480156200001157600080fd5b5060405162003b8a38038062003b8a83398101806040526200003791908101906200069e565b6000806000602060405190810160405280600081525060206040519081016040528060008152506012826003908051906020019062000078929190620004a5565b50816004908051906020019062000091929190620004a5565b5080600560006101000a81548160ff021916908360ff16021790555050505083600081111515620000c157600080fd5b600087511115156200010a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001019062000915565b60405180910390fd5b6000865111151562000153576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014a9062000937565b60405180910390fd5b855187511415156200019c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001939062000959565b60405180910390fd5b84600681905550600093505b85518461ffff1610156200041657858461ffff16815181101515620001c957fe5b9060200190602002015192506000831115156200021d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200021490620008d1565b60405180910390fd5b868461ffff168151811015156200023057fe5b906020019060200201519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515620002b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002a890620008f3565b60405180910390fd5b620002cb8262000423640100000000026401000000009004565b151515620002d857600080fd5b60016008600084604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600760408051908101604052808473ffffffffffffffffffffffffffffffffffffffff168152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050508380600101945050620001a8565b5050505050505062000a25565b60006008600083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004e857805160ff191683800117855562000519565b8280016001018555821562000519579182015b8281111562000518578251825591602001919060010190620004fb565b5b5090506200052891906200052c565b5090565b6200055191905b808211156200054d57600081600090555060010162000533565b5090565b90565b6000620005628251620009fb565b905092915050565b600082601f83011215156200057e57600080fd5b8151620005956200058f82620009a9565b6200097b565b91508181835260208401935060208101905083856020840282011115620005bb57600080fd5b60005b83811015620005ef5781620005d4888262000554565b845260208401935060208301925050600181019050620005be565b5050505092915050565b600082601f83011215156200060d57600080fd5b8151620006246200061e82620009d2565b6200097b565b915081818352602084019350602081019050838560208402820111156200064a57600080fd5b60005b838110156200067e578162000663888262000688565b8452602084019350602083019250506001810190506200064d565b5050505092915050565b600062000696825162000a1b565b905092915050565b600080600060608486031215620006b457600080fd5b600084015167ffffffffffffffff811115620006cf57600080fd5b620006dd868287016200056a565b935050602084015167ffffffffffffffff811115620006fb57600080fd5b6200070986828701620005f9565b92505060406200071c8682870162000688565b9150509250925092565b6000602282527f556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a6560208301527f726f0000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602582527f436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616460208301527f64726573730000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602982527f436f6d706f6e656e74206c656e677468206e6565647320746f2062652067726560208301527f6174207468616e203000000000000000000000000000000000000000000000006040830152606082019050919050565b6000601c82527f556e697473206d7573742062652067726561746572207468616e2030000000006020830152604082019050919050565b6000602b82527f436f6d706f6e656e7420616e6420756e6974206c656e67746873206d7573742060208301527f6265207468652073616d650000000000000000000000000000000000000000006040830152606082019050919050565b60006020820190508181036000830152620008ec8162000726565b9050919050565b600060208201905081810360008301526200090e8162000783565b9050919050565b600060208201905081810360008301526200093081620007e0565b9050919050565b6000602082019050818103600083015262000952816200083d565b9050919050565b60006020820190508181036000830152620009748162000874565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156200099f57600080fd5b8060405250919050565b600067ffffffffffffffff821115620009c157600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115620009ea57600080fd5b602082029050602081019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6131558062000a356000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461011757806306fdde0314610142578063095ea7b31461016d57806315698812146101aa57806318160ddd146101e757806323b872dd14610212578063313ce5671461024f57806338c7db751461027a57806342a7cfd5146102b757806366188463146102e257806370a082311461031f57806395d89b411461035c57806399d50d5d14610387578063a9059cbb146103b2578063b5d65f61146103ef578063c5d574fe1461042c578063cc872b661461046a578063d73dd623146104a7578063db006a75146104e4578063dd62ed3e14610521575b600080fd5b34801561012357600080fd5b5061012c61055e565b6040516101399190612e8f565b60405180910390f35b34801561014e57600080fd5b5061015761060a565b6040516101649190612f02565b60405180910390f35b34801561017957600080fd5b50610194600480360361018f9190810190612a94565b6106a8565b6040516101a19190612eb1565b60405180910390f35b3480156101b657600080fd5b506101d160048036036101cc9190810190612af9565b61079a565b6040516101de9190612eb1565b60405180910390f35b3480156101f357600080fd5b506101fc610a32565b6040516102099190612f84565b60405180910390f35b34801561021e57600080fd5b5061023960048036036102349190810190612a45565b610a3c565b6040516102469190612eb1565b60405180910390f35b34801561025b57600080fd5b50610264610acb565b6040516102719190612fc8565b60405180910390f35b34801561028657600080fd5b506102a1600480360361029c9190810190612a09565b610ade565b6040516102ae9190612f84565b60405180910390f35b3480156102c357600080fd5b506102cc610be9565b6040516102d99190612f84565b60405180910390f35b3480156102ee57600080fd5b5061030960048036036103049190810190612a94565b610bef565b6040516103169190612eb1565b60405180910390f35b34801561032b57600080fd5b50610346600480360361034191908101906129e0565b610e80565b6040516103539190612f84565b60405180910390f35b34801561036857600080fd5b50610371610ec8565b60405161037e9190612f02565b60405180910390f35b34801561039357600080fd5b5061039c610f66565b6040516103a99190612e6d565b60405180910390f35b3480156103be57600080fd5b506103d960048036036103d49190810190612a94565b611060565b6040516103e69190612eb1565b60405180910390f35b3480156103fb57600080fd5b5061041660048036036104119190810190612b74565b6110ed565b6040516104239190612eb1565b60405180910390f35b34801561043857600080fd5b50610453600480360361044e9190810190612b22565b611622565b604051610461929190612e44565b60405180910390f35b34801561047657600080fd5b50610491600480360361048c9190810190612b22565b611675565b60405161049e9190612eb1565b60405180910390f35b3480156104b357600080fd5b506104ce60048036036104c99190810190612a94565b6119d7565b6040516104db9190612eb1565b60405180910390f35b3480156104f057600080fd5b5061050b60048036036105069190810190612b22565b611bd3565b6040516105189190612eb1565b60405180910390f35b34801561052d57600080fd5b5061054860048036036105439190810190612a09565b611fb8565b6040516105559190612f84565b60405180910390f35b60608060006007805490506040519080825280602002602001820160405280156105975781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156106025760078161ffff168154811015156105c357fe5b906000526020600020906002020160010154828261ffff168151811015156105e757fe5b9060200190602002018181525050808060010191505061059f565b819250505090565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107889190612f84565b60405180910390a36001905092915050565b600080600080600060010285600019161115156107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e390612f44565b60405180910390fd5b600092505b6007805490508361ffff1610156109d85760006001028360020a61ffff1660010286166000191611156109cb5760078361ffff1681548110151561083157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600960008461ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960008561ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161096d929190612e44565b602060405180830381600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109bf9190810190612ad0565b15156109ca57600080fd5b5b82806001019350506107f1565b3373ffffffffffffffffffffffffffffffffffffffff167f49e084e0b5b0bd93a9af05d1992881e35dee865cfbddbee0f1adea644fcaae1386604051610a1e9190612ecc565b60405180910390a260019350505050919050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a7b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ab657600080fd5b610ac185858561203f565b9150509392505050565b600560009054906101000a900460ff1681565b6000806000610aec856123f9565b1515610af757600080fd5b600090505b600780549050811015610b8e578473ffffffffffffffffffffffffffffffffffffffff16600782815481101515610b2f57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b81578091505b8080600101915050610afc565b6009600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505092915050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d00576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d94565b610d13838261247b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610e6d9190612f84565b60405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b505050505081565b6060806000600780549050604051908082528060200260200182016040528015610f9f5781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156110585760078161ffff16815481101515610fcb57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561100f57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610fa7565b819250505090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561109f57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156110da57600080fd5b6110e48484612494565b91505092915050565b60008060008060008660006006548281151561110557fe5b0614151561111257600080fd5b8760008111151561112257600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612f24565b60405180910390fd5b600060010289600019161115156111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612f64565b60405180910390fd5b6111fb8a6126b3565b600096505b6007805490508761ffff1610156115c15761123f60078861ffff1681548110151561122757fe5b9060005260206000209060020201600101548b6127ca565b955060006001028760020a61ffff166001028a166000191611156112c45785600960008961ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506115b4565b60078761ffff168154811015156112d757fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161135d9190612ee7565b602060405180830381600087803b15801561137757600080fd5b505af115801561138b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113af9190810190612b4b565b945060078761ffff168154811015156113c457fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33886040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161144c929190612e44565b602060405180830381600087803b15801561146657600080fd5b505af115801561147a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061149e9190810190612ad0565b15156114a957600080fd5b60078761ffff168154811015156114bc57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016115429190612ee7565b602060405180830381600087803b15801561155c57600080fd5b505af1158015611570573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115949190810190612b4b565b9350836115aa878761247b90919063ffffffff16565b1415156115b357fe5b5b8680600101975050611200565b3373ffffffffffffffffffffffffffffffffffffffff167f3d769c4a894e0b550ed0fa6c7342fa3c9261c59842db6606168cf3f3288eccfa8b8b604051611609929190612f9f565b60405180910390a2600197505050505050505092915050565b60078181548110151561163157fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60008060008060008060008760006006548281151561169057fe5b0614151561169d57600080fd5b886000811115156116ad57600080fd5b600097505b6007805490508861ffff16101561196f5760078861ffff168154811015156116d657fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16965060078861ffff1681548110151561171d57fe5b90600052602060002090600202016001015495508673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016117869190612ee7565b602060405180830381600087803b1580156117a057600080fd5b505af11580156117b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117d89190810190612b4b565b94506117e4868b6127ca565b93508673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161183f93929190612e0d565b602060405180830381600087803b15801561185957600080fd5b505af115801561186d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118919190810190612ad0565b151561189c57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016118f19190612ee7565b602060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119439190810190612b4b565b92508261195985876127fb90919063ffffffff16565b14151561196257fe5b87806001019850506116b2565b6119788a612817565b3373ffffffffffffffffffffffffffffffffffffffff167ffbd21f8762dc0c4fc0dbc03a2f816a0a617102a0f9d1908bbc09d377a0b9c6ab8b6040516119be9190612f84565b60405180910390a2600198505050505050505050919050565b6000611a6882600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051611bc19190612f84565b60405180910390a36001905092915050565b600080600080600080600087600060065482811515611bee57fe5b06141515611bfb57600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690612f24565b60405180910390fd5b89600081111515611c8f57600080fd5b611c988b6126b3565b600098505b6007805490508961ffff161015611f585760078961ffff16815481101515611cc157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16975060078961ffff16815481101515611d0857fe5b90600052602060002090600202016001015496508773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611d719190612ee7565b602060405180830381600087803b158015611d8b57600080fd5b505af1158015611d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dc39190810190612b4b565b9550611dcf878c6127ca565b94508773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611e28929190612e44565b602060405180830381600087803b158015611e4257600080fd5b505af1158015611e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e7a9190810190612ad0565b1515611e8557600080fd5b8773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611eda9190612ee7565b602060405180830381600087803b158015611ef457600080fd5b505af1158015611f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f2c9190810190612b4b565b935083611f42868861247b90919063ffffffff16565b141515611f4b57fe5b8880600101995050611c9d565b3373ffffffffffffffffffffffffffffffffffffffff167f2de3ebe1bb56079998f2617612ba527a2690a100757600dfc0d7253c808b74298c604051611f9e9190612f84565b60405180910390a260019950505050505050505050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561207c57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156120c957600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561215457600080fd5b6121a5826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612238826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123e69190612f84565b60405180910390a3600190509392505050565b60006008600083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b600082821115151561248957fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156124d157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561251e57600080fd5b61256f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612602826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126a19190612f84565b60405180910390a36001905092915050565b612704816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061275b8160015461247b90919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127bf9190612f84565b60405180910390a350565b60006127f3836127e56006548561292e90919063ffffffff16565b61294490919063ffffffff16565b905092915050565b6000818301905082811015151561280e57fe5b80905092915050565b612868816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128bf816001546127fb90919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129239190612f84565b60405180910390a350565b6000818381151561293b57fe5b04905092915050565b6000808314156129575760009050612976565b818302905081838281151561296857fe5b0414151561297257fe5b8090505b92915050565b60006129888235613085565b905092915050565b600061299c82516130a5565b905092915050565b60006129b082356130b1565b905092915050565b60006129c482356130bb565b905092915050565b60006129d882516130bb565b905092915050565b6000602082840312156129f257600080fd5b6000612a008482850161297c565b91505092915050565b60008060408385031215612a1c57600080fd5b6000612a2a8582860161297c565b9250506020612a3b8582860161297c565b9150509250929050565b600080600060608486031215612a5a57600080fd5b6000612a688682870161297c565b9350506020612a798682870161297c565b9250506040612a8a868287016129b8565b9150509250925092565b60008060408385031215612aa757600080fd5b6000612ab58582860161297c565b9250506020612ac6858286016129b8565b9150509250929050565b600060208284031215612ae257600080fd5b6000612af084828501612990565b91505092915050565b600060208284031215612b0b57600080fd5b6000612b19848285016129a4565b91505092915050565b600060208284031215612b3457600080fd5b6000612b42848285016129b8565b91505092915050565b600060208284031215612b5d57600080fd5b6000612b6b848285016129cc565b91505092915050565b60008060408385031215612b8757600080fd5b6000612b95858286016129b8565b9250506020612ba6858286016129a4565b9150509250929050565b612bb981613038565b82525050565b6000612bca82612ffd565b808452602084019350612bdc83612fe3565b60005b82811015612c0e57612bf2868351612bb0565b612bfb8261301e565b9150602086019550600181019050612bdf565b50849250505092915050565b6000612c2582613008565b808452602084019350612c3783612ff0565b60005b82811015612c6957612c4d868351612def565b612c568261302b565b9150602086019550600181019050612c3a565b50849250505092915050565b612c7e81613058565b82525050565b612c8d81613064565b82525050565b612c9c816130c5565b82525050565b6000612cad82613013565b808452612cc18160208601602086016130d7565b612cca8161310a565b602085010191505092915050565b6000602582527f5573657220646f6573206e6f7420686176652073756666696369656e7420626160208301527f6c616e63650000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602582527f436f6d706f6e656e747320746f2072656465656d206d757374206265206e6f6e60208301527f2d7a65726f0000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602482527f4578636c7564656420636f6d706f6e656e7473206d757374206265206e6f6e2d60208301527f7a65726f000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b612df88161306e565b82525050565b612e0781613078565b82525050565b6000606082019050612e226000830186612bb0565b612e2f6020830185612c93565b612e3c6040830184612def565b949350505050565b6000604082019050612e596000830185612bb0565b612e666020830184612def565b9392505050565b60006020820190508181036000830152612e878184612bbf565b905092915050565b60006020820190508181036000830152612ea98184612c1a565b905092915050565b6000602082019050612ec66000830184612c75565b92915050565b6000602082019050612ee16000830184612c84565b92915050565b6000602082019050612efc6000830184612c93565b92915050565b60006020820190508181036000830152612f1c8184612ca2565b905092915050565b60006020820190508181036000830152612f3d81612cd8565b9050919050565b60006020820190508181036000830152612f5d81612d35565b9050919050565b60006020820190508181036000830152612f7d81612d92565b9050919050565b6000602082019050612f996000830184612def565b92915050565b6000604082019050612fb46000830185612def565b612fc16020830184612c84565b9392505050565b6000602082019050612fdd6000830184612dfe565b92915050565b6000602082019050919050565b6000602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b60006130d082613038565b9050919050565b60005b838110156130f55780820151818401526020810190506130da565b83811115613104576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820805f242316e68b7836682369632fcea18dc45fcb1c42c4f40e6f3028e71265e36c6578706572696d656e74616cf50037a165627a7a723058202526523097d50161b9238adb58a3fda616af7fd21d7af0e6dc6169b35ed011400029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063821f91f414610046575b600080fd5b34801561005257600080fd5b506100f7600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610139565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000838383610146610206565b808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b83811015610190578082015181840152602081019050610175565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156101d25780820151818401526020810190506101b7565b5050505090500195505050505050604051809103906000f0801580156101fc573d6000803e3d6000fd5b5090509392505050565b604051613b8a8061021783390190560060806040523480156200001157600080fd5b5060405162003b8a38038062003b8a83398101806040526200003791908101906200069e565b6000806000602060405190810160405280600081525060206040519081016040528060008152506012826003908051906020019062000078929190620004a5565b50816004908051906020019062000091929190620004a5565b5080600560006101000a81548160ff021916908360ff16021790555050505083600081111515620000c157600080fd5b600087511115156200010a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001019062000915565b60405180910390fd5b6000865111151562000153576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014a9062000937565b60405180910390fd5b855187511415156200019c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001939062000959565b60405180910390fd5b84600681905550600093505b85518461ffff1610156200041657858461ffff16815181101515620001c957fe5b9060200190602002015192506000831115156200021d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200021490620008d1565b60405180910390fd5b868461ffff168151811015156200023057fe5b906020019060200201519150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515620002b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002a890620008f3565b60405180910390fd5b620002cb8262000423640100000000026401000000009004565b151515620002d857600080fd5b60016008600084604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600760408051908101604052808473ffffffffffffffffffffffffffffffffffffffff168152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050508380600101945050620001a8565b5050505050505062000a25565b60006008600083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004e857805160ff191683800117855562000519565b8280016001018555821562000519579182015b8281111562000518578251825591602001919060010190620004fb565b5b5090506200052891906200052c565b5090565b6200055191905b808211156200054d57600081600090555060010162000533565b5090565b90565b6000620005628251620009fb565b905092915050565b600082601f83011215156200057e57600080fd5b8151620005956200058f82620009a9565b6200097b565b91508181835260208401935060208101905083856020840282011115620005bb57600080fd5b60005b83811015620005ef5781620005d4888262000554565b845260208401935060208301925050600181019050620005be565b5050505092915050565b600082601f83011215156200060d57600080fd5b8151620006246200061e82620009d2565b6200097b565b915081818352602084019350602081019050838560208402820111156200064a57600080fd5b60005b838110156200067e578162000663888262000688565b8452602084019350602083019250506001810190506200064d565b5050505092915050565b600062000696825162000a1b565b905092915050565b600080600060608486031215620006b457600080fd5b600084015167ffffffffffffffff811115620006cf57600080fd5b620006dd868287016200056a565b935050602084015167ffffffffffffffff811115620006fb57600080fd5b6200070986828701620005f9565b92505060406200071c8682870162000688565b9150509250925092565b6000602282527f556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a6560208301527f726f0000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602582527f436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616460208301527f64726573730000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602982527f436f6d706f6e656e74206c656e677468206e6565647320746f2062652067726560208301527f6174207468616e203000000000000000000000000000000000000000000000006040830152606082019050919050565b6000601c82527f556e697473206d7573742062652067726561746572207468616e2030000000006020830152604082019050919050565b6000602b82527f436f6d706f6e656e7420616e6420756e6974206c656e67746873206d7573742060208301527f6265207468652073616d650000000000000000000000000000000000000000006040830152606082019050919050565b60006020820190508181036000830152620008ec8162000726565b9050919050565b600060208201905081810360008301526200090e8162000783565b9050919050565b600060208201905081810360008301526200093081620007e0565b9050919050565b6000602082019050818103600083015262000952816200083d565b9050919050565b60006020820190508181036000830152620009748162000874565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156200099f57600080fd5b8060405250919050565b600067ffffffffffffffff821115620009c157600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115620009ea57600080fd5b602082029050602081019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6131558062000a356000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461011757806306fdde0314610142578063095ea7b31461016d57806315698812146101aa57806318160ddd146101e757806323b872dd14610212578063313ce5671461024f57806338c7db751461027a57806342a7cfd5146102b757806366188463146102e257806370a082311461031f57806395d89b411461035c57806399d50d5d14610387578063a9059cbb146103b2578063b5d65f61146103ef578063c5d574fe1461042c578063cc872b661461046a578063d73dd623146104a7578063db006a75146104e4578063dd62ed3e14610521575b600080fd5b34801561012357600080fd5b5061012c61055e565b6040516101399190612e8f565b60405180910390f35b34801561014e57600080fd5b5061015761060a565b6040516101649190612f02565b60405180910390f35b34801561017957600080fd5b50610194600480360361018f9190810190612a94565b6106a8565b6040516101a19190612eb1565b60405180910390f35b3480156101b657600080fd5b506101d160048036036101cc9190810190612af9565b61079a565b6040516101de9190612eb1565b60405180910390f35b3480156101f357600080fd5b506101fc610a32565b6040516102099190612f84565b60405180910390f35b34801561021e57600080fd5b5061023960048036036102349190810190612a45565b610a3c565b6040516102469190612eb1565b60405180910390f35b34801561025b57600080fd5b50610264610acb565b6040516102719190612fc8565b60405180910390f35b34801561028657600080fd5b506102a1600480360361029c9190810190612a09565b610ade565b6040516102ae9190612f84565b60405180910390f35b3480156102c357600080fd5b506102cc610be9565b6040516102d99190612f84565b60405180910390f35b3480156102ee57600080fd5b5061030960048036036103049190810190612a94565b610bef565b6040516103169190612eb1565b60405180910390f35b34801561032b57600080fd5b50610346600480360361034191908101906129e0565b610e80565b6040516103539190612f84565b60405180910390f35b34801561036857600080fd5b50610371610ec8565b60405161037e9190612f02565b60405180910390f35b34801561039357600080fd5b5061039c610f66565b6040516103a99190612e6d565b60405180910390f35b3480156103be57600080fd5b506103d960048036036103d49190810190612a94565b611060565b6040516103e69190612eb1565b60405180910390f35b3480156103fb57600080fd5b5061041660048036036104119190810190612b74565b6110ed565b6040516104239190612eb1565b60405180910390f35b34801561043857600080fd5b50610453600480360361044e9190810190612b22565b611622565b604051610461929190612e44565b60405180910390f35b34801561047657600080fd5b50610491600480360361048c9190810190612b22565b611675565b60405161049e9190612eb1565b60405180910390f35b3480156104b357600080fd5b506104ce60048036036104c99190810190612a94565b6119d7565b6040516104db9190612eb1565b60405180910390f35b3480156104f057600080fd5b5061050b60048036036105069190810190612b22565b611bd3565b6040516105189190612eb1565b60405180910390f35b34801561052d57600080fd5b5061054860048036036105439190810190612a09565b611fb8565b6040516105559190612f84565b60405180910390f35b60608060006007805490506040519080825280602002602001820160405280156105975781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156106025760078161ffff168154811015156105c357fe5b906000526020600020906002020160010154828261ffff168151811015156105e757fe5b9060200190602002018181525050808060010191505061059f565b819250505090565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106a05780601f10610675576101008083540402835291602001916106a0565b820191906000526020600020905b81548152906001019060200180831161068357829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107889190612f84565b60405180910390a36001905092915050565b600080600080600060010285600019161115156107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e390612f44565b60405180910390fd5b600092505b6007805490508361ffff1610156109d85760006001028360020a61ffff1660010286166000191611156109cb5760078361ffff1681548110151561083157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600960008461ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960008561ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161096d929190612e44565b602060405180830381600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109bf9190810190612ad0565b15156109ca57600080fd5b5b82806001019350506107f1565b3373ffffffffffffffffffffffffffffffffffffffff167f49e084e0b5b0bd93a9af05d1992881e35dee865cfbddbee0f1adea644fcaae1386604051610a1e9190612ecc565b60405180910390a260019350505050919050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a7b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ab657600080fd5b610ac185858561203f565b9150509392505050565b600560009054906101000a900460ff1681565b6000806000610aec856123f9565b1515610af757600080fd5b600090505b600780549050811015610b8e578473ffffffffffffffffffffffffffffffffffffffff16600782815481101515610b2f57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b81578091505b8080600101915050610afc565b6009600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250505092915050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d00576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d94565b610d13838261247b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610e6d9190612f84565b60405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b505050505081565b6060806000600780549050604051908082528060200260200182016040528015610f9f5781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156110585760078161ffff16815481101515610fcb57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561100f57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610fa7565b819250505090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561109f57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156110da57600080fd5b6110e48484612494565b91505092915050565b60008060008060008660006006548281151561110557fe5b0614151561111257600080fd5b8760008111151561112257600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612f24565b60405180910390fd5b600060010289600019161115156111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612f64565b60405180910390fd5b6111fb8a6126b3565b600096505b6007805490508761ffff1610156115c15761123f60078861ffff1681548110151561122757fe5b9060005260206000209060020201600101548b6127ca565b955060006001028760020a61ffff166001028a166000191611156112c45785600960008961ffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506115b4565b60078761ffff168154811015156112d757fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161135d9190612ee7565b602060405180830381600087803b15801561137757600080fd5b505af115801561138b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113af9190810190612b4b565b945060078761ffff168154811015156113c457fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33886040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161144c929190612e44565b602060405180830381600087803b15801561146657600080fd5b505af115801561147a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061149e9190810190612ad0565b15156114a957600080fd5b60078761ffff168154811015156114bc57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016115429190612ee7565b602060405180830381600087803b15801561155c57600080fd5b505af1158015611570573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115949190810190612b4b565b9350836115aa878761247b90919063ffffffff16565b1415156115b357fe5b5b8680600101975050611200565b3373ffffffffffffffffffffffffffffffffffffffff167f3d769c4a894e0b550ed0fa6c7342fa3c9261c59842db6606168cf3f3288eccfa8b8b604051611609929190612f9f565b60405180910390a2600197505050505050505092915050565b60078181548110151561163157fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60008060008060008060008760006006548281151561169057fe5b0614151561169d57600080fd5b886000811115156116ad57600080fd5b600097505b6007805490508861ffff16101561196f5760078861ffff168154811015156116d657fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16965060078861ffff1681548110151561171d57fe5b90600052602060002090600202016001015495508673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016117869190612ee7565b602060405180830381600087803b1580156117a057600080fd5b505af11580156117b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117d89190810190612b4b565b94506117e4868b6127ca565b93508673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161183f93929190612e0d565b602060405180830381600087803b15801561185957600080fd5b505af115801561186d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118919190810190612ad0565b151561189c57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016118f19190612ee7565b602060405180830381600087803b15801561190b57600080fd5b505af115801561191f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119439190810190612b4b565b92508261195985876127fb90919063ffffffff16565b14151561196257fe5b87806001019850506116b2565b6119788a612817565b3373ffffffffffffffffffffffffffffffffffffffff167ffbd21f8762dc0c4fc0dbc03a2f816a0a617102a0f9d1908bbc09d377a0b9c6ab8b6040516119be9190612f84565b60405180910390a2600198505050505050505050919050565b6000611a6882600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051611bc19190612f84565b60405180910390a36001905092915050565b600080600080600080600087600060065482811515611bee57fe5b06141515611bfb57600080fd5b88806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690612f24565b60405180910390fd5b89600081111515611c8f57600080fd5b611c988b6126b3565b600098505b6007805490508961ffff161015611f585760078961ffff16815481101515611cc157fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16975060078961ffff16815481101515611d0857fe5b90600052602060002090600202016001015496508773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611d719190612ee7565b602060405180830381600087803b158015611d8b57600080fd5b505af1158015611d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dc39190810190612b4b565b9550611dcf878c6127ca565b94508773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611e28929190612e44565b602060405180830381600087803b158015611e4257600080fd5b505af1158015611e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e7a9190810190612ad0565b1515611e8557600080fd5b8773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611eda9190612ee7565b602060405180830381600087803b158015611ef457600080fd5b505af1158015611f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f2c9190810190612b4b565b935083611f42868861247b90919063ffffffff16565b141515611f4b57fe5b8880600101995050611c9d565b3373ffffffffffffffffffffffffffffffffffffffff167f2de3ebe1bb56079998f2617612ba527a2690a100757600dfc0d7253c808b74298c604051611f9e9190612f84565b60405180910390a260019950505050505050505050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561207c57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156120c957600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561215457600080fd5b6121a5826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612238826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123e69190612f84565b60405180910390a3600190509392505050565b60006008600083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b600082821115151561248957fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156124d157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561251e57600080fd5b61256f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612602826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126a19190612f84565b60405180910390a36001905092915050565b612704816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061275b8160015461247b90919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127bf9190612f84565b60405180910390a350565b60006127f3836127e56006548561292e90919063ffffffff16565b61294490919063ffffffff16565b905092915050565b6000818301905082811015151561280e57fe5b80905092915050565b612868816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fb90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128bf816001546127fb90919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129239190612f84565b60405180910390a350565b6000818381151561293b57fe5b04905092915050565b6000808314156129575760009050612976565b818302905081838281151561296857fe5b0414151561297257fe5b8090505b92915050565b60006129888235613085565b905092915050565b600061299c82516130a5565b905092915050565b60006129b082356130b1565b905092915050565b60006129c482356130bb565b905092915050565b60006129d882516130bb565b905092915050565b6000602082840312156129f257600080fd5b6000612a008482850161297c565b91505092915050565b60008060408385031215612a1c57600080fd5b6000612a2a8582860161297c565b9250506020612a3b8582860161297c565b9150509250929050565b600080600060608486031215612a5a57600080fd5b6000612a688682870161297c565b9350506020612a798682870161297c565b9250506040612a8a868287016129b8565b9150509250925092565b60008060408385031215612aa757600080fd5b6000612ab58582860161297c565b9250506020612ac6858286016129b8565b9150509250929050565b600060208284031215612ae257600080fd5b6000612af084828501612990565b91505092915050565b600060208284031215612b0b57600080fd5b6000612b19848285016129a4565b91505092915050565b600060208284031215612b3457600080fd5b6000612b42848285016129b8565b91505092915050565b600060208284031215612b5d57600080fd5b6000612b6b848285016129cc565b91505092915050565b60008060408385031215612b8757600080fd5b6000612b95858286016129b8565b9250506020612ba6858286016129a4565b9150509250929050565b612bb981613038565b82525050565b6000612bca82612ffd565b808452602084019350612bdc83612fe3565b60005b82811015612c0e57612bf2868351612bb0565b612bfb8261301e565b9150602086019550600181019050612bdf565b50849250505092915050565b6000612c2582613008565b808452602084019350612c3783612ff0565b60005b82811015612c6957612c4d868351612def565b612c568261302b565b9150602086019550600181019050612c3a565b50849250505092915050565b612c7e81613058565b82525050565b612c8d81613064565b82525050565b612c9c816130c5565b82525050565b6000612cad82613013565b808452612cc18160208601602086016130d7565b612cca8161310a565b602085010191505092915050565b6000602582527f5573657220646f6573206e6f7420686176652073756666696369656e7420626160208301527f6c616e63650000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602582527f436f6d706f6e656e747320746f2072656465656d206d757374206265206e6f6e60208301527f2d7a65726f0000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000602482527f4578636c7564656420636f6d706f6e656e7473206d757374206265206e6f6e2d60208301527f7a65726f000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b612df88161306e565b82525050565b612e0781613078565b82525050565b6000606082019050612e226000830186612bb0565b612e2f6020830185612c93565b612e3c6040830184612def565b949350505050565b6000604082019050612e596000830185612bb0565b612e666020830184612def565b9392505050565b60006020820190508181036000830152612e878184612bbf565b905092915050565b60006020820190508181036000830152612ea98184612c1a565b905092915050565b6000602082019050612ec66000830184612c75565b92915050565b6000602082019050612ee16000830184612c84565b92915050565b6000602082019050612efc6000830184612c93565b92915050565b60006020820190508181036000830152612f1c8184612ca2565b905092915050565b60006020820190508181036000830152612f3d81612cd8565b9050919050565b60006020820190508181036000830152612f5d81612d35565b9050919050565b60006020820190508181036000830152612f7d81612d92565b9050919050565b6000602082019050612f996000830184612def565b92915050565b6000604082019050612fb46000830185612def565b612fc16020830184612c84565b9392505050565b6000602082019050612fdd6000830184612dfe565b92915050565b6000602082019050919050565b6000602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b60006130d082613038565b9050919050565b60005b838110156130f55780820151818401526020810190506130da565b83811115613104576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820805f242316e68b7836682369632fcea18dc45fcb1c42c4f40e6f3028e71265e36c6578706572696d656e74616cf50037a165627a7a723058202526523097d50161b9238adb58a3fda616af7fd21d7af0e6dc6169b35ed011400029", - "sourceMap": "52:257:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;52:257:2;;;;;;;", - "deployedSourceMap": "52:257:2:-;;;;;;;;;;;;;;;;;;;;;;;;83:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;83:224:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;226:7;270;279:6;287:12;257:43;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;257:43:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;257:43:2;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;257:43:2;250:50;;83:224;;;;;:::o;52:257::-;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.23;\n\nimport \"./SetToken.sol\";\n\n\ncontract SetTokenFactory {\n function createSet(\n address[] _tokens,\n uint[] _units,\n uint _naturalUnit\n ) \n public\n returns\n (address) \n {\n return new SetToken(_tokens, _units, _naturalUnit);\n }\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetTokenFactory.sol", + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613ec0806100536000396000f300608060405260043610620000c7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063110a25c214620000cc57806342f1181e146200019c578063494503d414620001e2578063707129391462000252578063715018a614620002985780638da5cb5b14620002b257806391aad239146200030c5780639ad267441462000352578063b918161114620003a2578063d39de6e91462000400578063f2f4eb261462000471578063f2fde38b14620004cb575b600080fd5b348015620000d957600080fd5b506200015a6004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035906020019092919080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505062000511565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620001a957600080fd5b50620001e0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000617565b005b348015620001ef57600080fd5b50620002106004803603810190808035906020019092919050505062000905565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200025f57600080fd5b5062000296600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000944565b005b348015620002a557600080fd5b50620002b062000d12565b005b348015620002bf57600080fd5b50620002ca62000e15565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200031957600080fd5b5062000350600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000e3a565b005b3480156200035f57600080fd5b50620003a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062000eda565b005b348015620003af57600080fd5b50620003e6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200133e565b604051808215151515815260200191505060405180910390f35b3480156200040d57600080fd5b50620004186200135e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156200045d57808201518184015260208101905062000440565b505050509050019250505060405180910390f35b3480156200047e57600080fd5b5062000489620013ee565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620004d857600080fd5b506200050f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001414565b005b6000308a8a8a8a8a8a8a8a8a6200052762001579565b808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509e505050505050505050505050505050604051809103906000f08015801562000607573d6000803e3d6000fd5b5090509998505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200067357600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e0000000000000000000000000000000000000000000000000000815250901515620007ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200078e57808201518184015260208101905062000771565b50505050905090810190601f168015620007bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b6002818154811015156200091557fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620009a257600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e00000000000000000000000000000000000000000000000000000000000081525090151562000af8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000abc57808201518184015260208101905062000a9f565b50505050905090810190601f16801562000aea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b60028054905081101562000d0e578173ffffffffffffffffffffffffffffffffffffffff1660028281548110151562000b8257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141562000d0057600260016002805490500381548110151562000be257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660028281548110151562000c1d57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160028181805490500391508162000c7f91906200158a565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a262000d0e565b808060010191505062000b4d565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000d6e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000e9657600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000f3657600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e0000000000000000000000000000000000000000000000000081525090151562001047576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200100b57808201518184015260208101905062000fee565b50505050905090810190601f168015620010395780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff166002828154811015156200106f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e00000000000000000000000000000000000000815250901515620011ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200117e57808201518184015260208101905062001161565b50505050905090810190601f168015620011ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560026001600280549050038154811015156200122257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002828154811015156200125d57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081620012bf91906200158a565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b60606002805480602002602001604051908101604052809291908181526020018280548015620013e457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162001399575b5050505050905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200147057600080fd5b6200147b816200147e565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515620014bb57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040516128b380620015e283390190565b815481835581811115620015b457818360005260206000209182019101620015b39190620015b9565b5b505050565b620015de91905b80821115620015da576000816000905550600101620015c0565b5090565b90560060806040523480156200001157600080fd5b50604051620028b3380380620028b383398101806040528101908080519060200190929190805182019291906020018051820192919060200180519060200190929190805182019291906020018051820192919050505060008060008060008686601282600390805190602001906200008c929190620007f9565b508160049080519060200190620000a5929190620007f9565b5080600560006101000a81548160ff021916908360ff16021790555050505060129450600092505b88518361ffff161015620006b057888361ffff16815181101515620000ee57fe5b90602001906020020151915060008211606060405190810160405280602381526020017f556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a6581526020017f726f2e000000000000000000000000000000000000000000000000000000000081525090151562000207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620001cb578082015181840152602081019050620001ae565b50505050905090810190601f168015620001f95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50898361ffff168151811015156200021b57fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415606060405190810160405280602681526020017f436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616481526020017f64726573732e000000000000000000000000000000000000000000000000000081525090151562000361576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200032557808201518184015260208101905062000308565b50505050905090810190601f168015620003535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508073ffffffffffffffffffffffffffffffffffffffff1660405180807f646563696d616c73282900000000000000000000000000000000000000000000815250600a01905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016000604051808303816000875af19250505015620004d8578073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200047a57600080fd5b505af11580156200048f573d6000803e3d6000fd5b505050506040513d6020811015620004a657600080fd5b810190808051906020019092919050505093508460ff168460ff1610620004ce5784620004d0565b835b9450620004dd565b600094505b620004f78162000709640100000000026401000000009004565b1515156200050457600080fd5b60016008600083604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b6020831015156200059c578051825260208201915060208101905060208303925062000575565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600760408051908101604052808373ffffffffffffffffffffffffffffffffffffffff168152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050508280600101935050620000cd565b8a600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550876006819055505050505050505050505050620008a8565b60006008600083604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b602083101515620007a157805182526020820191506020810190506020830392506200077a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200083c57805160ff19168380011785556200086d565b828001600101855582156200086d579182015b828111156200086c5782518255916020019190600101906200084f565b5b5090506200087c919062000880565b5090565b620008a591905b80821115620008a157600081600090555060010162000887565b5090565b90565b611ffb80620008b86000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461010157806306fdde031461016d578063095ea7b3146101fd57806318160ddd1461026257806323b872dd1461028d578063313ce5671461031257806340c10f191461034357806342a7cfd51461039057806366188463146103bb57806370a082311461042057806395d89b411461047757806399d50d5d146105075780639dc29fac14610573578063a9059cbb146105c0578063c45a015514610625578063c5d574fe1461067c578063d73dd623146106f0578063dd62ed3e14610755575b600080fd5b34801561010d57600080fd5b506101166107cc565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561015957808201518184015260208101905061013e565b505050509050019250505060405180910390f35b34801561017957600080fd5b50610182610878565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020957600080fd5b50610248600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610916565b604051808215151515815260200191505060405180910390f35b34801561026e57600080fd5b50610277610a08565b6040518082815260200191505060405180910390f35b34801561029957600080fd5b506102f8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a12565b604051808215151515815260200191505060405180910390f35b34801561031e57600080fd5b50610327610aa1565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034f57600080fd5b5061038e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ab4565b005b34801561039c57600080fd5b506103a5610d5b565b6040518082815260200191505060405180910390f35b3480156103c757600080fd5b50610406600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d61565b604051808215151515815260200191505060405180910390f35b34801561042c57600080fd5b50610461600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff2565b6040518082815260200191505060405180910390f35b34801561048357600080fd5b5061048c61103a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104cc5780820151818401526020810190506104b1565b50505050905090810190601f1680156104f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051357600080fd5b5061051c6110d8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561055f578082015181840152602081019050610544565b505050509050019250505060405180910390f35b34801561057f57600080fd5b506105be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d2565b005b3480156105cc57600080fd5b5061060b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611638565b604051808215151515815260200191505060405180910390f35b34801561063157600080fd5b5061063a6116c5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068857600080fd5b506106a7600480360381019080803590602001909291905050506116eb565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b3480156106fc57600080fd5b5061073b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061173e565b604051808215151515815260200191505060405180910390f35b34801561076157600080fd5b506107b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061193a565b6040518082815260200191505060405180910390f35b60608060006007805490506040519080825280602002602001820160405280156108055781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156108705760078161ffff1681548110151561083157fe5b906000526020600020906002020160010154828261ffff1681518110151561085557fe5b9060200190602002018181525050808060010191505061080d565b819250505090565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561090e5780601f106108e35761010080835404028352916020019161090e565b820191906000526020600020905b8154815290600101906020018083116108f157829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a5157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a8c57600080fd5b610a978585856119c1565b9150509392505050565b600560009054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b3a57600080fd5b505af1158015610b4e573d6000803e3d6000fd5b505050506040513d6020811015610b6457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e000000000000000000000000000000815250901515610ca8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c6d578082015181840152602081019050610c52565b50505050905090810190601f168015610c9a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610cfa816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d5181600154611d7b90919063ffffffff16565b6001819055505050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610e72576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f06565b610e858382611d9790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110d05780601f106110a5576101008083540402835291602001916110d0565b820191906000526020600020905b8154815290600101906020018083116110b357829003601f168201915b505050505081565b60608060006007805490506040519080825280602002602001820160405280156111115781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156111ca5760078161ffff1681548110151561113d57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561118157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050611119565b819250505090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e0000000000000000000000000000008152509015156113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561138b578082015181840152602081019050611370565b50505050905090810190601f1680156113b85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e00000000000000000000000000000000000000000000000000000000008152509015156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561149657808201518184015260208101905061147b565b50505050905090810190601f1680156114c35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561151f57600080fd5b611570826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115c782600154611d9790919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561167757600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116b257600080fd5b6116bc8484611db0565b91505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007818154811015156116fa57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60006117cf82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156119fe57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611a4b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611ad657600080fd5b611b27826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bba826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c8b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008183019050828110151515611d8e57fe5b80905092915050565b6000828211151515611da557fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ded57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611e3a57600080fd5b611e8b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820df41b023d91b0489bc8d71be113287d3f5667870ed67e9fbf04ae6e2505c0b790029a165627a7a7230582060c6b3174b65279f38f3ea5ad8cd6119b5731ecba9ac259789b81fe7c0fb519c0029", + "deployedBytecode": "0x608060405260043610620000c7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063110a25c214620000cc57806342f1181e146200019c578063494503d414620001e2578063707129391462000252578063715018a614620002985780638da5cb5b14620002b257806391aad239146200030c5780639ad267441462000352578063b918161114620003a2578063d39de6e91462000400578063f2f4eb261462000471578063f2fde38b14620004cb575b600080fd5b348015620000d957600080fd5b506200015a6004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035906020019092919080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505062000511565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620001a957600080fd5b50620001e0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000617565b005b348015620001ef57600080fd5b50620002106004803603810190808035906020019092919050505062000905565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200025f57600080fd5b5062000296600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000944565b005b348015620002a557600080fd5b50620002b062000d12565b005b348015620002bf57600080fd5b50620002ca62000e15565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200031957600080fd5b5062000350600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062000e3a565b005b3480156200035f57600080fd5b50620003a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505062000eda565b005b348015620003af57600080fd5b50620003e6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506200133e565b604051808215151515815260200191505060405180910390f35b3480156200040d57600080fd5b50620004186200135e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156200045d57808201518184015260208101905062000440565b505050509050019250505060405180910390f35b3480156200047e57600080fd5b5062000489620013ee565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620004d857600080fd5b506200050f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062001414565b005b6000308a8a8a8a8a8a8a8a8a6200052762001579565b808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001888152602001806020018060200185810385528e8e82818152602001925060200280828437820191505085810384528c8c82818152602001925060200280828437820191505085810383528989828181526020019250808284378201915050858103825287878281815260200192508082843782019150509e505050505050505050505050505050604051809103906000f08015801562000607573d6000803e3d6000fd5b5090509998505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200067357600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e0000000000000000000000000000000000000000000000000000815250901515620007ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200078e57808201518184015260208101905062000771565b50505050905090810190601f168015620007bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b6002818154811015156200091557fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620009a257600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e00000000000000000000000000000000000000000000000000000000000081525090151562000af8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000abc57808201518184015260208101905062000a9f565b50505050905090810190601f16801562000aea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b60028054905081101562000d0e578173ffffffffffffffffffffffffffffffffffffffff1660028281548110151562000b8257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141562000d0057600260016002805490500381548110151562000be257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660028281548110151562000c1d57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160028181805490500391508162000c7f91906200158a565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a262000d0e565b808060010191505062000b4d565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000d6e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000e9657600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000f3657600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e0000000000000000000000000000000000000000000000000081525090151562001047576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200100b57808201518184015260208101905062000fee565b50505050905090810190601f168015620010395780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff166002828154811015156200106f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e00000000000000000000000000000000000000815250901515620011ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200117e57808201518184015260208101905062001161565b50505050905090810190601f168015620011ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560026001600280549050038154811015156200122257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002828154811015156200125d57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081620012bf91906200158a565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b60606002805480602002602001604051908101604052809291908181526020018280548015620013e457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162001399575b5050505050905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200147057600080fd5b6200147b816200147e565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515620014bb57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040516128b380620015e283390190565b815481835581811115620015b457818360005260206000209182019101620015b39190620015b9565b5b505050565b620015de91905b80821115620015da576000816000905550600101620015c0565b5090565b90560060806040523480156200001157600080fd5b50604051620028b3380380620028b383398101806040528101908080519060200190929190805182019291906020018051820192919060200180519060200190929190805182019291906020018051820192919050505060008060008060008686601282600390805190602001906200008c929190620007f9565b508160049080519060200190620000a5929190620007f9565b5080600560006101000a81548160ff021916908360ff16021790555050505060129450600092505b88518361ffff161015620006b057888361ffff16815181101515620000ee57fe5b90602001906020020151915060008211606060405190810160405280602381526020017f556e6974206465636c61726174696f6e73206d757374206265206e6f6e2d7a6581526020017f726f2e000000000000000000000000000000000000000000000000000000000081525090151562000207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620001cb578082015181840152602081019050620001ae565b50505050905090810190601f168015620001f95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50898361ffff168151811015156200021b57fe5b906020019060200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415606060405190810160405280602681526020017f436f6d706f6e656e7473206d7573742068617665206e6f6e2d7a65726f20616481526020017f64726573732e000000000000000000000000000000000000000000000000000081525090151562000361576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200032557808201518184015260208101905062000308565b50505050905090810190601f168015620003535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508073ffffffffffffffffffffffffffffffffffffffff1660405180807f646563696d616c73282900000000000000000000000000000000000000000000815250600a01905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016000604051808303816000875af19250505015620004d8578073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156200047a57600080fd5b505af11580156200048f573d6000803e3d6000fd5b505050506040513d6020811015620004a657600080fd5b810190808051906020019092919050505093508460ff168460ff1610620004ce5784620004d0565b835b9450620004dd565b600094505b620004f78162000709640100000000026401000000009004565b1515156200050457600080fd5b60016008600083604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b6020831015156200059c578051825260208201915060208101905060208303925062000575565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600760408051908101604052808373ffffffffffffffffffffffffffffffffffffffff168152602001848152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050508280600101935050620000cd565b8a600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550876006819055505050505050505050505050620008a8565b60006008600083604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b602083101515620007a157805182526020820191506020810190506020830392506200077a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200083c57805160ff19168380011785556200086d565b828001600101855582156200086d579182015b828111156200086c5782518255916020019190600101906200084f565b5b5090506200087c919062000880565b5090565b620008a591905b80821115620008a157600081600090555060010162000887565b5090565b90565b611ffb80620008b86000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027aa9f51461010157806306fdde031461016d578063095ea7b3146101fd57806318160ddd1461026257806323b872dd1461028d578063313ce5671461031257806340c10f191461034357806342a7cfd51461039057806366188463146103bb57806370a082311461042057806395d89b411461047757806399d50d5d146105075780639dc29fac14610573578063a9059cbb146105c0578063c45a015514610625578063c5d574fe1461067c578063d73dd623146106f0578063dd62ed3e14610755575b600080fd5b34801561010d57600080fd5b506101166107cc565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561015957808201518184015260208101905061013e565b505050509050019250505060405180910390f35b34801561017957600080fd5b50610182610878565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020957600080fd5b50610248600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610916565b604051808215151515815260200191505060405180910390f35b34801561026e57600080fd5b50610277610a08565b6040518082815260200191505060405180910390f35b34801561029957600080fd5b506102f8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a12565b604051808215151515815260200191505060405180910390f35b34801561031e57600080fd5b50610327610aa1565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034f57600080fd5b5061038e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ab4565b005b34801561039c57600080fd5b506103a5610d5b565b6040518082815260200191505060405180910390f35b3480156103c757600080fd5b50610406600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d61565b604051808215151515815260200191505060405180910390f35b34801561042c57600080fd5b50610461600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ff2565b6040518082815260200191505060405180910390f35b34801561048357600080fd5b5061048c61103a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104cc5780820151818401526020810190506104b1565b50505050905090810190601f1680156104f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051357600080fd5b5061051c6110d8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561055f578082015181840152602081019050610544565b505050509050019250505060405180910390f35b34801561057f57600080fd5b506105be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d2565b005b3480156105cc57600080fd5b5061060b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611638565b604051808215151515815260200191505060405180910390f35b34801561063157600080fd5b5061063a6116c5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561068857600080fd5b506106a7600480360381019080803590602001909291905050506116eb565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b3480156106fc57600080fd5b5061073b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061173e565b604051808215151515815260200191505060405180910390f35b34801561076157600080fd5b506107b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061193a565b6040518082815260200191505060405180910390f35b60608060006007805490506040519080825280602002602001820160405280156108055781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156108705760078161ffff1681548110151561083157fe5b906000526020600020906002020160010154828261ffff1681518110151561085557fe5b9060200190602002018181525050808060010191505061080d565b819250505090565b60038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561090e5780601f106108e35761010080835404028352916020019161090e565b820191906000526020600020905b8154815290600101906020018083116108f157829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a5157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a8c57600080fd5b610a978585856119c1565b9150509392505050565b600560009054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b3a57600080fd5b505af1158015610b4e573d6000803e3d6000fd5b505050506040513d6020811015610b6457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e000000000000000000000000000000815250901515610ca8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c6d578082015181840152602081019050610c52565b50505050905090810190601f168015610c9a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610cfa816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d5181600154611d7b90919063ffffffff16565b6001819055505050565b60065481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610e72576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f06565b610e858382611d9790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110d05780601f106110a5576101008083540402835291602001916110d0565b820191906000526020600020905b8154815290600101906020018083116110b357829003601f168201915b505050505081565b60608060006007805490506040519080825280602002602001820160405280156111115781602001602082028038833980820191505090505b509150600090505b6007805490508161ffff1610156111ca5760078161ffff1681548110151561113d57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828261ffff1681518110151561118157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050611119565b819250505090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2f4eb266040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b505050506040513d602081101561128257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280603181526020017f53656e646572206973206e6f74207065726d697474656420746f20706572666f81526020017f726d20746869732066756e6374696f6e2e0000000000000000000000000000008152509015156113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561138b578082015181840152602081019050611370565b50505050905090810190601f1680156113b85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508060008111606060405190810160405280602381526020017f5175616e74697479206d7573742062652067726561746572207468616e207a6581526020017f726f2e00000000000000000000000000000000000000000000000000000000008152509015156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561149657808201518184015260208101905061147b565b50505050905090810190601f1680156114c35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561151f57600080fd5b611570826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115c782600154611d9790919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561167757600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116b257600080fd5b6116bc8484611db0565b91505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007818154811015156116fa57fe5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b60006117cf82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156119fe57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611a4b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611ad657600080fd5b611b27826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bba826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c8b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008183019050828110151515611d8e57fe5b80905092915050565b6000828211151515611da557fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ded57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611e3a57600080fd5b611e8b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d9790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820df41b023d91b0489bc8d71be113287d3f5667870ed67e9fbf04ae6e2505c0b790029a165627a7a7230582060c6b3174b65279f38f3ea5ad8cd6119b5731ecba9ac259789b81fe7c0fb519c0029", + "sourceMap": "961:1592:1:-;;;575:10:5;567:5;;:18;;;;;;;;;;;;;;;;;;961:1592:1;;;;;;", + "deployedSourceMap": "961:1592:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2228:323;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2228:323:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2599:558:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2599:558:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;1721:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1721:28:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3324:980;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3324:980:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:5;;;;;;238:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:5;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:199:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1392:199:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;4571:939:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4571:939:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1634:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1634:43:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5620:186:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5620:186:3;;;;;;;;;;;;;;;;;1099:19:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1099:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;2228:323:1;2445:7;2488:4;2494:11;;2507:6;;2515:12;2529:5;;2536:7;;2475:69;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2475:69:1;2468:76;;2228:323;;;;;;;;;;;:::o;2599:558:3:-;719:5:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2779:10:3;:23;2790:11;2779:23;;;;;;;;;;;;;;;;;;;;;;;;;2778:24;2816:25;;;;;;;;;;;;;;;;;;;;;;;2757:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2757:94:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2929:4;2903:10;:23;2914:11;2903:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;2988:11;3005;2988:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2988:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3105:11;3074:76;;;3130:10;3074:76;;;;;;;;;;;;;;;;;;;;;;2599:558;:::o;1721:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3324:980::-;3664:6;719:5:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;3489:10:3;:23;3500:11;3489:23;;;;;;;;;;;;;;;;;;;;;;;;;3526:21;;;;;;;;;;;;;;;;;;;;;;;3468:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3468:89:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3625:10;:23;3636:11;3625:23;;;;;;;;;;;;;;;;3618:30;;;;;;;;;;;3673:1;3664:10;;3659:639;3680:11;:18;;;;3676:1;:22;3659:639;;;3812:11;3794:29;;:11;3806:1;3794:14;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;3790:498;;;3938:11;3971:1;3950:11;:18;;;;:22;3938:35;;;;;;;;;;;;;;;;;;;;;;;;;;;3921:11;3933:1;3921:14;;;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;4062:1;4040:11;:23;;;;;;;;;;;;;;:::i;:::-;;4189:11;4143:107;;;4222:10;4143:107;;;;;;;;;;;;;;;;;;;;;;4268:5;;3790:498;3700:3;;;;;;;3659:639;;;3324:980;;:::o;827:111:5:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;238:20::-;;;;;;;;;;;;;:::o;1392:199:1:-;719:5:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1572:12:1;1565:4;;:19;;;;;;;;;;;;;;;;;;1392:199;:::o;4571:939:3:-;719:5:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;4809:11:3;:18;;;;4800:6;:27;4841:19;;;;;;;;;;;;;;;;;;;;;;;4779:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4779:91:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4999:11;4976:34;;:11;4988:6;4976:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;5024:22;;;;;;;;;;;;;;;;;;;;;;;4955:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4955:101:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5124:10;:23;5135:11;5124:23;;;;;;;;;;;;;;;;5117:30;;;;;;;;;;;5245:11;5278:1;5257:11;:18;;;;:22;5245:35;;;;;;;;;;;;;;;;;;;;;;;;;;;5223:11;5235:6;5223:19;;;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;5355:1;5333:11;:23;;;;;;;;;;;;;;:::i;:::-;;5458:11;5420:83;;;5483:10;5420:83;;;;;;;;;;;;;;;;;;;;;;4571:939;;:::o;1634:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;5620:186::-;5701:9;5788:11;5781:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186;:::o;1099:19:1:-;;;;;;;;;;;;;:::o;1100:103:5:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1338:171::-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o;961:1592:1:-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\nimport { SetToken } from \"./SetToken.sol\";\nimport { Authorizable } from \"../lib/Authorizable.sol\";\n\n\n/**\n * @title SetTokenFactory\n * @author Set Protocol\n *\n * SetTokenFactory is a smart contract used to deploy new SetToken contracts.\n * SetTokens deployed by the factory can only have their mint and burn functions\n * called by Core\n */\ncontract SetTokenFactory\n is Authorizable\n{\n /* ============ State Variables ============ */\n\n // Address of the Core contract\n address public core;\n\n /* ============ No Constructor ============ */\n\n /* ============ Setter Functions ============ */\n\n /**\n * Set core. Can only be set by owner of SetTokenFactory's owner.\n *\n * @param _coreAddress The address of deployed core contract\n */\n function setCoreAddress(\n address _coreAddress\n )\n external\n onlyOwner\n {\n // Commit passed address to vaultAddress state variable\n core = _coreAddress;\n }\n\n /* ============ Public Functions ============ */\n\n /**\n * Deploys a new SetToken contract.\n * Can only be called by authorized core contracts.\n *\n * @param _components address[] The address of component tokens\n * @param _units uint[] The units of each component token\n * @param _naturalUnit uint The minimum unit to be issued or redeemed\n * @param _name string The name of the new Set\n * @param _symbol string The symbol of the new Set\n * @return setToken address The address of the newly created SetToken\n */\n function create(\n address[] _components,\n uint[] _units,\n uint _naturalUnit,\n string _name,\n string _symbol\n )\n external\n // onlyAuthorized\n returns\n (address)\n {\n return new SetToken(this, _components, _units, _naturalUnit, _name, _symbol);\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetTokenFactory.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetTokenFactory.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetTokenFactory.sol", "exportedSymbols": { "SetTokenFactory": [ - 1005 + 549 ] }, - "id": 1006, + "id": 550, "nodeType": "SourceUnit", "nodes": [ { - "id": 982, + "id": 500, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:2" + "src": "597:23:1" }, { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetToken.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetToken.sol", "file": "./SetToken.sol", - "id": 983, + "id": 502, + "nodeType": "ImportDirective", + "scope": 550, + "sourceUnit": 499, + "src": "622:42:1", + "symbolAliases": [ + { + "foreign": 501, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "file": "../lib/Authorizable.sol", + "id": 504, "nodeType": "ImportDirective", - "scope": 1006, - "sourceUnit": 981, - "src": "25:24:2", - "symbolAliases": [], + "scope": 550, + "sourceUnit": 790, + "src": "665:55:1", + "symbolAliases": [ + { + "foreign": 503, + "local": null + } + ], "unitAlias": "" }, { - "baseContracts": [], + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 505, + "name": "Authorizable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 789, + "src": "991:12:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Authorizable_$789", + "typeString": "contract Authorizable" + } + }, + "id": 506, + "nodeType": "InheritanceSpecifier", + "src": "991:12:1" + } + ], "contractDependencies": [ - 980 + 498, + 789, + 969 ], "contractKind": "contract", - "documentation": null, + "documentation": "@title SetTokenFactory\n@author Set Protocol\n * SetTokenFactory is a smart contract used to deploy new SetToken contracts.\nSetTokens deployed by the factory can only have their mint and burn functions\ncalled by Core", "fullyImplemented": true, - "id": 1005, + "id": 549, "linearizedBaseContracts": [ - 1005 + 549, + 789, + 969 ], "name": "SetTokenFactory", "nodeType": "ContractDefinition", "nodes": [ + { + "constant": false, + "id": 508, + "name": "core", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "1099:19:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 519, + "nodeType": "Block", + "src": "1491:100:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 515, + "name": "core", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 508, + "src": "1565:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 516, + "name": "_coreAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 510, + "src": "1572:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1565:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 518, + "nodeType": "ExpressionStatement", + "src": "1565:19:1" + } + ] + }, + "documentation": "Set core. Can only be set by owner of SetTokenFactory's owner.\n * @param _coreAddress The address of deployed core contract", + "id": 520, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 513, + "modifierName": { + "argumentTypes": null, + "id": 512, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "1477:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1477:9:1" + } + ], + "name": "setCoreAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 510, + "name": "_coreAddress", + "nodeType": "VariableDeclaration", + "scope": 520, + "src": "1425:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 509, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1415:36:1" + }, + "payable": false, + "returnParameters": { + "id": 514, + "nodeType": "ParameterList", + "parameters": [], + "src": "1491:0:1" + }, + "scope": 549, + "src": "1392:199:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, { "body": { - "id": 1003, + "id": 547, "nodeType": "Block", - "src": "240:67:2", + "src": "2458:93:1", "statements": [ { "expression": { @@ -94,84 +526,135 @@ export const SetTokenFactory = "arguments": [ { "argumentTypes": null, - "id": 998, - "name": "_tokens", + "id": 539, + "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, - "src": "270:7:2", + "referencedDeclaration": 1469, + "src": "2488:4:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_contract$_SetTokenFactory_$549", + "typeString": "contract SetTokenFactory" } }, { "argumentTypes": null, - "id": 999, + "id": 540, + "name": "_components", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 523, + "src": "2494:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + { + "argumentTypes": null, + "id": 541, "name": "_units", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "279:6:2", + "referencedDeclaration": 526, + "src": "2507:6:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" } }, { "argumentTypes": null, - "id": 1000, + "id": 542, "name": "_naturalUnit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "287:12:2", + "referencedDeclaration": 528, + "src": "2515:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "id": 543, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 530, + "src": "2529:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 544, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "2536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_contract$_SetTokenFactory_$549", + "typeString": "contract SetTokenFactory" }, { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" } ], - "id": 997, + "id": 538, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "257:12:2", + "src": "2475:12:1", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_contract$_SetToken_$980_$", - "typeString": "function (address[] memory,uint256[] memory,uint256) returns (contract SetToken)" + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_SetToken_$498_$", + "typeString": "function (address,address[] memory,uint256[] memory,uint256,string memory,string memory) returns (contract SetToken)" }, "typeName": { "contractScope": null, - "id": 996, + "id": 537, "name": "SetToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 980, - "src": "261:8:2", + "referencedDeclaration": 498, + "src": "2479:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", + "typeIdentifier": "t_contract$_SetToken_$498", "typeString": "contract SetToken" } } }, - "id": 1001, + "id": 545, "isConstant": false, "isLValue": false, "isPure": false, @@ -179,59 +662,59 @@ export const SetTokenFactory = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "257:43:2", + "src": "2475:69:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", + "typeIdentifier": "t_contract$_SetToken_$498", "typeString": "contract SetToken" } }, - "functionReturnParameters": 995, - "id": 1002, + "functionReturnParameters": 536, + "id": 546, "nodeType": "Return", - "src": "250:50:2" + "src": "2468:76:1" } ] }, - "documentation": null, - "id": 1004, + "documentation": "Deploys a new SetToken contract.\nCan only be called by authorized core contracts.\n * @param _components address[] The address of component tokens\n@param _units uint[] The units of each component token\n@param _naturalUnit uint The minimum unit to be issued or redeemed\n@param _name string The name of the new Set\n@param _symbol string The symbol of the new Set\n@return setToken address The address of the newly created SetToken", + "id": 548, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "createSet", + "name": "create", "nodeType": "FunctionDefinition", "parameters": { - "id": 992, + "id": 533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 986, - "name": "_tokens", + "id": 523, + "name": "_components", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "111:17:2", + "scope": 548, + "src": "2253:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 984, + "id": 521, "name": "address", "nodeType": "ElementaryTypeName", - "src": "111:7:2", + "src": "2253:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 985, + "id": 522, "length": null, "nodeType": "ArrayTypeName", - "src": "111:9:2", + "src": "2253:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -242,32 +725,32 @@ export const SetTokenFactory = }, { "constant": false, - "id": 989, + "id": 526, "name": "_units", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "138:13:2", + "scope": 548, + "src": "2284:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { - "id": 987, + "id": 524, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "138:4:2", + "src": "2284:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 988, + "id": 525, "length": null, "nodeType": "ArrayTypeName", - "src": "138:6:2", + "src": "2284:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -278,11 +761,11 @@ export const SetTokenFactory = }, { "constant": false, - "id": 991, + "id": 528, "name": "_naturalUnit", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "161:17:2", + "scope": 548, + "src": "2307:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -290,10 +773,10 @@ export const SetTokenFactory = "typeString": "uint256" }, "typeName": { - "id": 990, + "id": 527, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "161:4:2", + "src": "2307:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -301,22 +784,74 @@ export const SetTokenFactory = }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 530, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 548, + "src": "2334:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 529, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2334:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 532, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 548, + "src": "2356:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 531, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2356:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "101:83:2" + "src": "2243:133:1" }, "payable": false, "returnParameters": { - "id": 995, + "id": 536, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 994, + "id": 535, "name": "", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "226:7:2", + "scope": 548, + "src": "2445:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -324,10 +859,10 @@ export const SetTokenFactory = "typeString": "address" }, "typeName": { - "id": 993, + "id": 534, "name": "address", "nodeType": "ElementaryTypeName", - "src": "226:7:2", + "src": "2445:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -337,72 +872,270 @@ export const SetTokenFactory = "visibility": "internal" } ], - "src": "225:9:2" + "src": "2444:9:1" }, - "scope": 1005, - "src": "83:224:2", + "scope": 549, + "src": "2228:323:1", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" } ], - "scope": 1006, - "src": "52:257:2" + "scope": 550, + "src": "961:1592:1" } ], - "src": "0:310:2" + "src": "597:1957:1" }, "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetTokenFactory.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetTokenFactory.sol", "exportedSymbols": { "SetTokenFactory": [ - 1005 + 549 ] }, - "id": 1006, + "id": 550, "nodeType": "SourceUnit", "nodes": [ { - "id": 982, + "id": 500, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:2" + "src": "597:23:1" }, { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetToken.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/SetToken.sol", "file": "./SetToken.sol", - "id": 983, + "id": 502, + "nodeType": "ImportDirective", + "scope": 550, + "sourceUnit": 499, + "src": "622:42:1", + "symbolAliases": [ + { + "foreign": 501, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "file": "../lib/Authorizable.sol", + "id": 504, "nodeType": "ImportDirective", - "scope": 1006, - "sourceUnit": 981, - "src": "25:24:2", - "symbolAliases": [], + "scope": 550, + "sourceUnit": 790, + "src": "665:55:1", + "symbolAliases": [ + { + "foreign": 503, + "local": null + } + ], "unitAlias": "" }, { - "baseContracts": [], + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 505, + "name": "Authorizable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 789, + "src": "991:12:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Authorizable_$789", + "typeString": "contract Authorizable" + } + }, + "id": 506, + "nodeType": "InheritanceSpecifier", + "src": "991:12:1" + } + ], "contractDependencies": [ - 980 + 498, + 789, + 969 ], "contractKind": "contract", - "documentation": null, + "documentation": "@title SetTokenFactory\n@author Set Protocol\n * SetTokenFactory is a smart contract used to deploy new SetToken contracts.\nSetTokens deployed by the factory can only have their mint and burn functions\ncalled by Core", "fullyImplemented": true, - "id": 1005, + "id": 549, "linearizedBaseContracts": [ - 1005 + 549, + 789, + 969 ], "name": "SetTokenFactory", "nodeType": "ContractDefinition", "nodes": [ + { + "constant": false, + "id": 508, + "name": "core", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "1099:19:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, { "body": { - "id": 1003, + "id": 519, "nodeType": "Block", - "src": "240:67:2", + "src": "1491:100:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 515, + "name": "core", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 508, + "src": "1565:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 516, + "name": "_coreAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 510, + "src": "1572:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1565:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 518, + "nodeType": "ExpressionStatement", + "src": "1565:19:1" + } + ] + }, + "documentation": "Set core. Can only be set by owner of SetTokenFactory's owner.\n * @param _coreAddress The address of deployed core contract", + "id": 520, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 513, + "modifierName": { + "argumentTypes": null, + "id": 512, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 917, + "src": "1477:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1477:9:1" + } + ], + "name": "setCoreAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 510, + "name": "_coreAddress", + "nodeType": "VariableDeclaration", + "scope": 520, + "src": "1425:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 509, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1415:36:1" + }, + "payable": false, + "returnParameters": { + "id": 514, + "nodeType": "ParameterList", + "parameters": [], + "src": "1491:0:1" + }, + "scope": 549, + "src": "1392:199:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 547, + "nodeType": "Block", + "src": "2458:93:1", "statements": [ { "expression": { @@ -410,84 +1143,135 @@ export const SetTokenFactory = "arguments": [ { "argumentTypes": null, - "id": 998, - "name": "_tokens", + "id": 539, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1469, + "src": "2488:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SetTokenFactory_$549", + "typeString": "contract SetTokenFactory" + } + }, + { + "argumentTypes": null, + "id": 540, + "name": "_components", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, - "src": "270:7:2", + "referencedDeclaration": 523, + "src": "2494:11:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" } }, { "argumentTypes": null, - "id": 999, + "id": 541, "name": "_units", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "279:6:2", + "referencedDeclaration": 526, + "src": "2507:6:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" } }, { "argumentTypes": null, - "id": 1000, + "id": 542, "name": "_naturalUnit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "287:12:2", + "referencedDeclaration": 528, + "src": "2515:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "id": 543, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 530, + "src": "2529:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "argumentTypes": null, + "id": 544, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "2536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" + "typeIdentifier": "t_contract$_SetTokenFactory_$549", + "typeString": "contract SetTokenFactory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" }, { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" } ], - "id": 997, + "id": 538, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "257:12:2", + "src": "2475:12:1", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_contract$_SetToken_$980_$", - "typeString": "function (address[] memory,uint256[] memory,uint256) returns (contract SetToken)" + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_SetToken_$498_$", + "typeString": "function (address,address[] memory,uint256[] memory,uint256,string memory,string memory) returns (contract SetToken)" }, "typeName": { "contractScope": null, - "id": 996, + "id": 537, "name": "SetToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 980, - "src": "261:8:2", + "referencedDeclaration": 498, + "src": "2479:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", + "typeIdentifier": "t_contract$_SetToken_$498", "typeString": "contract SetToken" } } }, - "id": 1001, + "id": 545, "isConstant": false, "isLValue": false, "isPure": false, @@ -495,59 +1279,59 @@ export const SetTokenFactory = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "257:43:2", + "src": "2475:69:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SetToken_$980", + "typeIdentifier": "t_contract$_SetToken_$498", "typeString": "contract SetToken" } }, - "functionReturnParameters": 995, - "id": 1002, + "functionReturnParameters": 536, + "id": 546, "nodeType": "Return", - "src": "250:50:2" + "src": "2468:76:1" } ] }, - "documentation": null, - "id": 1004, + "documentation": "Deploys a new SetToken contract.\nCan only be called by authorized core contracts.\n * @param _components address[] The address of component tokens\n@param _units uint[] The units of each component token\n@param _naturalUnit uint The minimum unit to be issued or redeemed\n@param _name string The name of the new Set\n@param _symbol string The symbol of the new Set\n@return setToken address The address of the newly created SetToken", + "id": 548, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "createSet", + "name": "create", "nodeType": "FunctionDefinition", "parameters": { - "id": 992, + "id": 533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 986, - "name": "_tokens", + "id": 523, + "name": "_components", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "111:17:2", + "scope": 548, + "src": "2253:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", "typeString": "address[]" }, "typeName": { "baseType": { - "id": 984, + "id": 521, "name": "address", "nodeType": "ElementaryTypeName", - "src": "111:7:2", + "src": "2253:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 985, + "id": 522, "length": null, "nodeType": "ArrayTypeName", - "src": "111:9:2", + "src": "2253:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -558,32 +1342,32 @@ export const SetTokenFactory = }, { "constant": false, - "id": 989, + "id": 526, "name": "_units", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "138:13:2", + "scope": 548, + "src": "2284:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { - "id": 987, + "id": 524, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "138:4:2", + "src": "2284:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 988, + "id": 525, "length": null, "nodeType": "ArrayTypeName", - "src": "138:6:2", + "src": "2284:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -594,11 +1378,11 @@ export const SetTokenFactory = }, { "constant": false, - "id": 991, + "id": 528, "name": "_naturalUnit", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "161:17:2", + "scope": 548, + "src": "2307:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -606,10 +1390,10 @@ export const SetTokenFactory = "typeString": "uint256" }, "typeName": { - "id": 990, + "id": 527, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "161:4:2", + "src": "2307:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -617,22 +1401,74 @@ export const SetTokenFactory = }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 530, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 548, + "src": "2334:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 529, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2334:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 532, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 548, + "src": "2356:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 531, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2356:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "101:83:2" + "src": "2243:133:1" }, "payable": false, "returnParameters": { - "id": 995, + "id": 536, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 994, + "id": 535, "name": "", "nodeType": "VariableDeclaration", - "scope": 1004, - "src": "226:7:2", + "scope": 548, + "src": "2445:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -640,10 +1476,10 @@ export const SetTokenFactory = "typeString": "address" }, "typeName": { - "id": 993, + "id": 534, "name": "address", "nodeType": "ElementaryTypeName", - "src": "226:7:2", + "src": "2445:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -653,26 +1489,26 @@ export const SetTokenFactory = "visibility": "internal" } ], - "src": "225:9:2" + "src": "2444:9:1" }, - "scope": 1005, - "src": "83:224:2", + "scope": 549, + "src": "2228:323:1", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" } ], - "scope": 1006, - "src": "52:257:2" + "scope": 550, + "src": "961:1592:1" } ], - "src": "0:310:2" + "src": "597:1957:1" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.577Z" + "updatedAt": "2018-07-07T15:28:53.739Z" } \ No newline at end of file diff --git a/artifacts/ts/SetTokenRegistry.ts b/artifacts/ts/SetTokenRegistry.ts deleted file mode 100644 index c981168d3..000000000 --- a/artifacts/ts/SetTokenRegistry.ts +++ /dev/null @@ -1,15455 +0,0 @@ -export const SetTokenRegistry = -{ - "contractName": "SetTokenRegistry", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "setAddressByHashedSymbol", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "setAddressByHashedName", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "setAddresses", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "sets", - "outputs": [ - { - "name": "setAddress", - "type": "address" - }, - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_setFactory", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "name": "setAddress", - "type": "address" - }, - { - "indexed": false, - "name": "name", - "type": "string" - }, - { - "indexed": false, - "name": "symbol", - "type": "string" - } - ], - "name": "SetTokenCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "name": "setAddress", - "type": "address" - }, - { - "indexed": false, - "name": "name", - "type": "string" - }, - { - "indexed": false, - "name": "symbol", - "type": "string" - } - ], - "name": "SetTokenAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "name": "setAddress", - "type": "address" - }, - { - "indexed": false, - "name": "name", - "type": "string" - }, - { - "indexed": false, - "name": "symbol", - "type": "string" - } - ], - "name": "SetTokenRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "name": "setAddress", - "type": "address" - }, - { - "indexed": false, - "name": "oldName", - "type": "string" - }, - { - "indexed": false, - "name": "newName", - "type": "string" - } - ], - "name": "SetTokenNameUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "name": "setAddress", - "type": "address" - }, - { - "indexed": false, - "name": "oldSymbol", - "type": "string" - }, - { - "indexed": false, - "name": "newSymbol", - "type": "string" - } - ], - "name": "SetTokenSymbolUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "previousOwner", - "type": "address" - } - ], - "name": "OwnershipRenounced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "_tokens", - "type": "address[]" - }, - { - "name": "_units", - "type": "uint256[]" - }, - { - "name": "_naturalUnit", - "type": "uint256" - }, - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - } - ], - "name": "create", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_set", - "type": "address" - }, - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - } - ], - "name": "add", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_set", - "type": "address" - }, - { - "name": "_setAddressIndex", - "type": "uint256" - } - ], - "name": "remove", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_set", - "type": "address" - }, - { - "name": "_name", - "type": "string" - } - ], - "name": "modifySetName", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_set", - "type": "address" - }, - { - "name": "_symbol", - "type": "string" - } - ], - "name": "modifySetSymbol", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getSetAddresses", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_setSymbol", - "type": "string" - } - ], - "name": "getSetAddressBySymbol", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getSetCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_name", - "type": "string" - } - ], - "name": "getSetAddressByName", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_set", - "type": "address" - } - ], - "name": "getSetMetadata", - "outputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "string" - }, - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50604051602080612f1c83398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612e58806100c46000396000f3006080604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301304a4f146100f6578063110a25c214610251578063443ba0c7146103d057806346bc7fd91461047157806350b4265c1461055857806359ec2afc146105c95780635bbc1eed1461063a5780636e7f096e146106db5780636ef49f6414610748578063715018a6146108a357806377b96551146108ba5780638da5cb5b146109635780639eff34b4146109ba578063abe7f1ab14610a26578063d9cbfd5914610a8b578063f2fde38b14610b34578063f58d216314610b77575b600080fd5b34801561010257600080fd5b50610137600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ba2565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156101ad578082015181840152602081019050610192565b50505050905090810190601f1680156101da5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156102135780820151818401526020810190506101f8565b50505050905090810190601f1680156102405780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561025d57600080fd5b5061038e600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610db9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103dc57600080fd5b50610457600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611385565b604051808215151515815260200191505060405180910390f35b34801561047d57600080fd5b5061053e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611671565b604051808215151515815260200191505060405180910390f35b34801561056457600080fd5b506105876004803603810190808035600019169060200190929190505050611bd3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d557600080fd5b506105f86004803603810190808035600019169060200190929190505050611c06565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064657600080fd5b506106c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611c39565b604051808215151515815260200191505060405180910390f35b3480156106e757600080fd5b5061070660048036038101908080359060200190929190505050611f25565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561075457600080fd5b50610789600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f63565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156107ff5780820151818401526020810190506107e4565b50505050905090810190601f16801561082c5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561086557808201518184015260208101905061084a565b50505050905090810190601f1680156108925780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156108af57600080fd5b506108b86120dd565b005b3480156108c657600080fd5b50610921600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506121df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561096f57600080fd5b50610978612286565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109c657600080fd5b506109cf6122ab565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610a125780820151818401526020810190506109f7565b505050509050019250505060405180910390f35b348015610a3257600080fd5b50610a71600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612339565b604051808215151515815260200191505060405180910390f35b348015610a9757600080fd5b50610af2600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612800565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b4057600080fd5b50610b75600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128a7565b005b348015610b8357600080fd5b50610b8c61290e565b6040518082815260200191505060405180910390f35b6000606080610baf612c5b565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ce95780601f10610cbe57610100808354040283529160200191610ce9565b820191906000526020600020905b815481529060010190602001808311610ccc57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d8b5780601f10610d6057610100808354040283529160200191610d8b565b820191906000526020600020905b815481529060010190602001808311610d6e57829003601f168201915b5050505050815250509050806000015181602001518260400151819150809050935093509350509193909250565b60008083600073ffffffffffffffffffffffffffffffffffffffff1660056000836040518082805190602001908083835b602083101515610e0f5780518252602082019150602081019050602083039250610dea565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e9557600080fd5b83600073ffffffffffffffffffffffffffffffffffffffff1660046000836040518082805190602001908083835b602083101515610ee85780518252602082019150602081019050602083039250610ec3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610f6e57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663821f91f48a8a8a6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b8381101561102757808201518184015260208101905061100c565b50505050905001838103825285818151815260200191508051906020019060200280838360005b8381101561106957808201518184015260208101905061104e565b5050505090500195505050505050602060405180830381600087803b15801561109157600080fd5b505af11580156110a5573d6000803e3d6000fd5b505050506040513d60208110156110bb57600080fd5b8101908080519060200190929190505050925060028390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506060604051908101604052808473ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186815250600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190611208929190612c93565b506040820151816002019080519060200190611225929190612c93565b50905050611233868461291b565b5061123e85846129e3565b508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb7b1e89d4bb640b93b0cb96b27077ceb558d073e00531c0a712a4afc9ccf06fe8888604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156112d45780820151818401526020810190506112b9565b50505050905090810190601f1680156113015780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561133a57808201518184015260208101905061131f565b50505050905090810190601f1680156113675780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a382935050505095945050505050565b600060606000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113e457600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ba5780601f1061148f576101008083540402835291602001916114ba565b820191906000526020600020905b81548152906001019060200180831161149d57829003601f168201915b505050505090506114cc81600061291b565b5082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001019080519060200190611523929190612d13565b5061152e838561291b565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc532b1eb099007b62a28e1fca5a7dbf04552c7bdfa79b79d20b1b9087747e8108386604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156115c45780820151818401526020810190506115a9565b50505050905090810190601f1680156115f15780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561162a57808201518184015260208101905061160f565b50505050905090810190601f1680156116575780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3600191505092915050565b600082600073ffffffffffffffffffffffffffffffffffffffff1660056000836040518082805190602001908083835b6020831015156116c657805182526020820191506020810190506020830392506116a1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561174c57600080fd5b82600073ffffffffffffffffffffffffffffffffffffffff1660046000836040518082805190602001908083835b60208310151561179f578051825260208201915060208101905060208303925061177a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561182557600080fd5b85600073ffffffffffffffffffffffffffffffffffffffff16600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118c357600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561191e57600080fd5b60028790806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506060604051908101604052808873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186815250600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190611a58929190612c93565b506040820151816002019080519060200190611a75929190612c93565b50905050611a83868861291b565b50611a8e85886129e3565b508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167e7daa8b19a37c4050f45e8745396381f3feb1207079ea81fbaecc4de19d359a8888604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611b23578082015181840152602081019050611b08565b50505050905090810190601f168015611b505780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611b89578082015181840152602081019050611b6e565b50505050905090810190601f168015611bb65780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3600193505050509392505050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060606000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c9857600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d6e5780601f10611d4357610100808354040283529160200191611d6e565b820191906000526020600020905b815481529060010190602001808311611d5157829003601f168201915b50505050509050611d808160006129e3565b5082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002019080519060200190611dd7929190612d13565b50611de283856129e3565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc532b1eb099007b62a28e1fca5a7dbf04552c7bdfa79b79d20b1b9087747e8108386604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611e78578082015181840152602081019050611e5d565b50505050905090810190601f168015611ea55780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611ede578082015181840152602081019050611ec3565b50505050905090810190601f168015611f0b5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3600191505092915050565b600281815481101515611f3457fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120355780601f1061200a57610100808354040283529160200191612035565b820191906000526020600020905b81548152906001019060200180831161201857829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120d35780601f106120a8576101008083540402835291602001916120d3565b820191906000526020600020905b8154815290600101906020018083116120b657829003601f168201915b5050505050905083565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561213857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600060046000836040518082805190602001908083835b60208310151561221b57805182526020820191506020810190506020830392506121f6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561232f57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116122e5575b5050505050905090565b6000612343612c5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561239e57600080fd5b6002838154811015156123ad57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151561241157600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561254b5780601f106125205761010080835404028352916020019161254b565b820191906000526020600020905b81548152906001019060200180831161252e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125ed5780601f106125c2576101008083540402835291602001916125ed565b820191906000526020600020905b8154815290600101906020018083116125d057829003601f168201915b50505050508152505090508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c0549cd7c150e0ebb3086c88a820e1b42db9c827e3d24883f6a945b647b4ada83602001518460400151604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561269557808201518184015260208101905061267a565b50505050905090810190601f1680156126c25780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156126fb5780820151818401526020810190506126e0565b50505050905090810190601f1680156127285780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a36127468160200151600061291b565b50612756816040015160006129e3565b50600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006127ce9190612d93565b6002820160006127de9190612d93565b50506127f4836002612aab90919063ffffffff16565b50600191505092915050565b600060056000836040518082805190602001908083835b60208310151561283c5780518252602082019150602081019050602083039250612817565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561290257600080fd5b61290b81612b61565b50565b6000600280549050905090565b60008160056000856040518082805190602001908083835b6020831015156129585780518252602082019150602081019050602083039250612933565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b60008160046000856040518082805190602001908083835b602083101515612a2057805182526020820191506020810190506020830392506129fb565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b6000826001848054905003815481101515612ac257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383815481101515612afb57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018381818054905003915081612b5a9190612ddb565b5092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612b9d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612cd457805160ff1916838001178555612d02565b82800160010185558215612d02579182015b82811115612d01578251825591602001919060010190612ce6565b5b509050612d0f9190612e07565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612d5457805160ff1916838001178555612d82565b82800160010185558215612d82579182015b82811115612d81578251825591602001919060010190612d66565b5b509050612d8f9190612e07565b5090565b50805460018160011615610100020316600290046000825580601f10612db95750612dd8565b601f016020900490600052602060002090810190612dd79190612e07565b5b50565b815481835581811115612e0257818360005260206000209182019101612e019190612e07565b5b505050565b612e2991905b80821115612e25576000816000905550600101612e0d565b5090565b905600a165627a7a72305820ad2dfd2586c81c680e481032c86442ce22cbf3966cab3625e71d1db1d4b9c5ef0029", - "deployedBytecode": "0x6080604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301304a4f146100f6578063110a25c214610251578063443ba0c7146103d057806346bc7fd91461047157806350b4265c1461055857806359ec2afc146105c95780635bbc1eed1461063a5780636e7f096e146106db5780636ef49f6414610748578063715018a6146108a357806377b96551146108ba5780638da5cb5b146109635780639eff34b4146109ba578063abe7f1ab14610a26578063d9cbfd5914610a8b578063f2fde38b14610b34578063f58d216314610b77575b600080fd5b34801561010257600080fd5b50610137600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ba2565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156101ad578082015181840152602081019050610192565b50505050905090810190601f1680156101da5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156102135780820151818401526020810190506101f8565b50505050905090810190601f1680156102405780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561025d57600080fd5b5061038e600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610db9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103dc57600080fd5b50610457600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611385565b604051808215151515815260200191505060405180910390f35b34801561047d57600080fd5b5061053e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611671565b604051808215151515815260200191505060405180910390f35b34801561056457600080fd5b506105876004803603810190808035600019169060200190929190505050611bd3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105d557600080fd5b506105f86004803603810190808035600019169060200190929190505050611c06565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064657600080fd5b506106c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611c39565b604051808215151515815260200191505060405180910390f35b3480156106e757600080fd5b5061070660048036038101908080359060200190929190505050611f25565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561075457600080fd5b50610789600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f63565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156107ff5780820151818401526020810190506107e4565b50505050905090810190601f16801561082c5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561086557808201518184015260208101905061084a565b50505050905090810190601f1680156108925780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156108af57600080fd5b506108b86120dd565b005b3480156108c657600080fd5b50610921600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506121df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561096f57600080fd5b50610978612286565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109c657600080fd5b506109cf6122ab565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610a125780820151818401526020810190506109f7565b505050509050019250505060405180910390f35b348015610a3257600080fd5b50610a71600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612339565b604051808215151515815260200191505060405180910390f35b348015610a9757600080fd5b50610af2600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612800565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b4057600080fd5b50610b75600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128a7565b005b348015610b8357600080fd5b50610b8c61290e565b6040518082815260200191505060405180910390f35b6000606080610baf612c5b565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ce95780601f10610cbe57610100808354040283529160200191610ce9565b820191906000526020600020905b815481529060010190602001808311610ccc57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d8b5780601f10610d6057610100808354040283529160200191610d8b565b820191906000526020600020905b815481529060010190602001808311610d6e57829003601f168201915b5050505050815250509050806000015181602001518260400151819150809050935093509350509193909250565b60008083600073ffffffffffffffffffffffffffffffffffffffff1660056000836040518082805190602001908083835b602083101515610e0f5780518252602082019150602081019050602083039250610dea565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e9557600080fd5b83600073ffffffffffffffffffffffffffffffffffffffff1660046000836040518082805190602001908083835b602083101515610ee85780518252602082019150602081019050602083039250610ec3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610f6e57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663821f91f48a8a8a6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b8381101561102757808201518184015260208101905061100c565b50505050905001838103825285818151815260200191508051906020019060200280838360005b8381101561106957808201518184015260208101905061104e565b5050505090500195505050505050602060405180830381600087803b15801561109157600080fd5b505af11580156110a5573d6000803e3d6000fd5b505050506040513d60208110156110bb57600080fd5b8101908080519060200190929190505050925060028390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506060604051908101604052808473ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186815250600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190611208929190612c93565b506040820151816002019080519060200190611225929190612c93565b50905050611233868461291b565b5061123e85846129e3565b508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb7b1e89d4bb640b93b0cb96b27077ceb558d073e00531c0a712a4afc9ccf06fe8888604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156112d45780820151818401526020810190506112b9565b50505050905090810190601f1680156113015780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561133a57808201518184015260208101905061131f565b50505050905090810190601f1680156113675780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a382935050505095945050505050565b600060606000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113e457600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ba5780601f1061148f576101008083540402835291602001916114ba565b820191906000526020600020905b81548152906001019060200180831161149d57829003601f168201915b505050505090506114cc81600061291b565b5082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001019080519060200190611523929190612d13565b5061152e838561291b565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc532b1eb099007b62a28e1fca5a7dbf04552c7bdfa79b79d20b1b9087747e8108386604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156115c45780820151818401526020810190506115a9565b50505050905090810190601f1680156115f15780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561162a57808201518184015260208101905061160f565b50505050905090810190601f1680156116575780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3600191505092915050565b600082600073ffffffffffffffffffffffffffffffffffffffff1660056000836040518082805190602001908083835b6020831015156116c657805182526020820191506020810190506020830392506116a1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561174c57600080fd5b82600073ffffffffffffffffffffffffffffffffffffffff1660046000836040518082805190602001908083835b60208310151561179f578051825260208201915060208101905060208303925061177a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561182557600080fd5b85600073ffffffffffffffffffffffffffffffffffffffff16600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118c357600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561191e57600080fd5b60028790806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506060604051908101604052808873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186815250600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190611a58929190612c93565b506040820151816002019080519060200190611a75929190612c93565b50905050611a83868861291b565b50611a8e85886129e3565b508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167e7daa8b19a37c4050f45e8745396381f3feb1207079ea81fbaecc4de19d359a8888604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611b23578082015181840152602081019050611b08565b50505050905090810190601f168015611b505780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611b89578082015181840152602081019050611b6e565b50505050905090810190601f168015611bb65780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3600193505050509392505050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060606000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c9857600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d6e5780601f10611d4357610100808354040283529160200191611d6e565b820191906000526020600020905b815481529060010190602001808311611d5157829003601f168201915b50505050509050611d808160006129e3565b5082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002019080519060200190611dd7929190612d13565b50611de283856129e3565b508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc532b1eb099007b62a28e1fca5a7dbf04552c7bdfa79b79d20b1b9087747e8108386604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611e78578082015181840152602081019050611e5d565b50505050905090810190601f168015611ea55780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611ede578082015181840152602081019050611ec3565b50505050905090810190601f168015611f0b5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a3600191505092915050565b600281815481101515611f3457fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120355780601f1061200a57610100808354040283529160200191612035565b820191906000526020600020905b81548152906001019060200180831161201857829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120d35780601f106120a8576101008083540402835291602001916120d3565b820191906000526020600020905b8154815290600101906020018083116120b657829003601f168201915b5050505050905083565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561213857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600060046000836040518082805190602001908083835b60208310151561221b57805182526020820191506020810190506020830392506121f6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561232f57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116122e5575b5050505050905090565b6000612343612c5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561239e57600080fd5b6002838154811015156123ad57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151561241157600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020606060405190810160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561254b5780601f106125205761010080835404028352916020019161254b565b820191906000526020600020905b81548152906001019060200180831161252e57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125ed5780601f106125c2576101008083540402835291602001916125ed565b820191906000526020600020905b8154815290600101906020018083116125d057829003601f168201915b50505050508152505090508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c0549cd7c150e0ebb3086c88a820e1b42db9c827e3d24883f6a945b647b4ada83602001518460400151604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561269557808201518184015260208101905061267a565b50505050905090810190601f1680156126c25780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156126fb5780820151818401526020810190506126e0565b50505050905090810190601f1680156127285780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a36127468160200151600061291b565b50612756816040015160006129e3565b50600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006127ce9190612d93565b6002820160006127de9190612d93565b50506127f4836002612aab90919063ffffffff16565b50600191505092915050565b600060056000836040518082805190602001908083835b60208310151561283c5780518252602082019150602081019050602083039250612817565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561290257600080fd5b61290b81612b61565b50565b6000600280549050905090565b60008160056000856040518082805190602001908083835b6020831015156129585780518252602082019150602081019050602083039250612933565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b60008160046000856040518082805190602001908083835b602083101515612a2057805182526020820191506020810190506020830392506129fb565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b6000826001848054905003815481101515612ac257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383815481101515612afb57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018381818054905003915081612b5a9190612ddb565b5092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612b9d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612cd457805160ff1916838001178555612d02565b82800160010185558215612d02579182015b82811115612d01578251825591602001919060010190612ce6565b5b509050612d0f9190612e07565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612d5457805160ff1916838001178555612d82565b82800160010185558215612d82579182015b82811115612d81578251825591602001919060010190612d66565b5b509050612d8f9190612e07565b5090565b50805460018160011615610100020316600290046000825580601f10612db95750612dd8565b601f016020900490600052602060002090810190612dd79190612e07565b5b50565b815481835581811115612e0257818360005260206000209182019101612e019190612e07565b5b505050565b612e2991905b80821115612e25576000816000905550600101612e0d565b5090565b905600a165627a7a72305820ad2dfd2586c81c680e481032c86442ce22cbf3966cab3625e71d1db1d4b9c5ef0029", - "sourceMap": "303:8008:3:-;;;2562:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;2562:85:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:10:11;567:5;;:18;;;;;;;;;;;;;;;;;;2629:11:3;2616:10;;:24;;;;;;;;;;;;;;;;;;2562:85;303:8008;;;;;;", - "deployedSourceMap": "303:8008:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7376:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7376:347:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7376:347:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7376:347:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2884:1064;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2884:1064:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:497;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:497:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4028:605;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4028:605:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;911:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;911:60:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;977:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;977:58:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5995:521;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5995:521:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;826:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;826:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;861:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;861:44:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;861:44:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;861:44:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:11;;;;;;6794:192:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6794:192:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:11;;;;;;;;;;;;;;;;;;;;;;;;;;;6666:122:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6666:122:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6666:122:3;;;;;;;;;;;;;;;;;4707:596;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4707:596:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7118:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7118:178:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;6992:120:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6992:120:3;;;;;;;;;;;;;;;;;;;;;;;7376:347;7485:7;7521:6;7550;7592:22;;:::i;:::-;7617:4;:10;7622:4;7617:10;;;;;;;;;;;;;;;7592:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7654:3;:14;;;7678:3;:8;;;7696:3;:10;;;7637:79;;;;;;;;;;;;7376:347;;;;;;:::o;2884:1064::-;3128:7;3188:21;3069:5;2189:1;2137:54;;:22;:40;2170:5;2160:16;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2160:16:3;;;;;;;;;;;;;;;;2137:40;;;;;;;;;;;;;;;;;;;;;;;;;;;:54;;;2129:63;;;;;;;;3103:7;2334:1;2278:58;;:24;:44;2313:7;2303:18;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2303:18:3;;;;;;;;;;;;;;;;2278:44;;;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;2270:67;;;;;;;;3235:10;;;;;;;;;;;:20;;;3273:7;3298:6;3322:12;3235:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3235:113:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3235:113:3;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3235:113:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3235:113:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3235:113:3;;;;;;;;;;;;;;;;3188:170;;3413:12;3439:11;3413:39;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3413:39:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3538:123;;;;;;;;;3584:11;3538:123;;;;;;3616:5;3538:123;;;;3643:7;3538:123;;;3509:4;:26;3522:11;3509:26;;;;;;;;;;;;;;;:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3672:48;3692:5;3707:11;3672:19;:48::i;:::-;;3730:52;3752:7;3769:11;3730:21;:52::i;:::-;;3851:11;3798:114;;3827:10;3798:114;;;3876:5;3895:7;3798:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3798:114:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3798:114:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3930:11;3923:18;;2202:1;2884:1064;;;;;;;;;:::o;5492:497::-;5615:4;5635:26;719:5:11;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;5664:4:3;:19;5677:4;5664:19;;;;;;;;;;;;;;;:24;;5635:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5698:45;5718:12;5740:1;5698:19;:45::i;:::-;;5781:5;5754:4;:19;5767:4;5754:19;;;;;;;;;;;;;;;:24;;:32;;;;;;;;;;;;:::i;:::-;;5796;5816:5;5823:4;5796:19;:32::i;:::-;;5901:4;5844:116;;5877:10;5844:116;;;5919:12;5945:5;5844:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5844:116:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5844:116:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5978:4;5971:11;;5492:497;;;;;:::o;4028:605::-;4233:4;4125:5;2189:1;2137:54;;:22;:40;2170:5;2160:16;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2160:16:3;;;;;;;;;;;;;;;;2137:40;;;;;;;;;;;;;;;;;;;;;;;;;;;:54;;;2129:63;;;;;;;;4159:7;2334:1;2278:58;;:24;:44;2313:7;2303:18;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2303:18:3;;;;;;;;;;;;;;;;2278:44;;;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;2270:67;;;;;;;;4192:4;2465:1;2425:42;;:4;:17;2430:11;2425:17;;;;;;;;;;;;;;;:28;;;;;;;;;;;;:42;;;2417:51;;;;;;;;719:5:11;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;4253:12:3;4271:4;4253:23;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;4253:23:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4299:107;;;;;;;;;4337:4;4299:107;;;;;;4361:5;4299:107;;;;4388:7;4299:107;;;4286:4;:10;4291:4;4286:10;;;;;;;;;;;;;;;:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;4417:32;4437:5;4444:4;4417:19;:32::i;:::-;;4459:36;4481:7;4490:4;4459:21;:36::i;:::-;;4562:4;4511:93;;4538:10;4511:93;;;4568:5;4587:7;4511:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4511:93:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4511:93:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4622:4;4615:11;;2347:1;2202;4028:605;;;;;;:::o;911:60::-;;;;;;;;;;;;;;;;;;;;;;:::o;977:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;5995:521::-;6122:4;6142:28;719:5:11;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;6173:4:3;:19;6186:4;6173:19;;;;;;;;;;;;;;;:26;;6142:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6209:49;6231:14;6255:1;6209:21;:49::i;:::-;;6298:7;6269:4;:19;6282:4;6269:19;;;;;;;;;;;;;;;:26;;:36;;;;;;;;;;;;:::i;:::-;;6315;6337:7;6346:4;6315:21;:36::i;:::-;;6424:4;6367:120;;6400:10;6367:120;;;6442:14;6470:7;6367:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6367:120:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6367:120:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6505:4;6498:11;;5995:521;;;;;:::o;826:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;861:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;827:111:11:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;6794:192:3:-;6902:7;6932:24;:47;6967:10;6957:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6957:21:3;;;;;;;;;;;;;;;;6932:47;;;;;;;;;;;;;;;;;;;;;;;;;;;6925:54;;6794:192;;;:::o;238:20:11:-;;;;;;;;;;;;;:::o;6666:122:3:-;6737:9;6769:12;6762:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6666:122;:::o;4707:596::-;4810:4;4888:22;;:::i;:::-;719:5:11;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;4846:12:3;4859:16;4846:30;;;;;;;;;;;;;;;;;;;;;;;;;;;4838:38;;:4;:38;;;4830:47;;;;;;;;4913:4;:10;4918:4;4913:10;;;;;;;;;;;;;;;4888:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4992:4;4939:113;;4968:10;4939:113;;;5010:3;:8;;;5032:3;:10;;;4939:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4939:113:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4939:113:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5063:41;5083:3;:8;;;5101:1;5063:19;:41::i;:::-;;5114:45;5136:3;:10;;;5156:1;5114:21;:45::i;:::-;;5209:4;:10;5214:4;5209:10;;;;;;;;;;;;;;;;5202:17;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;5230:44;5257:16;5230:12;:26;;:44;;;;:::i;:::-;;5292:4;5285:11;;4707:596;;;;;:::o;7118:178::-;7219:7;7249:22;:40;7282:5;7272:16;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7272:16:3;;;;;;;;;;;;;;;;7249:40;;;;;;;;;;;;;;;;;;;;;;;;;;;7242:47;;7118:178;;;:::o;1100:103:11:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;6992:120:3:-;7059:4;7086:12;:19;;;;7079:26;;6992:120;:::o;7883:206::-;7994:4;8057;8014:22;:40;8047:5;8037:16;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8037:16:3;;;;;;;;;;;;;;;;8014:40;;;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;8078:4;8071:11;;7883:206;;;;:::o;8095:214::-;8210:4;8277;8230:24;:44;8265:7;8255:18;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8255:18:3;;;;;;;;;;;;;;;;8230:44;;;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;8298:4;8291:11;;8095:214;;;;:::o;316:142:6:-;393:7;419:1;432;421;:8;;;;:12;419:15;;;;;;;;;;;;;;;;;;;;;;;;;;;408:1;410:5;408:8;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;452:1;440;:13;;;;;;;;;;;;;;:::i;:::-;;316:142;;;;:::o;1338:171:11:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o;303:8008:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.23;\n\nimport \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"./interfaces/ISetToken.sol\";\nimport \"./interfaces/ISetFactory.sol\";\nimport \"../lib/AddressArrayUtils.sol\";\n\n\n/**\n * @title {Set} Registry\n * @author Felix Feng\n * @dev Implementation of the {Set} registry.\n */\ncontract SetTokenRegistry is Ownable {\n using AddressArrayUtils for address[];\n\n ///////////////////////////////////////////////////////////\n /// Data Structures\n ///////////////////////////////////////////////////////////\n\n struct SetMetadata {\n address setAddress;\n string name;\n string symbol;\n }\n \n ///////////////////////////////////////////////////////////\n /// States\n ///////////////////////////////////////////////////////////\n ISetFactory setFactory;\n address[] public setAddresses;\n mapping (address => SetMetadata) public sets;\n mapping (bytes32 => address) public setAddressByHashedSymbol;\n mapping (bytes32 => address) public setAddressByHashedName;\n\n ///////////////////////////////////////////////////////////\n /// Events\n ///////////////////////////////////////////////////////////\n\n event SetTokenCreated(\n address indexed sender,\n address indexed setAddress,\n string name,\n string symbol\n );\n event SetTokenAdded(\n address indexed sender,\n address indexed setAddress,\n string name,\n string symbol\n );\n event SetTokenRemoved(\n address indexed sender,\n address indexed setAddress,\n string name,\n string symbol\n );\n event SetTokenNameUpdated(\n address indexed sender,\n address indexed setAddress,\n string oldName,\n string newName\n );\n event SetTokenSymbolUpdated(\n address indexed sender,\n address indexed setAddress,\n string oldSymbol,\n string newSymbol\n );\n\n ///////////////////////////////////////////////////////////\n /// Modifiers\n ///////////////////////////////////////////////////////////\n\n modifier nameDoesNotExist(string _name) {\n require(setAddressByHashedName[keccak256(_name)] == address(0));\n _;\n }\n\n modifier symbolDoesNotExist(string _symbol) {\n require(setAddressByHashedSymbol[keccak256(_symbol)] == address(0));\n _;\n }\n\n modifier setDoesNotExist(address _setAddress) {\n require(sets[_setAddress].setAddress == address(0));\n _;\n }\n\n /**\n * @dev Constructor Function for the {Set} registry\n */\n constructor(ISetFactory _setFactory) public {\n setFactory = _setFactory;\n }\n\n ///////////////////////////////////////////////////////////\n /// Registry Functions\n ///////////////////////////////////////////////////////////\n\n /**\n * @dev Function creates a new {Set} and add to registry\n */\n function create(\n address[] _tokens,\n uint[] _units,\n uint _naturalUnit,\n string _name,\n string _symbol\n )\n public\n nameDoesNotExist(_name)\n symbolDoesNotExist(_symbol)\n returns(address)\n {\n // Instantiate that contract\n ISetToken newSetToken = ISetToken(\n setFactory.createSet(\n _tokens,\n _units,\n _naturalUnit\n )\n );\n\n // Add to the list of set addresses\n setAddresses.push(address(newSetToken));\n\n // Add to the mapping of set metadata\n sets[address(newSetToken)] = SetMetadata({\n setAddress: address(newSetToken),\n name: _name,\n symbol: _symbol\n });\n\n modifyAddressByName(_name, address(newSetToken));\n modifyAddressBySymbol(_symbol, address(newSetToken));\n\n emit SetTokenCreated(\n msg.sender,\n newSetToken,\n _name,\n _symbol\n );\n\n return newSetToken;\n }\n\n /**\n * @dev Function adds an existing {Set} to the registry\n */\n function add(address _set, string _name, string _symbol)\n public\n nameDoesNotExist(_name)\n symbolDoesNotExist(_symbol)\n setDoesNotExist(_set)\n onlyOwner\n returns (bool)\n {\n setAddresses.push(_set);\n sets[_set] = SetMetadata({\n setAddress: _set,\n name: _name,\n symbol: _symbol\n });\n\n modifyAddressByName(_name, _set);\n modifyAddressBySymbol(_symbol, _set);\n\n emit SetTokenAdded(\n msg.sender,\n _set, _name,\n _symbol\n );\n\n return true;\n }\n\n /**\n * @dev Function remove a {Set} from the registry\n */\n function remove(address _set, uint _setAddressIndex)\n public\n onlyOwner\n returns (bool)\n {\n require(_set == setAddresses[_setAddressIndex]);\n\n SetMetadata memory set = sets[_set];\n\n emit SetTokenRemoved(\n msg.sender,\n _set,\n set.name,\n set.symbol\n );\n\n modifyAddressByName(set.name, address(0));\n modifyAddressBySymbol(set.symbol, address(0));\n\n // Remove from metadata\n delete sets[_set];\n\n setAddresses.removeByIndex(_setAddressIndex);\n\n return true;\n }\n\n ///////////////////////////////////////////////////////////\n /// Setters / Modify to avoid confusion with {Set}\n ///////////////////////////////////////////////////////////\n function modifySetName(\n address _set,\n string _name\n )\n public\n onlyOwner\n returns (bool)\n {\n string memory existingName = sets[address(_set)].name;\n modifyAddressByName(existingName, address(0));\n\n sets[address(_set)].name = _name;\n modifyAddressByName(_name, _set);\n\n emit SetTokenNameUpdated(\n msg.sender,\n _set,\n existingName,\n _name\n );\n\n return true;\n }\n\n function modifySetSymbol(\n address _set,\n string _symbol\n )\n public\n onlyOwner\n returns (bool)\n {\n string memory existingSymbol = sets[address(_set)].symbol;\n modifyAddressBySymbol(existingSymbol, address(0));\n\n sets[address(_set)].symbol = _symbol;\n modifyAddressBySymbol(_symbol, _set);\n\n emit SetTokenNameUpdated(\n msg.sender,\n _set,\n existingSymbol,\n _symbol\n );\n\n return true;\n }\n\n ///////////////////////////////////////////////////////////\n /// Getters\n ///////////////////////////////////////////////////////////\n function getSetAddresses()\n public\n view\n returns(address[])\n {\n return setAddresses;\n }\n\n function getSetAddressBySymbol(\n string _setSymbol\n )\n public\n view\n returns(address)\n {\n return setAddressByHashedSymbol[keccak256(_setSymbol)];\n }\n\n function getSetCount()\n public\n view\n returns(uint)\n {\n return setAddresses.length;\n }\n\n function getSetAddressByName(\n string _name\n )\n public\n view\n returns(address)\n {\n return setAddressByHashedName[keccak256(_name)];\n }\n\n /**\n * @dev Gets a list of set metadata using a set address\n */\n function getSetMetadata(\n address _set\n )\n public\n view\n returns(\n address, // set address\n string, // name;\n string // symbol;\n )\n {\n SetMetadata memory set = sets[_set];\n return (\n set.setAddress,\n set.name,\n set.symbol\n );\n }\n\n ///////////////////////////////////////////////////////////\n /// Private Function\n ///////////////////////////////////////////////////////////\n\n function modifyAddressByName(\n string _name,\n address _set\n )\n private\n returns(bool)\n {\n setAddressByHashedName[keccak256(_name)] = _set;\n return true;\n }\n\n function modifyAddressBySymbol(\n string _symbol,\n address _set\n )\n private\n returns(bool)\n {\n setAddressByHashedSymbol[keccak256(_symbol)] = _set;\n return true;\n }\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetTokenRegistry.sol", - "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetTokenRegistry.sol", - "exportedSymbols": { - "SetTokenRegistry": [ - 1576 - ] - }, - "id": 1577, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1007, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1008, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 2242, - "src": "25:59:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", - "file": "./interfaces/ISetToken.sol", - "id": 1009, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 1622, - "src": "85:36:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", - "file": "./interfaces/ISetFactory.sol", - "id": 1010, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 1593, - "src": "122:38:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/lib/AddressArrayUtils.sol", - "file": "../lib/AddressArrayUtils.sol", - "id": 1011, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 1688, - "src": "161:38:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1012, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2241, - "src": "332:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$2241", - "typeString": "contract Ownable" - } - }, - "id": 1013, - "nodeType": "InheritanceSpecifier", - "src": "332:7:3" - } - ], - "contractDependencies": [ - 2241 - ], - "contractKind": "contract", - "documentation": "@title {Set} Registry\n@author Felix Feng\n@dev Implementation of the {Set} registry.", - "fullyImplemented": true, - "id": 1576, - "linearizedBaseContracts": [ - 1576, - 2241 - ], - "name": "SetTokenRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1017, - "libraryName": { - "contractScope": null, - "id": 1014, - "name": "AddressArrayUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1687, - "src": "352:17:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressArrayUtils_$1687", - "typeString": "library AddressArrayUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "346:38:3", - "typeName": { - "baseType": { - "id": 1015, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "374:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1016, - "length": null, - "nodeType": "ArrayTypeName", - "src": "374:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - { - "canonicalName": "SetTokenRegistry.SetMetadata", - "id": 1024, - "members": [ - { - "constant": false, - "id": 1019, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1024, - "src": "572:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1018, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "572:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1021, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1024, - "src": "600:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1020, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "600:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1023, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1024, - "src": "621:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1022, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "621:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "SetMetadata", - "nodeType": "StructDefinition", - "scope": 1576, - "src": "543:98:3", - "visibility": "public" - }, - { - "constant": false, - "id": 1026, - "name": "setFactory", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "798:22:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - }, - "typeName": { - "contractScope": null, - "id": 1025, - "name": "ISetFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1592, - "src": "798:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1029, - "name": "setAddresses", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "826:29:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1027, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "826:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1028, - "length": null, - "nodeType": "ArrayTypeName", - "src": "826:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1033, - "name": "sets", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "861:44:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata)" - }, - "typeName": { - "id": 1032, - "keyType": { - "id": 1030, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "870:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "861:32:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata)" - }, - "valueType": { - "contractScope": null, - "id": 1031, - "name": "SetMetadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1024, - "src": "881:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1037, - "name": "setAddressByHashedSymbol", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "911:60:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "typeName": { - "id": 1036, - "keyType": { - "id": 1034, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "920:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "911:28:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "valueType": { - "id": 1035, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "931:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1041, - "name": "setAddressByHashedName", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "977:58:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "typeName": { - "id": 1040, - "keyType": { - "id": 1038, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "986:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "977:28:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "valueType": { - "id": 1039, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "997:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "////////////////////////////////////////////////////////\n Events\n////////////////////////////////////////////////////////", - "id": 1051, - "name": "SetTokenCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1043, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1217:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1042, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1217:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1045, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1249:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1249:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1047, - "indexed": false, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1285:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1046, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1285:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1049, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1306:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1048, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1306:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:118:3" - }, - "src": "1186:140:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1061, - "name": "SetTokenAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 1060, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1053, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1360:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1360:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1055, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1392:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1054, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1392:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1057, - "indexed": false, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1428:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1056, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1428:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1059, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1449:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1058, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1449:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1350:118:3" - }, - "src": "1331:138:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1071, - "name": "SetTokenRemoved", - "nodeType": "EventDefinition", - "parameters": { - "id": 1070, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1063, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1505:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1062, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1505:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1065, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1537:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1064, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1537:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1067, - "indexed": false, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1573:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1066, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1573:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1069, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1594:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1068, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1594:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1495:118:3" - }, - "src": "1474:140:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1081, - "name": "SetTokenNameUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1080, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1073, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1654:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1072, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1654:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1075, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1686:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1074, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1686:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1077, - "indexed": false, - "name": "oldName", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1722:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1076, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1722:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1079, - "indexed": false, - "name": "newName", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1746:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1078, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1746:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1644:122:3" - }, - "src": "1619:148:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1091, - "name": "SetTokenSymbolUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1083, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1809:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1082, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1809:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1085, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1841:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1084, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1841:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1087, - "indexed": false, - "name": "oldSymbol", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1877:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1086, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1877:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "indexed": false, - "name": "newSymbol", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1903:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1088, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1903:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1799:126:3" - }, - "src": "1772:154:3" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "2119:91:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1096, - "name": "setAddressByHashedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "2137:22:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1100, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1098, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1093, - "src": "2170:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1097, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "2160:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2160:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2137:40:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2189:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2181:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2181:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2137:54:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1095, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2129:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2129:63:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1106, - "nodeType": "ExpressionStatement", - "src": "2129:63:3" - }, - { - "id": 1107, - "nodeType": "PlaceholderStatement", - "src": "2202:1:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Modifiers\n////////////////////////////////////////////////////////", - "id": 1109, - "name": "nameDoesNotExist", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1094, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1093, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "2105:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1092, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2105:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2104:14:3" - }, - "src": "2079:131:3", - "visibility": "internal" - }, - { - "body": { - "id": 1126, - "nodeType": "Block", - "src": "2260:95:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1114, - "name": "setAddressByHashedSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "2278:24:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1118, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1116, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "2313:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1115, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "2303:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2303:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2278:44:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2334:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2326:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2326:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2278:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1113, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2270:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2270:67:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1124, - "nodeType": "ExpressionStatement", - "src": "2270:67:3" - }, - { - "id": 1125, - "nodeType": "PlaceholderStatement", - "src": "2347:1:3" - } - ] - }, - "documentation": null, - "id": 1127, - "name": "symbolDoesNotExist", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "2244:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1110, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2244:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2243:16:3" - }, - "src": "2216:139:3", - "visibility": "internal" - }, - { - "body": { - "id": 1143, - "nodeType": "Block", - "src": "2407:79:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1132, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "2425:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1134, - "indexExpression": { - "argumentTypes": null, - "id": 1133, - "name": "_setAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "2430:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2425:17:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1135, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "setAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1019, - "src": "2425:28:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2465:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2457:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2457:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2425:42:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1131, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2417:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2417:51:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1141, - "nodeType": "ExpressionStatement", - "src": "2417:51:3" - }, - { - "id": 1142, - "nodeType": "PlaceholderStatement", - "src": "2478:1:3" - } - ] - }, - "documentation": null, - "id": 1144, - "name": "setDoesNotExist", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1129, - "name": "_setAddress", - "nodeType": "VariableDeclaration", - "scope": 1144, - "src": "2386:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2386:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2385:21:3" - }, - "src": "2361:125:3", - "visibility": "internal" - }, - { - "body": { - "id": 1153, - "nodeType": "Block", - "src": "2606:41:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1149, - "name": "setFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "2616:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1150, - "name": "_setFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1146, - "src": "2629:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "src": "2616:24:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "id": 1152, - "nodeType": "ExpressionStatement", - "src": "2616:24:3" - } - ] - }, - "documentation": "@dev Constructor Function for the {Set} registry", - "id": 1154, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1146, - "name": "_setFactory", - "nodeType": "VariableDeclaration", - "scope": 1154, - "src": "2574:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - }, - "typeName": { - "contractScope": null, - "id": 1145, - "name": "ISetFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1592, - "src": "2574:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2573:25:3" - }, - "payable": false, - "returnParameters": { - "id": 1148, - "nodeType": "ParameterList", - "parameters": [], - "src": "2606:0:3" - }, - "scope": 1576, - "src": "2562:85:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1234, - "nodeType": "Block", - "src": "3141:807:3", - "statements": [ - { - "assignments": [ - 1178 - ], - "declarations": [ - { - "constant": false, - "id": 1178, - "name": "newSetToken", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "3188:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - }, - "typeName": { - "contractScope": null, - "id": 1177, - "name": "ISetToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1621, - "src": "3188:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1187, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1182, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "3273:7:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1183, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "3298:6:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1184, - "name": "_naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "3322:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1180, - "name": "setFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "3235:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "id": 1181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 1591, - "src": "3235:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_address_$", - "typeString": "function (address[] memory,uint256[] memory,uint256) external returns (address)" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3235:113:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1179, - "name": "ISetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "3212:9:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISetToken_$1621_$", - "typeString": "type(contract ISetToken)" - } - }, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3212:146:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3188:170:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1192, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3439:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1191, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3431:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3431:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "3413:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3413:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 1194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3413:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1195, - "nodeType": "ExpressionStatement", - "src": "3413:39:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1196, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "3509:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1200, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1198, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3522:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1197, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3514:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3514:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3509:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1203, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3584:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3576:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3576:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1205, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3616:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1206, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3643:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 1201, - "name": "SetMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "3538:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SetMetadata_$1024_storage_ptr_$", - "typeString": "type(struct SetTokenRegistry.SetMetadata storage pointer)" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "setAddress", - "name", - "symbol" - ], - "nodeType": "FunctionCall", - "src": "3538:123:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "src": "3509:152:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1209, - "nodeType": "ExpressionStatement", - "src": "3509:152:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1211, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3692:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1213, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3707:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1212, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3699:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3699:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1210, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "3672:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3672:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1216, - "nodeType": "ExpressionStatement", - "src": "3672:48:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1218, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3752:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1220, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3769:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3761:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3761:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1217, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3730:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3730:52:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1223, - "nodeType": "ExpressionStatement", - "src": "3730:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1225, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3827:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3827:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1227, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3851:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - { - "argumentTypes": null, - "id": 1228, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3876:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1229, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3895:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1224, - "name": "SetTokenCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "3798:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3798:114:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1231, - "nodeType": "EmitStatement", - "src": "3793:119:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1232, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3930:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "functionReturnParameters": 1176, - "id": 1233, - "nodeType": "Return", - "src": "3923:18:3" - } - ] - }, - "documentation": "@dev Function creates a new {Set} and add to registry", - "id": 1235, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1169, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3069:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1170, - "modifierName": { - "argumentTypes": null, - "id": 1168, - "name": "nameDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "3052:16:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3052:23:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3103:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1173, - "modifierName": { - "argumentTypes": null, - "id": 1171, - "name": "symbolDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1127, - "src": "3084:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3084:27:3" - } - ], - "name": "create", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1167, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1157, - "name": "_tokens", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2909:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2909:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1156, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2909:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1160, - "name": "_units", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2936:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1158, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2936:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1159, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2936:6:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1162, - "name": "_naturalUnit", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2959:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1161, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2959:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1164, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2986:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1163, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2986:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1166, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "3008:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1165, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3008:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2899:129:3" - }, - "payable": false, - "returnParameters": { - "id": 1176, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1175, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "3128:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1174, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3128:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3127:9:3" - }, - "scope": 1576, - "src": "2884:1064:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1293, - "nodeType": "Block", - "src": "4243:390:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1260, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4271:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1257, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "4253:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4253:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4253:23:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1262, - "nodeType": "ExpressionStatement", - "src": "4253:23:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1263, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "4286:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1265, - "indexExpression": { - "argumentTypes": null, - "id": 1264, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4291:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4286:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1267, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4337:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1268, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4361:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1269, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4388:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 1266, - "name": "SetMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "4299:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SetMetadata_$1024_storage_ptr_$", - "typeString": "type(struct SetTokenRegistry.SetMetadata storage pointer)" - } - }, - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "setAddress", - "name", - "symbol" - ], - "nodeType": "FunctionCall", - "src": "4299:107:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "src": "4286:120:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1272, - "nodeType": "ExpressionStatement", - "src": "4286:120:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1274, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4437:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1275, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4444:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1273, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "4417:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4417:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1277, - "nodeType": "ExpressionStatement", - "src": "4417:32:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1279, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4481:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1280, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4490:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1278, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "4459:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4459:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "4459:36:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1284, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4538:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4538:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1286, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4562:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1287, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4568:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1288, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4587:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1283, - "name": "SetTokenAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "4511:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4511:93:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1290, - "nodeType": "EmitStatement", - "src": "4506:98:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4622:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1256, - "id": 1292, - "nodeType": "Return", - "src": "4615:11:3" - } - ] - }, - "documentation": "@dev Function adds an existing {Set} to the registry", - "id": 1294, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1244, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4125:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1245, - "modifierName": { - "argumentTypes": null, - "id": 1243, - "name": "nameDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "4108:16:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4108:23:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1247, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4159:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1248, - "modifierName": { - "argumentTypes": null, - "id": 1246, - "name": "symbolDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1127, - "src": "4140:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4140:27:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1250, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4192:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1251, - "modifierName": { - "argumentTypes": null, - "id": 1249, - "name": "setDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1144, - "src": "4176:15:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4176:21:3" - }, - { - "arguments": null, - "id": 1253, - "modifierName": { - "argumentTypes": null, - "id": 1252, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "4206:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4206:9:3" - } - ], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1242, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1237, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4041:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1236, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4041:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1239, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4055:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1238, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4055:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1241, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4069:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1240, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4069:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4040:44:3" - }, - "payable": false, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1255, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4233:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1254, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4233:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4232:6:3" - }, - "scope": 1576, - "src": "4028:605:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1358, - "nodeType": "Block", - "src": "4820:483:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1306, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "4838:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1307, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "4846:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1309, - "indexExpression": { - "argumentTypes": null, - "id": 1308, - "name": "_setAddressIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "4859:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4846:30:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4838:38:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1305, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "4830:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4830:47:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1312, - "nodeType": "ExpressionStatement", - "src": "4830:47:3" - }, - { - "assignments": [ - 1314 - ], - "declarations": [ - { - "constant": false, - "id": 1314, - "name": "set", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4888:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - }, - "typeName": { - "contractScope": null, - "id": 1313, - "name": "SetMetadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1024, - "src": "4888:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1318, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1315, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "4913:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1317, - "indexExpression": { - "argumentTypes": null, - "id": 1316, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "4918:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4913:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4888:35:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1320, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4968:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4968:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1322, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "4992:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1323, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5010:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1324, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5010:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1325, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5032:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "5032:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - ], - "id": 1319, - "name": "SetTokenRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "4939:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4939:113:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1328, - "nodeType": "EmitStatement", - "src": "4934:118:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1330, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5083:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1331, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5083:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5101:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5093:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5093:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1329, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "5063:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5063:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1336, - "nodeType": "ExpressionStatement", - "src": "5063:41:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1338, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5136:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1339, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "5136:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5156:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5148:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5148:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1337, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "5114:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5114:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1344, - "nodeType": "ExpressionStatement", - "src": "5114:45:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "5202:17:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1345, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "5209:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1347, - "indexExpression": { - "argumentTypes": null, - "id": 1346, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "5214:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5209:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1349, - "nodeType": "ExpressionStatement", - "src": "5202:17:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1353, - "name": "_setAddressIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "5257:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1350, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "5230:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeByIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 1686, - "src": "5230:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_array$_t_address_$dyn_storage_ptr_$", - "typeString": "function (address[] storage pointer,uint256) returns (uint256)" - } - }, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5230:44:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "5230:44:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5292:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1304, - "id": 1357, - "nodeType": "Return", - "src": "5285:11:3" - } - ] - }, - "documentation": "@dev Function remove a {Set} from the registry", - "id": 1359, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1301, - "modifierName": { - "argumentTypes": null, - "id": 1300, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "4783:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4783:9:3" - } - ], - "name": "remove", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1296, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4723:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1295, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4723:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1298, - "name": "_setAddressIndex", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4737:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1297, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4737:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4722:37:3" - }, - "payable": false, - "returnParameters": { - "id": 1304, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1303, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4810:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1302, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4810:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4809:6:3" - }, - "scope": 1576, - "src": "4707:596:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1410, - "nodeType": "Block", - "src": "5625:364:3", - "statements": [ - { - "assignments": [ - 1371 - ], - "declarations": [ - { - "constant": false, - "id": 1371, - "name": "existingName", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5635:26:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1370, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5635:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1378, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1372, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "5664:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1376, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1374, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5677:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5669:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5669:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5664:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1377, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5664:24:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5635:53:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1380, - "name": "existingName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "5718:12:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1382, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5740:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5732:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5732:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1379, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "5698:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5698:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1385, - "nodeType": "ExpressionStatement", - "src": "5698:45:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1386, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "5754:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1390, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1388, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5767:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5759:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5759:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5754:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1391, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5754:24:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1392, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "5781:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "5754:32:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1394, - "nodeType": "ExpressionStatement", - "src": "5754:32:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1396, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "5816:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1397, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5823:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1395, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "5796:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5796:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1399, - "nodeType": "ExpressionStatement", - "src": "5796:32:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1401, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "5877:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5877:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1403, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5901:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1404, - "name": "existingName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "5919:12:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1405, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "5945:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1400, - "name": "SetTokenNameUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "5844:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5844:116:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1407, - "nodeType": "EmitStatement", - "src": "5839:121:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5978:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1369, - "id": 1409, - "nodeType": "Return", - "src": "5971:11:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Setters / Modify to avoid confusion with {Set}\n////////////////////////////////////////////////////////", - "id": 1411, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1366, - "modifierName": { - "argumentTypes": null, - "id": 1365, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "5588:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5588:9:3" - } - ], - "name": "modifySetName", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1361, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5524:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1360, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5524:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1363, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5546:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1362, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5546:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5514:50:3" - }, - "payable": false, - "returnParameters": { - "id": 1369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1368, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5615:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1367, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5615:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5614:6:3" - }, - "scope": 1576, - "src": "5492:497:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1462, - "nodeType": "Block", - "src": "6132:384:3", - "statements": [ - { - "assignments": [ - 1423 - ], - "declarations": [ - { - "constant": false, - "id": 1423, - "name": "existingSymbol", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6142:28:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1422, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6142:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1430, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1424, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "6173:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1428, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1426, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6186:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6178:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6178:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6173:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "6173:26:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6142:57:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1432, - "name": "existingSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1423, - "src": "6231:14:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1434, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6255:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1433, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6247:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6247:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1431, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "6209:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6209:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1437, - "nodeType": "ExpressionStatement", - "src": "6209:49:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1438, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "6269:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1442, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1440, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6282:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6274:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6274:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6269:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1443, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "6269:26:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1444, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1415, - "src": "6298:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "6269:36:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1446, - "nodeType": "ExpressionStatement", - "src": "6269:36:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1448, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1415, - "src": "6337:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1449, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6346:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1447, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "6315:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6315:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1451, - "nodeType": "ExpressionStatement", - "src": "6315:36:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1453, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "6400:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6400:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1455, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6424:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1456, - "name": "existingSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1423, - "src": "6442:14:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1457, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1415, - "src": "6470:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1452, - "name": "SetTokenNameUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "6367:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6367:120:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1459, - "nodeType": "EmitStatement", - "src": "6362:125:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6505:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1421, - "id": 1461, - "nodeType": "Return", - "src": "6498:11:3" - } - ] - }, - "documentation": null, - "id": 1463, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1418, - "modifierName": { - "argumentTypes": null, - "id": 1417, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "6095:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6095:9:3" - } - ], - "name": "modifySetSymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1416, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1413, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6029:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6029:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1415, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6051:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1414, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6051:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6019:52:3" - }, - "payable": false, - "returnParameters": { - "id": 1421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1420, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6122:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1419, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6122:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6121:6:3" - }, - "scope": 1576, - "src": "5995:521:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1471, - "nodeType": "Block", - "src": "6752:36:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1469, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "6769:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 1468, - "id": 1470, - "nodeType": "Return", - "src": "6762:19:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Getters\n////////////////////////////////////////////////////////", - "id": 1472, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetAddresses", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1464, - "nodeType": "ParameterList", - "parameters": [], - "src": "6690:2:3" - }, - "payable": false, - "returnParameters": { - "id": 1468, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1467, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1472, - "src": "6737:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1465, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6737:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1466, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6737:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6736:11:3" - }, - "scope": 1576, - "src": "6666:122:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1485, - "nodeType": "Block", - "src": "6915:71:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1479, - "name": "setAddressByHashedSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "6932:24:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1483, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1481, - "name": "_setSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "6967:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1480, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "6957:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6957:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6932:47:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 1478, - "id": 1484, - "nodeType": "Return", - "src": "6925:54:3" - } - ] - }, - "documentation": null, - "id": 1486, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetAddressBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1475, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1474, - "name": "_setSymbol", - "nodeType": "VariableDeclaration", - "scope": 1486, - "src": "6834:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1473, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6834:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6824:33:3" - }, - "payable": false, - "returnParameters": { - "id": 1478, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1477, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1486, - "src": "6902:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1476, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6902:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6901:9:3" - }, - "scope": 1576, - "src": "6794:192:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1494, - "nodeType": "Block", - "src": "7069:43:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1491, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "7086:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1492, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7086:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1490, - "id": 1493, - "nodeType": "Return", - "src": "7079:26:3" - } - ] - }, - "documentation": null, - "id": 1495, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1487, - "nodeType": "ParameterList", - "parameters": [], - "src": "7012:2:3" - }, - "payable": false, - "returnParameters": { - "id": 1490, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1489, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1495, - "src": "7059:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1488, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7059:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7058:6:3" - }, - "scope": 1576, - "src": "6992:120:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1508, - "nodeType": "Block", - "src": "7232:64:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1502, - "name": "setAddressByHashedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "7249:22:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1506, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1504, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1497, - "src": "7282:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1503, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "7272:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7272:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7249:40:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 1501, - "id": 1507, - "nodeType": "Return", - "src": "7242:47:3" - } - ] - }, - "documentation": null, - "id": 1509, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetAddressByName", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1498, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1497, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1509, - "src": "7156:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1496, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7156:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7146:28:3" - }, - "payable": false, - "returnParameters": { - "id": 1501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1500, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1509, - "src": "7219:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1499, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7219:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7218:9:3" - }, - "scope": 1576, - "src": "7118:178:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1534, - "nodeType": "Block", - "src": "7582:141:3", - "statements": [ - { - "assignments": [ - 1521 - ], - "declarations": [ - { - "constant": false, - "id": 1521, - "name": "set", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7592:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - }, - "typeName": { - "contractScope": null, - "id": 1520, - "name": "SetMetadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1024, - "src": "7592:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1525, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1522, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "7617:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1524, - "indexExpression": { - "argumentTypes": null, - "id": 1523, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "7622:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7617:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7592:35:3" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1526, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1521, - "src": "7654:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1527, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "setAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1019, - "src": "7654:14:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1528, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1521, - "src": "7678:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1529, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "7678:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1530, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1521, - "src": "7696:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1531, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "7696:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - } - ], - "id": 1532, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7644:72:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_string_memory_$_t_string_memory_$", - "typeString": "tuple(address,string memory,string memory)" - } - }, - "functionReturnParameters": 1519, - "id": 1533, - "nodeType": "Return", - "src": "7637:79:3" - } - ] - }, - "documentation": "@dev Gets a list of set metadata using a set address", - "id": 1535, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetMetadata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1511, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7409:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1510, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7409:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7399:28:3" - }, - "payable": false, - "returnParameters": { - "id": 1519, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1514, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7485:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7485:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1516, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7521:6:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1515, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7521:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1518, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7550:6:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1517, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7550:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7471:106:3" - }, - "scope": 1576, - "src": "7376:347:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1554, - "nodeType": "Block", - "src": "8004:85:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1544, - "name": "setAddressByHashedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "8014:22:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1548, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1546, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1537, - "src": "8047:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1545, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "8037:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8037:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8014:40:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1549, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1539, - "src": "8057:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8014:47:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1551, - "nodeType": "ExpressionStatement", - "src": "8014:47:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8078:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1543, - "id": 1553, - "nodeType": "Return", - "src": "8071:11:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Private Function\n////////////////////////////////////////////////////////", - "id": 1555, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "modifyAddressByName", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1537, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1555, - "src": "7921:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1536, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7921:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1539, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1555, - "src": "7943:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1538, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7943:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:50:3" - }, - "payable": false, - "returnParameters": { - "id": 1543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1555, - "src": "7994:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7994:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7993:6:3" - }, - "scope": 1576, - "src": "7883:206:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1574, - "nodeType": "Block", - "src": "8220:89:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1564, - "name": "setAddressByHashedSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "8230:24:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1568, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1566, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1557, - "src": "8265:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1565, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "8255:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8255:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8230:44:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1569, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1559, - "src": "8277:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8230:51:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1571, - "nodeType": "ExpressionStatement", - "src": "8230:51:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8298:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1563, - "id": 1573, - "nodeType": "Return", - "src": "8291:11:3" - } - ] - }, - "documentation": null, - "id": 1575, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "modifyAddressBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1557, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1575, - "src": "8135:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1556, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8135:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1559, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1575, - "src": "8159:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1558, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8159:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8125:52:3" - }, - "payable": false, - "returnParameters": { - "id": 1563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1562, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1575, - "src": "8210:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1561, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8210:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8209:6:3" - }, - "scope": 1576, - "src": "8095:214:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1577, - "src": "303:8008:3" - } - ], - "src": "0:8312:3" - }, - "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/SetTokenRegistry.sol", - "exportedSymbols": { - "SetTokenRegistry": [ - 1576 - ] - }, - "id": 1577, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1007, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1008, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 2242, - "src": "25:59:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetToken.sol", - "file": "./interfaces/ISetToken.sol", - "id": 1009, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 1622, - "src": "85:36:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/core/interfaces/ISetFactory.sol", - "file": "./interfaces/ISetFactory.sol", - "id": 1010, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 1593, - "src": "122:38:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/lib/AddressArrayUtils.sol", - "file": "../lib/AddressArrayUtils.sol", - "id": 1011, - "nodeType": "ImportDirective", - "scope": 1577, - "sourceUnit": 1688, - "src": "161:38:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1012, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2241, - "src": "332:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$2241", - "typeString": "contract Ownable" - } - }, - "id": 1013, - "nodeType": "InheritanceSpecifier", - "src": "332:7:3" - } - ], - "contractDependencies": [ - 2241 - ], - "contractKind": "contract", - "documentation": "@title {Set} Registry\n@author Felix Feng\n@dev Implementation of the {Set} registry.", - "fullyImplemented": true, - "id": 1576, - "linearizedBaseContracts": [ - 1576, - 2241 - ], - "name": "SetTokenRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1017, - "libraryName": { - "contractScope": null, - "id": 1014, - "name": "AddressArrayUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1687, - "src": "352:17:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressArrayUtils_$1687", - "typeString": "library AddressArrayUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "346:38:3", - "typeName": { - "baseType": { - "id": 1015, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "374:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1016, - "length": null, - "nodeType": "ArrayTypeName", - "src": "374:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - { - "canonicalName": "SetTokenRegistry.SetMetadata", - "id": 1024, - "members": [ - { - "constant": false, - "id": 1019, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1024, - "src": "572:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1018, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "572:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1021, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1024, - "src": "600:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1020, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "600:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1023, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1024, - "src": "621:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1022, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "621:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "SetMetadata", - "nodeType": "StructDefinition", - "scope": 1576, - "src": "543:98:3", - "visibility": "public" - }, - { - "constant": false, - "id": 1026, - "name": "setFactory", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "798:22:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - }, - "typeName": { - "contractScope": null, - "id": 1025, - "name": "ISetFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1592, - "src": "798:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1029, - "name": "setAddresses", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "826:29:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1027, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "826:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1028, - "length": null, - "nodeType": "ArrayTypeName", - "src": "826:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1033, - "name": "sets", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "861:44:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata)" - }, - "typeName": { - "id": 1032, - "keyType": { - "id": 1030, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "870:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "861:32:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata)" - }, - "valueType": { - "contractScope": null, - "id": 1031, - "name": "SetMetadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1024, - "src": "881:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1037, - "name": "setAddressByHashedSymbol", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "911:60:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "typeName": { - "id": 1036, - "keyType": { - "id": 1034, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "920:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "911:28:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "valueType": { - "id": 1035, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "931:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1041, - "name": "setAddressByHashedName", - "nodeType": "VariableDeclaration", - "scope": 1576, - "src": "977:58:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "typeName": { - "id": 1040, - "keyType": { - "id": 1038, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "986:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "977:28:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "valueType": { - "id": 1039, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "997:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "////////////////////////////////////////////////////////\n Events\n////////////////////////////////////////////////////////", - "id": 1051, - "name": "SetTokenCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1043, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1217:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1042, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1217:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1045, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1249:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1249:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1047, - "indexed": false, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1285:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1046, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1285:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1049, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "1306:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1048, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1306:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:118:3" - }, - "src": "1186:140:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1061, - "name": "SetTokenAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 1060, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1053, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1360:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1360:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1055, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1392:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1054, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1392:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1057, - "indexed": false, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1428:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1056, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1428:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1059, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1449:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1058, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1449:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1350:118:3" - }, - "src": "1331:138:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1071, - "name": "SetTokenRemoved", - "nodeType": "EventDefinition", - "parameters": { - "id": 1070, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1063, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1505:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1062, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1505:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1065, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1537:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1064, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1537:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1067, - "indexed": false, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1573:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1066, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1573:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1069, - "indexed": false, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1071, - "src": "1594:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1068, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1594:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1495:118:3" - }, - "src": "1474:140:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1081, - "name": "SetTokenNameUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1080, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1073, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1654:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1072, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1654:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1075, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1686:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1074, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1686:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1077, - "indexed": false, - "name": "oldName", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1722:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1076, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1722:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1079, - "indexed": false, - "name": "newName", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "1746:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1078, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1746:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1644:122:3" - }, - "src": "1619:148:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1091, - "name": "SetTokenSymbolUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1083, - "indexed": true, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1809:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1082, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1809:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1085, - "indexed": true, - "name": "setAddress", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1841:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1084, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1841:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1087, - "indexed": false, - "name": "oldSymbol", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1877:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1086, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1877:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "indexed": false, - "name": "newSymbol", - "nodeType": "VariableDeclaration", - "scope": 1091, - "src": "1903:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1088, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1903:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1799:126:3" - }, - "src": "1772:154:3" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "2119:91:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1096, - "name": "setAddressByHashedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "2137:22:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1100, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1098, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1093, - "src": "2170:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1097, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "2160:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2160:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2137:40:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2189:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2181:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2181:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2137:54:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1095, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2129:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2129:63:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1106, - "nodeType": "ExpressionStatement", - "src": "2129:63:3" - }, - { - "id": 1107, - "nodeType": "PlaceholderStatement", - "src": "2202:1:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Modifiers\n////////////////////////////////////////////////////////", - "id": 1109, - "name": "nameDoesNotExist", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1094, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1093, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "2105:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1092, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2105:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2104:14:3" - }, - "src": "2079:131:3", - "visibility": "internal" - }, - { - "body": { - "id": 1126, - "nodeType": "Block", - "src": "2260:95:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1114, - "name": "setAddressByHashedSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "2278:24:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1118, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1116, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "2313:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1115, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "2303:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2303:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2278:44:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2334:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2326:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2326:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2278:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1113, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2270:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2270:67:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1124, - "nodeType": "ExpressionStatement", - "src": "2270:67:3" - }, - { - "id": 1125, - "nodeType": "PlaceholderStatement", - "src": "2347:1:3" - } - ] - }, - "documentation": null, - "id": 1127, - "name": "symbolDoesNotExist", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "2244:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1110, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2244:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2243:16:3" - }, - "src": "2216:139:3", - "visibility": "internal" - }, - { - "body": { - "id": 1143, - "nodeType": "Block", - "src": "2407:79:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1132, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "2425:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1134, - "indexExpression": { - "argumentTypes": null, - "id": 1133, - "name": "_setAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "2430:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2425:17:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1135, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "setAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1019, - "src": "2425:28:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2465:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2457:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2457:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2425:42:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1131, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "2417:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2417:51:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1141, - "nodeType": "ExpressionStatement", - "src": "2417:51:3" - }, - { - "id": 1142, - "nodeType": "PlaceholderStatement", - "src": "2478:1:3" - } - ] - }, - "documentation": null, - "id": 1144, - "name": "setDoesNotExist", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1129, - "name": "_setAddress", - "nodeType": "VariableDeclaration", - "scope": 1144, - "src": "2386:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2386:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2385:21:3" - }, - "src": "2361:125:3", - "visibility": "internal" - }, - { - "body": { - "id": 1153, - "nodeType": "Block", - "src": "2606:41:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1149, - "name": "setFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "2616:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1150, - "name": "_setFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1146, - "src": "2629:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "src": "2616:24:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "id": 1152, - "nodeType": "ExpressionStatement", - "src": "2616:24:3" - } - ] - }, - "documentation": "@dev Constructor Function for the {Set} registry", - "id": 1154, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1146, - "name": "_setFactory", - "nodeType": "VariableDeclaration", - "scope": 1154, - "src": "2574:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - }, - "typeName": { - "contractScope": null, - "id": 1145, - "name": "ISetFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1592, - "src": "2574:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2573:25:3" - }, - "payable": false, - "returnParameters": { - "id": 1148, - "nodeType": "ParameterList", - "parameters": [], - "src": "2606:0:3" - }, - "scope": 1576, - "src": "2562:85:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1234, - "nodeType": "Block", - "src": "3141:807:3", - "statements": [ - { - "assignments": [ - 1178 - ], - "declarations": [ - { - "constant": false, - "id": 1178, - "name": "newSetToken", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "3188:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - }, - "typeName": { - "contractScope": null, - "id": 1177, - "name": "ISetToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1621, - "src": "3188:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1187, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1182, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "3273:7:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1183, - "name": "_units", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "3298:6:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1184, - "name": "_naturalUnit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "3322:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1180, - "name": "setFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "3235:10:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetFactory_$1592", - "typeString": "contract ISetFactory" - } - }, - "id": 1181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createSet", - "nodeType": "MemberAccess", - "referencedDeclaration": 1591, - "src": "3235:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_address_$", - "typeString": "function (address[] memory,uint256[] memory,uint256) external returns (address)" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3235:113:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1179, - "name": "ISetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "3212:9:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISetToken_$1621_$", - "typeString": "type(contract ISetToken)" - } - }, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3212:146:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3188:170:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1192, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3439:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1191, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3431:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3431:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "3413:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3413:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 1194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3413:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1195, - "nodeType": "ExpressionStatement", - "src": "3413:39:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1196, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "3509:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1200, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1198, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3522:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1197, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3514:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3514:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3509:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1203, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3584:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3576:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3576:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1205, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3616:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1206, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3643:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 1201, - "name": "SetMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "3538:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SetMetadata_$1024_storage_ptr_$", - "typeString": "type(struct SetTokenRegistry.SetMetadata storage pointer)" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "setAddress", - "name", - "symbol" - ], - "nodeType": "FunctionCall", - "src": "3538:123:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "src": "3509:152:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1209, - "nodeType": "ExpressionStatement", - "src": "3509:152:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1211, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3692:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1213, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3707:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1212, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3699:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3699:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1210, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "3672:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3672:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1216, - "nodeType": "ExpressionStatement", - "src": "3672:48:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1218, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3752:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1220, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3769:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - ], - "id": 1219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3761:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3761:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1217, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3730:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3730:52:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1223, - "nodeType": "ExpressionStatement", - "src": "3730:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1225, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3827:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3827:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1227, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3851:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - { - "argumentTypes": null, - "id": 1228, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3876:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1229, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3895:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1224, - "name": "SetTokenCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "3798:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3798:114:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1231, - "nodeType": "EmitStatement", - "src": "3793:119:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1232, - "name": "newSetToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "3930:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISetToken_$1621", - "typeString": "contract ISetToken" - } - }, - "functionReturnParameters": 1176, - "id": 1233, - "nodeType": "Return", - "src": "3923:18:3" - } - ] - }, - "documentation": "@dev Function creates a new {Set} and add to registry", - "id": 1235, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1169, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3069:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1170, - "modifierName": { - "argumentTypes": null, - "id": 1168, - "name": "nameDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "3052:16:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3052:23:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "3103:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1173, - "modifierName": { - "argumentTypes": null, - "id": 1171, - "name": "symbolDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1127, - "src": "3084:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3084:27:3" - } - ], - "name": "create", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1167, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1157, - "name": "_tokens", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2909:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2909:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1156, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2909:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1160, - "name": "_units", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2936:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1158, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2936:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1159, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2936:6:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1162, - "name": "_naturalUnit", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2959:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1161, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2959:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1164, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2986:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1163, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2986:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1166, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "3008:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1165, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3008:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2899:129:3" - }, - "payable": false, - "returnParameters": { - "id": 1176, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1175, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "3128:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1174, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3128:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3127:9:3" - }, - "scope": 1576, - "src": "2884:1064:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1293, - "nodeType": "Block", - "src": "4243:390:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1260, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4271:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1257, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "4253:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4253:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4253:23:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1262, - "nodeType": "ExpressionStatement", - "src": "4253:23:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1263, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "4286:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1265, - "indexExpression": { - "argumentTypes": null, - "id": 1264, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4291:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4286:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1267, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4337:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1268, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4361:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1269, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4388:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 1266, - "name": "SetMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1024, - "src": "4299:11:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SetMetadata_$1024_storage_ptr_$", - "typeString": "type(struct SetTokenRegistry.SetMetadata storage pointer)" - } - }, - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "setAddress", - "name", - "symbol" - ], - "nodeType": "FunctionCall", - "src": "4299:107:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "src": "4286:120:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1272, - "nodeType": "ExpressionStatement", - "src": "4286:120:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1274, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4437:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1275, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4444:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1273, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "4417:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4417:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1277, - "nodeType": "ExpressionStatement", - "src": "4417:32:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1279, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4481:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1280, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4490:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1278, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "4459:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4459:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "4459:36:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1284, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4538:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4538:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1286, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4562:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1287, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4568:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1288, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4587:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1283, - "name": "SetTokenAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "4511:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4511:93:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1290, - "nodeType": "EmitStatement", - "src": "4506:98:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4622:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1256, - "id": 1292, - "nodeType": "Return", - "src": "4615:11:3" - } - ] - }, - "documentation": "@dev Function adds an existing {Set} to the registry", - "id": 1294, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1244, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4125:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1245, - "modifierName": { - "argumentTypes": null, - "id": 1243, - "name": "nameDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "4108:16:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4108:23:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1247, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4159:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1248, - "modifierName": { - "argumentTypes": null, - "id": 1246, - "name": "symbolDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1127, - "src": "4140:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", - "typeString": "modifier (string memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4140:27:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1250, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4192:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1251, - "modifierName": { - "argumentTypes": null, - "id": 1249, - "name": "setDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1144, - "src": "4176:15:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4176:21:3" - }, - { - "arguments": null, - "id": 1253, - "modifierName": { - "argumentTypes": null, - "id": 1252, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "4206:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4206:9:3" - } - ], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1242, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1237, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4041:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1236, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4041:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1239, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4055:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1238, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4055:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1241, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4069:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1240, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4069:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4040:44:3" - }, - "payable": false, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1255, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4233:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1254, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4233:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4232:6:3" - }, - "scope": 1576, - "src": "4028:605:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1358, - "nodeType": "Block", - "src": "4820:483:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1306, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "4838:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1307, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "4846:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1309, - "indexExpression": { - "argumentTypes": null, - "id": 1308, - "name": "_setAddressIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "4859:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4846:30:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4838:38:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1305, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2817, - 2818 - ], - "referencedDeclaration": 2817, - "src": "4830:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4830:47:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1312, - "nodeType": "ExpressionStatement", - "src": "4830:47:3" - }, - { - "assignments": [ - 1314 - ], - "declarations": [ - { - "constant": false, - "id": 1314, - "name": "set", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4888:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - }, - "typeName": { - "contractScope": null, - "id": 1313, - "name": "SetMetadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1024, - "src": "4888:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1318, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1315, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "4913:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1317, - "indexExpression": { - "argumentTypes": null, - "id": 1316, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "4918:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4913:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4888:35:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1320, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4968:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4968:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1322, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "4992:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1323, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5010:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1324, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5010:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1325, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5032:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "5032:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - ], - "id": 1319, - "name": "SetTokenRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "4939:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4939:113:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1328, - "nodeType": "EmitStatement", - "src": "4934:118:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1330, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5083:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1331, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5083:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5101:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5093:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5093:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1329, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "5063:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5063:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1336, - "nodeType": "ExpressionStatement", - "src": "5063:41:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1338, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5136:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1339, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "5136:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5156:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5148:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5148:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1337, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "5114:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5114:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1344, - "nodeType": "ExpressionStatement", - "src": "5114:45:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "5202:17:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1345, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "5209:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1347, - "indexExpression": { - "argumentTypes": null, - "id": 1346, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "5214:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5209:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1349, - "nodeType": "ExpressionStatement", - "src": "5202:17:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1353, - "name": "_setAddressIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "5257:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1350, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "5230:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeByIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 1686, - "src": "5230:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_array$_t_address_$dyn_storage_ptr_$", - "typeString": "function (address[] storage pointer,uint256) returns (uint256)" - } - }, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5230:44:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "5230:44:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5292:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1304, - "id": 1357, - "nodeType": "Return", - "src": "5285:11:3" - } - ] - }, - "documentation": "@dev Function remove a {Set} from the registry", - "id": 1359, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1301, - "modifierName": { - "argumentTypes": null, - "id": 1300, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "4783:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4783:9:3" - } - ], - "name": "remove", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1296, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4723:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1295, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4723:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1298, - "name": "_setAddressIndex", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4737:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1297, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4737:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4722:37:3" - }, - "payable": false, - "returnParameters": { - "id": 1304, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1303, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1359, - "src": "4810:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1302, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4810:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4809:6:3" - }, - "scope": 1576, - "src": "4707:596:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1410, - "nodeType": "Block", - "src": "5625:364:3", - "statements": [ - { - "assignments": [ - 1371 - ], - "declarations": [ - { - "constant": false, - "id": 1371, - "name": "existingName", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5635:26:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1370, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5635:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1378, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1372, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "5664:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1376, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1374, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5677:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5669:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5669:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5664:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1377, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5664:24:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5635:53:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1380, - "name": "existingName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "5718:12:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1382, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5740:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5732:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5732:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1379, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "5698:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5698:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1385, - "nodeType": "ExpressionStatement", - "src": "5698:45:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1386, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "5754:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1390, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1388, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5767:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5759:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5759:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5754:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1391, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "5754:24:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1392, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "5781:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "5754:32:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1394, - "nodeType": "ExpressionStatement", - "src": "5754:32:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1396, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "5816:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1397, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5823:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1395, - "name": "modifyAddressByName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "5796:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5796:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1399, - "nodeType": "ExpressionStatement", - "src": "5796:32:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1401, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "5877:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5877:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1403, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1361, - "src": "5901:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1404, - "name": "existingName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "5919:12:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1405, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "5945:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1400, - "name": "SetTokenNameUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "5844:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5844:116:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1407, - "nodeType": "EmitStatement", - "src": "5839:121:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5978:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1369, - "id": 1409, - "nodeType": "Return", - "src": "5971:11:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Setters / Modify to avoid confusion with {Set}\n////////////////////////////////////////////////////////", - "id": 1411, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1366, - "modifierName": { - "argumentTypes": null, - "id": 1365, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "5588:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5588:9:3" - } - ], - "name": "modifySetName", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1361, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5524:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1360, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5524:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1363, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5546:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1362, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5546:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5514:50:3" - }, - "payable": false, - "returnParameters": { - "id": 1369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1368, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1411, - "src": "5615:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1367, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5615:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5614:6:3" - }, - "scope": 1576, - "src": "5492:497:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1462, - "nodeType": "Block", - "src": "6132:384:3", - "statements": [ - { - "assignments": [ - 1423 - ], - "declarations": [ - { - "constant": false, - "id": 1423, - "name": "existingSymbol", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6142:28:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1422, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6142:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1430, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1424, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "6173:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1428, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1426, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6186:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6178:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6178:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6173:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "6173:26:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6142:57:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1432, - "name": "existingSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1423, - "src": "6231:14:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1434, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6255:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1433, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6247:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6247:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1431, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "6209:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6209:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1437, - "nodeType": "ExpressionStatement", - "src": "6209:49:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1438, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "6269:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1442, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1440, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6282:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6274:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6274:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6269:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "id": 1443, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "6269:26:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1444, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1415, - "src": "6298:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "6269:36:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1446, - "nodeType": "ExpressionStatement", - "src": "6269:36:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1448, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1415, - "src": "6337:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1449, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6346:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1447, - "name": "modifyAddressBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "6315:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (string memory,address) returns (bool)" - } - }, - "id": 1450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6315:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1451, - "nodeType": "ExpressionStatement", - "src": "6315:36:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1453, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "6400:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6400:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1455, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "6424:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1456, - "name": "existingSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1423, - "src": "6442:14:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1457, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1415, - "src": "6470:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1452, - "name": "SetTokenNameUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "6367:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,string memory,string memory)" - } - }, - "id": 1458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6367:120:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1459, - "nodeType": "EmitStatement", - "src": "6362:125:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6505:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1421, - "id": 1461, - "nodeType": "Return", - "src": "6498:11:3" - } - ] - }, - "documentation": null, - "id": 1463, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1418, - "modifierName": { - "argumentTypes": null, - "id": 1417, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2189, - "src": "6095:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6095:9:3" - } - ], - "name": "modifySetSymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1416, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1413, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6029:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6029:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1415, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6051:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1414, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6051:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6019:52:3" - }, - "payable": false, - "returnParameters": { - "id": 1421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1420, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "6122:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1419, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6122:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6121:6:3" - }, - "scope": 1576, - "src": "5995:521:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1471, - "nodeType": "Block", - "src": "6752:36:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1469, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "6769:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 1468, - "id": 1470, - "nodeType": "Return", - "src": "6762:19:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Getters\n////////////////////////////////////////////////////////", - "id": 1472, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetAddresses", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1464, - "nodeType": "ParameterList", - "parameters": [], - "src": "6690:2:3" - }, - "payable": false, - "returnParameters": { - "id": 1468, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1467, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1472, - "src": "6737:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1465, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6737:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1466, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6737:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6736:11:3" - }, - "scope": 1576, - "src": "6666:122:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1485, - "nodeType": "Block", - "src": "6915:71:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1479, - "name": "setAddressByHashedSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "6932:24:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1483, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1481, - "name": "_setSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "6967:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1480, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "6957:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6957:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6932:47:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 1478, - "id": 1484, - "nodeType": "Return", - "src": "6925:54:3" - } - ] - }, - "documentation": null, - "id": 1486, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetAddressBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1475, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1474, - "name": "_setSymbol", - "nodeType": "VariableDeclaration", - "scope": 1486, - "src": "6834:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1473, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6834:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6824:33:3" - }, - "payable": false, - "returnParameters": { - "id": 1478, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1477, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1486, - "src": "6902:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1476, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6902:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6901:9:3" - }, - "scope": 1576, - "src": "6794:192:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1494, - "nodeType": "Block", - "src": "7069:43:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1491, - "name": "setAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "7086:12:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1492, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7086:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1490, - "id": 1493, - "nodeType": "Return", - "src": "7079:26:3" - } - ] - }, - "documentation": null, - "id": 1495, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1487, - "nodeType": "ParameterList", - "parameters": [], - "src": "7012:2:3" - }, - "payable": false, - "returnParameters": { - "id": 1490, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1489, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1495, - "src": "7059:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1488, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7059:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7058:6:3" - }, - "scope": 1576, - "src": "6992:120:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1508, - "nodeType": "Block", - "src": "7232:64:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1502, - "name": "setAddressByHashedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "7249:22:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1506, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1504, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1497, - "src": "7282:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1503, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "7272:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7272:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7249:40:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 1501, - "id": 1507, - "nodeType": "Return", - "src": "7242:47:3" - } - ] - }, - "documentation": null, - "id": 1509, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetAddressByName", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1498, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1497, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1509, - "src": "7156:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1496, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7156:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7146:28:3" - }, - "payable": false, - "returnParameters": { - "id": 1501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1500, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1509, - "src": "7219:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1499, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7219:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7218:9:3" - }, - "scope": 1576, - "src": "7118:178:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1534, - "nodeType": "Block", - "src": "7582:141:3", - "statements": [ - { - "assignments": [ - 1521 - ], - "declarations": [ - { - "constant": false, - "id": 1521, - "name": "set", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7592:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - }, - "typeName": { - "contractScope": null, - "id": 1520, - "name": "SetMetadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1024, - "src": "7592:11:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1525, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1522, - "name": "sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "7617:4:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_SetMetadata_$1024_storage_$", - "typeString": "mapping(address => struct SetTokenRegistry.SetMetadata storage ref)" - } - }, - "id": 1524, - "indexExpression": { - "argumentTypes": null, - "id": 1523, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "7622:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7617:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_storage", - "typeString": "struct SetTokenRegistry.SetMetadata storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7592:35:3" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1526, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1521, - "src": "7654:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1527, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "setAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1019, - "src": "7654:14:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1528, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1521, - "src": "7678:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1529, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1021, - "src": "7678:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1530, - "name": "set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1521, - "src": "7696:3:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetMetadata_$1024_memory_ptr", - "typeString": "struct SetTokenRegistry.SetMetadata memory" - } - }, - "id": 1531, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1023, - "src": "7696:10:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - } - ], - "id": 1532, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7644:72:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_string_memory_$_t_string_memory_$", - "typeString": "tuple(address,string memory,string memory)" - } - }, - "functionReturnParameters": 1519, - "id": 1533, - "nodeType": "Return", - "src": "7637:79:3" - } - ] - }, - "documentation": "@dev Gets a list of set metadata using a set address", - "id": 1535, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSetMetadata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1511, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7409:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1510, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7409:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7399:28:3" - }, - "payable": false, - "returnParameters": { - "id": 1519, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1514, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7485:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7485:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1516, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7521:6:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1515, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7521:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1518, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "7550:6:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1517, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7550:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7471:106:3" - }, - "scope": 1576, - "src": "7376:347:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1554, - "nodeType": "Block", - "src": "8004:85:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1544, - "name": "setAddressByHashedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "8014:22:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1548, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1546, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1537, - "src": "8047:5:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1545, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "8037:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8037:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8014:40:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1549, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1539, - "src": "8057:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8014:47:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1551, - "nodeType": "ExpressionStatement", - "src": "8014:47:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8078:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1543, - "id": 1553, - "nodeType": "Return", - "src": "8071:11:3" - } - ] - }, - "documentation": "////////////////////////////////////////////////////////\n Private Function\n////////////////////////////////////////////////////////", - "id": 1555, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "modifyAddressByName", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1537, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1555, - "src": "7921:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1536, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7921:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1539, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1555, - "src": "7943:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1538, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7943:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:50:3" - }, - "payable": false, - "returnParameters": { - "id": 1543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1555, - "src": "7994:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7994:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7993:6:3" - }, - "scope": 1576, - "src": "7883:206:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1574, - "nodeType": "Block", - "src": "8220:89:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1564, - "name": "setAddressByHashedSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "8230:24:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 1568, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1566, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1557, - "src": "8265:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1565, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "8255:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8255:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8230:44:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1569, - "name": "_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1559, - "src": "8277:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8230:51:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1571, - "nodeType": "ExpressionStatement", - "src": "8230:51:3" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8298:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1563, - "id": 1573, - "nodeType": "Return", - "src": "8291:11:3" - } - ] - }, - "documentation": null, - "id": 1575, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "modifyAddressBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1557, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1575, - "src": "8135:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1556, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8135:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1559, - "name": "_set", - "nodeType": "VariableDeclaration", - "scope": 1575, - "src": "8159:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1558, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8159:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8125:52:3" - }, - "payable": false, - "returnParameters": { - "id": 1563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1562, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1575, - "src": "8210:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1561, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8210:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8209:6:3" - }, - "scope": 1576, - "src": "8095:214:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1577, - "src": "303:8008:3" - } - ], - "src": "0:8312:3" - }, - "compiler": { - "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.592Z" -} \ No newline at end of file diff --git a/artifacts/ts/StandardToken.ts b/artifacts/ts/StandardToken.ts index a6bd594a4..728a6e17f 100644 --- a/artifacts/ts/StandardToken.ts +++ b/artifacts/ts/StandardToken.ts @@ -222,24 +222,24 @@ export const StandardToken = "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611037806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806366188463146101a857806370a082311461020d578063a9059cbb14610264578063d73dd623146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d610497565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104a1565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061085b565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aec565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b34565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d53565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f4f565b6040518082815260200191505060405180910390f35b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156104de57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561052b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156105b657600080fd5b610607826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061069a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061076b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561096c576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a00565b61097f8382610fd690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b7157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610bbe57600080fd5b610c0f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ca2826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000610de482600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000828211151515610fe457fe5b818303905092915050565b6000818301905082811015151561100257fe5b809050929150505600a165627a7a72305820efdbd7a4431781a7f3d329633858f76e41a4d1eb455d2bc46ba11deb405c78e10029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806366188463146101a857806370a082311461020d578063a9059cbb14610264578063d73dd623146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d610497565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104a1565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061085b565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aec565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b34565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d53565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f4f565b6040518082815260200191505060405180910390f35b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156104de57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561052b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156105b657600080fd5b610607826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061069a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061076b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561096c576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a00565b61097f8382610fd690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b7157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610bbe57600080fd5b610c0f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ca2826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000610de482600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000828211151515610fe457fe5b818303905092915050565b6000818301905082811015151561100257fe5b809050929150505600a165627a7a72305820efdbd7a4431781a7f3d329633858f76e41a4d1eb455d2bc46ba11deb405c78e10029", - "sourceMap": "344:3785:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:3785:17;;;;;;;", - "deployedSourceMap": "344:3785:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:12;;;;;;;;;;;;;;;;;;;;;;;736:470:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:425;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;371:83:12:-;415:7;437:12;;430:19;;371:83;:::o;736:470:17:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;3701:425::-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:12:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;608:321::-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:17:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1042:110:10:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "bytecode": "0x608060405234801561001057600080fd5b50611037806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806366188463146101a857806370a082311461020d578063a9059cbb14610264578063d73dd623146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d610497565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104a1565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061085b565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aec565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b34565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d53565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f4f565b6040518082815260200191505060405180910390f35b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156104de57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561052b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156105b657600080fd5b610607826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061069a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061076b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561096c576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a00565b61097f8382610fd690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b7157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610bbe57600080fd5b610c0f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ca2826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000610de482600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000828211151515610fe457fe5b818303905092915050565b6000818301905082811015151561100257fe5b809050929150505600a165627a7a723058202b02b1d4dd0f9af98c2d523f3ca9c91728ecd3d099b565b668615704684ad7b60029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806366188463146101a857806370a082311461020d578063a9059cbb14610264578063d73dd623146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d610497565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104a1565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061085b565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aec565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b34565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d53565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f4f565b6040518082815260200191505060405180910390f35b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156104de57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561052b57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156105b657600080fd5b610607826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061069a826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061076b82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561096c576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a00565b61097f8382610fd690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b7157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610bbe57600080fd5b610c0f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ca2826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000610de482600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fef90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000828211151515610fe457fe5b818303905092915050565b6000818301905082811015151561100257fe5b809050929150505600a165627a7a723058202b02b1d4dd0f9af98c2d523f3ca9c91728ecd3d099b565b668615704684ad7b60029", + "sourceMap": "344:3785:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:3785:10;;;;;;;", + "deployedSourceMap": "344:3785:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:83:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:83:6;;;;;;;;;;;;;;;;;;;;;;;736:470:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3701:425;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;371:83:6:-;415:7;437:12;;430:19;;371:83;:::o;736:470:10:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;3701:425::-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:6:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;608:321::-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:10:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1042:110:4:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", "source": "pragma solidity ^0.4.23;\n\nimport \"./BasicToken.sol\";\nimport \"./ERC20.sol\";\n\n\n/**\n * @title Standard ERC20 token\n *\n * @dev Implementation of the basic standard token.\n * @dev https://github.com/ethereum/EIPs/issues/20\n * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\n */\ncontract StandardToken is ERC20, BasicToken {\n\n mapping (address => mapping (address => uint256)) internal allowed;\n\n\n /**\n * @dev Transfer tokens from one address to another\n * @param _from address The address which you want to send tokens from\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transferFrom(\n address _from,\n address _to,\n uint256 _value\n )\n public\n returns (bool)\n {\n require(_to != address(0));\n require(_value <= balances[_from]);\n require(_value <= allowed[_from][msg.sender]);\n\n balances[_from] = balances[_from].sub(_value);\n balances[_to] = balances[_to].add(_value);\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n emit Transfer(_from, _to, _value);\n return true;\n }\n\n /**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n *\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param _spender The address which will spend the funds.\n * @param _value The amount of tokens to be spent.\n */\n function approve(address _spender, uint256 _value) public returns (bool) {\n allowed[msg.sender][_spender] = _value;\n emit Approval(msg.sender, _spender, _value);\n return true;\n }\n\n /**\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\n * @param _owner address The address which owns the funds.\n * @param _spender address The address which will spend the funds.\n * @return A uint256 specifying the amount of tokens still available for the spender.\n */\n function allowance(\n address _owner,\n address _spender\n )\n public\n view\n returns (uint256)\n {\n return allowed[_owner][_spender];\n }\n\n /**\n * @dev Increase the amount of tokens that an owner allowed to a spender.\n *\n * approve should be called when allowed[_spender] == 0. To increment\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param _spender The address which will spend the funds.\n * @param _addedValue The amount of tokens to increase the allowance by.\n */\n function increaseApproval(\n address _spender,\n uint _addedValue\n )\n public\n returns (bool)\n {\n allowed[msg.sender][_spender] = (\n allowed[msg.sender][_spender].add(_addedValue));\n emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n return true;\n }\n\n /**\n * @dev Decrease the amount of tokens that an owner allowed to a spender.\n *\n * approve should be called when allowed[_spender] == 0. To decrement\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param _spender The address which will spend the funds.\n * @param _subtractedValue The amount of tokens to decrease the allowance by.\n */\n function decreaseApproval(\n address _spender,\n uint _subtractedValue\n )\n public\n returns (bool)\n {\n uint oldValue = allowed[msg.sender][_spender];\n if (_subtractedValue > oldValue) {\n allowed[msg.sender][_spender] = 0;\n } else {\n allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);\n }\n emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);\n return true;\n }\n\n}\n", "sourcePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "ast": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "exportedSymbols": { "StandardToken": [ - 2799 + 1421 ] }, - "id": 2800, + "id": 1422, "nodeType": "SourceUnit", "nodes": [ { - "id": 2554, + "id": 1176, "literals": [ "solidity", "^", @@ -247,27 +247,27 @@ export const StandardToken = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:17" + "src": "0:24:10" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/BasicToken.sol", "file": "./BasicToken.sol", - "id": 2555, + "id": 1177, "nodeType": "ImportDirective", - "scope": 2800, - "sourceUnit": 2338, - "src": "26:26:17", + "scope": 1422, + "sourceUnit": 1066, + "src": "26:26:10", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "./ERC20.sol", - "id": 2556, + "id": 1178, "nodeType": "ImportDirective", - "scope": 2800, - "sourceUnit": 2415, - "src": "53:21:17", + "scope": 1422, + "sourceUnit": 1143, + "src": "53:21:10", "symbolAliases": [], "unitAlias": "" }, @@ -277,64 +277,64 @@ export const StandardToken = "arguments": null, "baseName": { "contractScope": null, - "id": 2557, + "id": 1179, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "370:5:17", + "referencedDeclaration": 1142, + "src": "370:5:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", + "typeIdentifier": "t_contract$_ERC20_$1142", "typeString": "contract ERC20" } }, - "id": 2558, + "id": 1180, "nodeType": "InheritanceSpecifier", - "src": "370:5:17" + "src": "370:5:10" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2559, + "id": 1181, "name": "BasicToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2337, - "src": "377:10:17", + "referencedDeclaration": 1065, + "src": "377:10:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_BasicToken_$2337", + "typeIdentifier": "t_contract$_BasicToken_$1065", "typeString": "contract BasicToken" } }, - "id": 2560, + "id": 1182, "nodeType": "InheritanceSpecifier", - "src": "377:10:17" + "src": "377:10:10" } ], "contractDependencies": [ - 2337, - 2414, - 2446 + 1065, + 1142, + 1174 ], "contractKind": "contract", "documentation": "@title Standard ERC20 token\n * @dev Implementation of the basic standard token.\n@dev https://github.com/ethereum/EIPs/issues/20\n@dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol", "fullyImplemented": true, - "id": 2799, + "id": 1421, "linearizedBaseContracts": [ - 2799, - 2337, - 2414, - 2446 + 1421, + 1065, + 1142, + 1174 ], "name": "StandardToken", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2566, + "id": 1188, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 2799, - "src": "393:66:17", + "scope": 1421, + "src": "393:66:10", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -342,46 +342,46 @@ export const StandardToken = "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 2565, + "id": 1187, "keyType": { - "id": 2561, + "id": 1183, "name": "address", "nodeType": "ElementaryTypeName", - "src": "402:7:17", + "src": "402:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "393:49:17", + "src": "393:49:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 2564, + "id": 1186, "keyType": { - "id": 2562, + "id": 1184, "name": "address", "nodeType": "ElementaryTypeName", - "src": "422:7:17", + "src": "422:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "413:28:17", + "src": "413:28:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 2563, + "id": 1185, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "433:7:17", + "src": "433:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -394,9 +394,9 @@ export const StandardToken = }, { "body": { - "id": 2651, + "id": 1273, "nodeType": "Block", - "src": "850:356:17", + "src": "850:356:10", "statements": [ { "expression": { @@ -408,19 +408,19 @@ export const StandardToken = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2582, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2578, + "id": 1200, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "864:3:17", + "referencedDeclaration": 1192, + "src": "864:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -434,14 +434,14 @@ export const StandardToken = { "argumentTypes": null, "hexValue": "30", - "id": 2580, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "879:1:17", + "src": "879:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -457,20 +457,20 @@ export const StandardToken = "typeString": "int_const 0" } ], - "id": 2579, + "id": 1201, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "871:7:17", + "src": "871:7:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2581, + "id": 1203, "isConstant": false, "isLValue": false, "isPure": true, @@ -478,13 +478,13 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "871:10:17", + "src": "871:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "864:17:17", + "src": "864:17:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -498,21 +498,21 @@ export const StandardToken = "typeString": "bool" } ], - "id": 2577, + "id": 1199, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "856:7:17", + "referencedDeclaration": 1439, + "src": "856:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2583, + "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, @@ -520,15 +520,15 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "856:26:17", + "src": "856:26:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2584, + "id": 1206, "nodeType": "ExpressionStatement", - "src": "856:26:17" + "src": "856:26:10" }, { "expression": { @@ -540,19 +540,19 @@ export const StandardToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2590, + "id": 1212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2586, + "id": 1208, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "896:6:17", + "referencedDeclaration": 1194, + "src": "896:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -564,26 +564,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2587, + "id": 1209, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "906:8:17", + "referencedDeclaration": 982, + "src": "906:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2589, + "id": 1211, "indexExpression": { "argumentTypes": null, - "id": 2588, + "id": 1210, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "915:5:17", + "referencedDeclaration": 1190, + "src": "915:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -594,13 +594,13 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "906:15:17", + "src": "906:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "896:25:17", + "src": "896:25:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -614,21 +614,21 @@ export const StandardToken = "typeString": "bool" } ], - "id": 2585, + "id": 1207, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "888:7:17", + "referencedDeclaration": 1439, + "src": "888:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2591, + "id": 1213, "isConstant": false, "isLValue": false, "isPure": false, @@ -636,15 +636,15 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "888:34:17", + "src": "888:34:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2592, + "id": 1214, "nodeType": "ExpressionStatement", - "src": "888:34:17" + "src": "888:34:10" }, { "expression": { @@ -656,19 +656,19 @@ export const StandardToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2601, + "id": 1223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2594, + "id": 1216, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "936:6:17", + "referencedDeclaration": 1194, + "src": "936:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -682,26 +682,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2595, + "id": 1217, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "946:7:17", + "referencedDeclaration": 1188, + "src": "946:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2597, + "id": 1219, "indexExpression": { "argumentTypes": null, - "id": 2596, + "id": 1218, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "954:5:17", + "referencedDeclaration": 1190, + "src": "954:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -712,29 +712,29 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "946:14:17", + "src": "946:14:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2600, + "id": 1222, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2598, + "id": 1220, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "961:3:17", + "referencedDeclaration": 1436, + "src": "961:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2599, + "id": 1221, "isConstant": false, "isLValue": false, "isPure": false, @@ -742,7 +742,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "961:10:17", + "src": "961:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -753,13 +753,13 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "946:26:17", + "src": "946:26:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "936:36:17", + "src": "936:36:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -773,21 +773,21 @@ export const StandardToken = "typeString": "bool" } ], - "id": 2593, + "id": 1215, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "928:7:17", + "referencedDeclaration": 1439, + "src": "928:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2602, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, @@ -795,20 +795,20 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "928:45:17", + "src": "928:45:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2603, + "id": 1225, "nodeType": "ExpressionStatement", - "src": "928:45:17" + "src": "928:45:10" }, { "expression": { "argumentTypes": null, - "id": 2613, + "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, @@ -817,26 +817,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2604, + "id": 1226, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "980:8:17", + "referencedDeclaration": 982, + "src": "980:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2606, + "id": 1228, "indexExpression": { "argumentTypes": null, - "id": 2605, + "id": 1227, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "989:5:17", + "referencedDeclaration": 1190, + "src": "989:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -847,7 +847,7 @@ export const StandardToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "980:15:17", + "src": "980:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -860,12 +860,12 @@ export const StandardToken = "arguments": [ { "argumentTypes": null, - "id": 2611, + "id": 1233, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1018:6:17", + "referencedDeclaration": 1194, + "src": "1018:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -883,26 +883,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2607, + "id": 1229, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "998:8:17", + "referencedDeclaration": 982, + "src": "998:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2609, + "id": 1231, "indexExpression": { "argumentTypes": null, - "id": 2608, + "id": 1230, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1007:5:17", + "referencedDeclaration": 1190, + "src": "1007:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -913,27 +913,27 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "998:15:17", + "src": "998:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2610, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "998:19:17", + "referencedDeclaration": 858, + "src": "998:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2612, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": false, @@ -941,26 +941,26 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "998:27:17", + "src": "998:27:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "980:45:17", + "src": "980:45:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2614, + "id": 1236, "nodeType": "ExpressionStatement", - "src": "980:45:17" + "src": "980:45:10" }, { "expression": { "argumentTypes": null, - "id": 2624, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -969,26 +969,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2615, + "id": 1237, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1031:8:17", + "referencedDeclaration": 982, + "src": "1031:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2617, + "id": 1239, "indexExpression": { "argumentTypes": null, - "id": 2616, + "id": 1238, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "1040:3:17", + "referencedDeclaration": 1192, + "src": "1040:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -999,7 +999,7 @@ export const StandardToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1031:13:17", + "src": "1031:13:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1012,12 +1012,12 @@ export const StandardToken = "arguments": [ { "argumentTypes": null, - "id": 2622, + "id": 1244, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1065:6:17", + "referencedDeclaration": 1194, + "src": "1065:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1035,26 +1035,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2618, + "id": 1240, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1047:8:17", + "referencedDeclaration": 982, + "src": "1047:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2620, + "id": 1242, "indexExpression": { "argumentTypes": null, - "id": 2619, + "id": 1241, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "1056:3:17", + "referencedDeclaration": 1192, + "src": "1056:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1065,27 +1065,27 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1047:13:17", + "src": "1047:13:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2621, + "id": 1243, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1047:17:17", + "referencedDeclaration": 882, + "src": "1047:17:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2623, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": false, @@ -1093,26 +1093,26 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1047:25:17", + "src": "1047:25:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1031:41:17", + "src": "1031:41:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2625, + "id": 1247, "nodeType": "ExpressionStatement", - "src": "1031:41:17" + "src": "1031:41:10" }, { "expression": { "argumentTypes": null, - "id": 2641, + "id": 1263, "isConstant": false, "isLValue": false, "isPure": false, @@ -1123,26 +1123,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2626, + "id": 1248, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1078:7:17", + "referencedDeclaration": 1188, + "src": "1078:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2630, + "id": 1252, "indexExpression": { "argumentTypes": null, - "id": 2627, + "id": 1249, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1086:5:17", + "referencedDeclaration": 1190, + "src": "1086:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1153,29 +1153,29 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1078:14:17", + "src": "1078:14:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2631, + "id": 1253, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2628, + "id": 1250, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1093:3:17", + "referencedDeclaration": 1436, + "src": "1093:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2629, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, @@ -1183,7 +1183,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1093:10:17", + "src": "1093:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1194,7 +1194,7 @@ export const StandardToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1078:26:17", + "src": "1078:26:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1207,12 +1207,12 @@ export const StandardToken = "arguments": [ { "argumentTypes": null, - "id": 2639, + "id": 1261, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1138:6:17", + "referencedDeclaration": 1194, + "src": "1138:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1232,26 +1232,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2632, + "id": 1254, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1107:7:17", + "referencedDeclaration": 1188, + "src": "1107:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2634, + "id": 1256, "indexExpression": { "argumentTypes": null, - "id": 2633, + "id": 1255, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1115:5:17", + "referencedDeclaration": 1190, + "src": "1115:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1262,29 +1262,29 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1107:14:17", + "src": "1107:14:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2637, + "id": 1259, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2635, + "id": 1257, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1122:3:17", + "referencedDeclaration": 1436, + "src": "1122:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2636, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, @@ -1292,7 +1292,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1122:10:17", + "src": "1122:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1303,27 +1303,27 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1107:26:17", + "src": "1107:26:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2638, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1107:30:17", + "referencedDeclaration": 858, + "src": "1107:30:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2640, + "id": 1262, "isConstant": false, "isLValue": false, "isPure": false, @@ -1331,21 +1331,21 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1107:38:17", + "src": "1107:38:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1078:67:17", + "src": "1078:67:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2642, + "id": 1264, "nodeType": "ExpressionStatement", - "src": "1078:67:17" + "src": "1078:67:10" }, { "eventCall": { @@ -1353,12 +1353,12 @@ export const StandardToken = "arguments": [ { "argumentTypes": null, - "id": 2644, + "id": 1266, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1165:5:17", + "referencedDeclaration": 1190, + "src": "1165:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1366,12 +1366,12 @@ export const StandardToken = }, { "argumentTypes": null, - "id": 2645, + "id": 1267, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "1172:3:17", + "referencedDeclaration": 1192, + "src": "1172:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1379,12 +1379,12 @@ export const StandardToken = }, { "argumentTypes": null, - "id": 2646, + "id": 1268, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1177:6:17", + "referencedDeclaration": 1194, + "src": "1177:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1406,18 +1406,18 @@ export const StandardToken = "typeString": "uint256" } ], - "id": 2643, + "id": 1265, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "1156:8:17", + "referencedDeclaration": 1173, + "src": "1156:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2647, + "id": 1269, "isConstant": false, "isLValue": false, "isPure": false, @@ -1425,28 +1425,28 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1156:28:17", + "src": "1156:28:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2648, + "id": 1270, "nodeType": "EmitStatement", - "src": "1151:33:17" + "src": "1151:33:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2649, + "id": 1271, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1197:4:17", + "src": "1197:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1454,15 +1454,15 @@ export const StandardToken = }, "value": "true" }, - "functionReturnParameters": 2576, - "id": 2650, + "functionReturnParameters": 1198, + "id": 1272, "nodeType": "Return", - "src": "1190:11:17" + "src": "1190:11:10" } ] }, "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", - "id": 2652, + "id": 1274, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1470,16 +1470,16 @@ export const StandardToken = "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 2573, + "id": 1195, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2568, + "id": 1190, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "763:13:17", + "scope": 1274, + "src": "763:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1487,10 +1487,10 @@ export const StandardToken = "typeString": "address" }, "typeName": { - "id": 2567, + "id": 1189, "name": "address", "nodeType": "ElementaryTypeName", - "src": "763:7:17", + "src": "763:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1501,11 +1501,11 @@ export const StandardToken = }, { "constant": false, - "id": 2570, + "id": 1192, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "782:11:17", + "scope": 1274, + "src": "782:11:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1513,10 +1513,10 @@ export const StandardToken = "typeString": "address" }, "typeName": { - "id": 2569, + "id": 1191, "name": "address", "nodeType": "ElementaryTypeName", - "src": "782:7:17", + "src": "782:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1527,11 +1527,11 @@ export const StandardToken = }, { "constant": false, - "id": 2572, + "id": 1194, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "799:14:17", + "scope": 1274, + "src": "799:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1539,10 +1539,10 @@ export const StandardToken = "typeString": "uint256" }, "typeName": { - "id": 2571, + "id": 1193, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "799:7:17", + "src": "799:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1552,20 +1552,20 @@ export const StandardToken = "visibility": "internal" } ], - "src": "757:60:17" + "src": "757:60:10" }, "payable": false, "returnParameters": { - "id": 2576, + "id": 1198, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2575, + "id": 1197, "name": "", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "842:4:17", + "scope": 1274, + "src": "842:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1573,10 +1573,10 @@ export const StandardToken = "typeString": "bool" }, "typeName": { - "id": 2574, + "id": 1196, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "842:4:17", + "src": "842:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1586,24 +1586,24 @@ export const StandardToken = "visibility": "internal" } ], - "src": "841:6:17" + "src": "841:6:10" }, - "scope": 2799, - "src": "736:470:17", + "scope": 1421, + "src": "736:470:10", "stateMutability": "nonpayable", - "superFunction": 2396, + "superFunction": 1124, "visibility": "public" }, { "body": { - "id": 2679, + "id": 1301, "nodeType": "Block", - "src": "1902:115:17", + "src": "1902:115:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2668, + "id": 1290, "isConstant": false, "isLValue": false, "isPure": false, @@ -1614,34 +1614,34 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2661, + "id": 1283, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1908:7:17", + "referencedDeclaration": 1188, + "src": "1908:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2665, + "id": 1287, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2662, + "id": 1284, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1916:3:17", + "referencedDeclaration": 1436, + "src": "1916:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2663, + "id": 1285, "isConstant": false, "isLValue": false, "isPure": false, @@ -1649,7 +1649,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1916:10:17", + "src": "1916:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1660,21 +1660,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1908:19:17", + "src": "1908:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2666, + "id": 1288, "indexExpression": { "argumentTypes": null, - "id": 2664, + "id": 1286, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2654, - "src": "1928:8:17", + "referencedDeclaration": 1276, + "src": "1928:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1685,7 +1685,7 @@ export const StandardToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1908:29:17", + "src": "1908:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1695,26 +1695,26 @@ export const StandardToken = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2667, + "id": 1289, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, - "src": "1940:6:17", + "referencedDeclaration": 1278, + "src": "1940:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1908:38:17", + "src": "1908:38:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2669, + "id": 1291, "nodeType": "ExpressionStatement", - "src": "1908:38:17" + "src": "1908:38:10" }, { "eventCall": { @@ -1724,18 +1724,18 @@ export const StandardToken = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2671, + "id": 1293, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1966:3:17", + "referencedDeclaration": 1436, + "src": "1966:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2672, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": false, @@ -1743,7 +1743,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1966:10:17", + "src": "1966:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1751,12 +1751,12 @@ export const StandardToken = }, { "argumentTypes": null, - "id": 2673, + "id": 1295, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2654, - "src": "1978:8:17", + "referencedDeclaration": 1276, + "src": "1978:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1764,12 +1764,12 @@ export const StandardToken = }, { "argumentTypes": null, - "id": 2674, + "id": 1296, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, - "src": "1988:6:17", + "referencedDeclaration": 1278, + "src": "1988:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1791,18 +1791,18 @@ export const StandardToken = "typeString": "uint256" } ], - "id": 2670, + "id": 1292, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "1957:8:17", + "referencedDeclaration": 1141, + "src": "1957:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2675, + "id": 1297, "isConstant": false, "isLValue": false, "isPure": false, @@ -1810,28 +1810,28 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1957:38:17", + "src": "1957:38:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2676, + "id": 1298, "nodeType": "EmitStatement", - "src": "1952:43:17" + "src": "1952:43:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2677, + "id": 1299, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2008:4:17", + "src": "2008:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1839,15 +1839,15 @@ export const StandardToken = }, "value": "true" }, - "functionReturnParameters": 2660, - "id": 2678, + "functionReturnParameters": 1282, + "id": 1300, "nodeType": "Return", - "src": "2001:11:17" + "src": "2001:11:10" } ] }, "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.", - "id": 2680, + "id": 1302, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1855,16 +1855,16 @@ export const StandardToken = "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 2657, + "id": 1279, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2654, + "id": 1276, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2680, - "src": "1846:16:17", + "scope": 1302, + "src": "1846:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1872,10 +1872,10 @@ export const StandardToken = "typeString": "address" }, "typeName": { - "id": 2653, + "id": 1275, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1846:7:17", + "src": "1846:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1886,11 +1886,11 @@ export const StandardToken = }, { "constant": false, - "id": 2656, + "id": 1278, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2680, - "src": "1864:14:17", + "scope": 1302, + "src": "1864:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1898,10 +1898,10 @@ export const StandardToken = "typeString": "uint256" }, "typeName": { - "id": 2655, + "id": 1277, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1864:7:17", + "src": "1864:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1911,20 +1911,20 @@ export const StandardToken = "visibility": "internal" } ], - "src": "1845:34:17" + "src": "1845:34:10" }, "payable": false, "returnParameters": { - "id": 2660, + "id": 1282, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2659, + "id": 1281, "name": "", "nodeType": "VariableDeclaration", - "scope": 2680, - "src": "1896:4:17", + "scope": 1302, + "src": "1896:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1932,10 +1932,10 @@ export const StandardToken = "typeString": "bool" }, "typeName": { - "id": 2658, + "id": 1280, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1896:4:17", + "src": "1896:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1945,19 +1945,19 @@ export const StandardToken = "visibility": "internal" } ], - "src": "1895:6:17" + "src": "1895:6:10" }, - "scope": 2799, - "src": "1829:188:17", + "scope": 1421, + "src": "1829:188:10", "stateMutability": "nonpayable", - "superFunction": 2405, + "superFunction": 1133, "visibility": "public" }, { "body": { - "id": 2695, + "id": 1317, "nodeType": "Block", - "src": "2446:43:17", + "src": "2446:43:10", "statements": [ { "expression": { @@ -1966,26 +1966,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2689, + "id": 1311, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "2459:7:17", + "referencedDeclaration": 1188, + "src": "2459:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2691, + "id": 1313, "indexExpression": { "argumentTypes": null, - "id": 2690, + "id": 1312, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2682, - "src": "2467:6:17", + "referencedDeclaration": 1304, + "src": "2467:6:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1996,21 +1996,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2459:15:17", + "src": "2459:15:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2693, + "id": 1315, "indexExpression": { "argumentTypes": null, - "id": 2692, + "id": 1314, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2684, - "src": "2475:8:17", + "referencedDeclaration": 1306, + "src": "2475:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2021,21 +2021,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2459:25:17", + "src": "2459:25:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2688, - "id": 2694, + "functionReturnParameters": 1310, + "id": 1316, "nodeType": "Return", - "src": "2452:32:17" + "src": "2452:32:10" } ] }, "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param _owner address The address which owns the funds.\n@param _spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", - "id": 2696, + "id": 1318, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2043,16 +2043,16 @@ export const StandardToken = "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2685, + "id": 1307, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2682, + "id": 1304, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 2696, - "src": "2360:14:17", + "scope": 1318, + "src": "2360:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2060,10 +2060,10 @@ export const StandardToken = "typeString": "address" }, "typeName": { - "id": 2681, + "id": 1303, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2360:7:17", + "src": "2360:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2074,11 +2074,11 @@ export const StandardToken = }, { "constant": false, - "id": 2684, + "id": 1306, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2696, - "src": "2380:16:17", + "scope": 1318, + "src": "2380:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2086,10 +2086,10 @@ export const StandardToken = "typeString": "address" }, "typeName": { - "id": 2683, + "id": 1305, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2380:7:17", + "src": "2380:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2099,20 +2099,20 @@ export const StandardToken = "visibility": "internal" } ], - "src": "2354:47:17" + "src": "2354:47:10" }, "payable": false, "returnParameters": { - "id": 2688, + "id": 1310, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2687, + "id": 1309, "name": "", "nodeType": "VariableDeclaration", - "scope": 2696, - "src": "2435:7:17", + "scope": 1318, + "src": "2435:7:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2120,10 +2120,10 @@ export const StandardToken = "typeString": "uint256" }, "typeName": { - "id": 2686, + "id": 1308, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2435:7:17", + "src": "2435:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2133,24 +2133,24 @@ export const StandardToken = "visibility": "internal" } ], - "src": "2434:9:17" + "src": "2434:9:10" }, - "scope": 2799, - "src": "2336:153:17", + "scope": 1421, + "src": "2336:153:10", "stateMutability": "view", - "superFunction": 2385, + "superFunction": 1113, "visibility": "public" }, { "body": { - "id": 2737, + "id": 1359, "nodeType": "Block", - "src": "3052:187:17", + "src": "3052:187:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2721, + "id": 1343, "isConstant": false, "isLValue": false, "isPure": false, @@ -2161,34 +2161,34 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2705, + "id": 1327, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3058:7:17", + "referencedDeclaration": 1188, + "src": "3058:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2709, + "id": 1331, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2706, + "id": 1328, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3066:3:17", + "referencedDeclaration": 1436, + "src": "3066:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2707, + "id": 1329, "isConstant": false, "isLValue": false, "isPure": false, @@ -2196,7 +2196,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3066:10:17", + "src": "3066:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2207,21 +2207,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3058:19:17", + "src": "3058:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2710, + "id": 1332, "indexExpression": { "argumentTypes": null, - "id": 2708, + "id": 1330, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3078:8:17", + "referencedDeclaration": 1320, + "src": "3078:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2232,7 +2232,7 @@ export const StandardToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3058:29:17", + "src": "3058:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2248,12 +2248,12 @@ export const StandardToken = "arguments": [ { "argumentTypes": null, - "id": 2718, + "id": 1340, "name": "_addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, - "src": "3132:11:17", + "referencedDeclaration": 1322, + "src": "3132:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2273,34 +2273,34 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2711, + "id": 1333, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3098:7:17", + "referencedDeclaration": 1188, + "src": "3098:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2714, + "id": 1336, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2712, + "id": 1334, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3106:3:17", + "referencedDeclaration": 1436, + "src": "3106:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2713, + "id": 1335, "isConstant": false, "isLValue": false, "isPure": false, @@ -2308,7 +2308,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3106:10:17", + "src": "3106:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2319,21 +2319,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3098:19:17", + "src": "3098:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2716, + "id": 1338, "indexExpression": { "argumentTypes": null, - "id": 2715, + "id": 1337, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3118:8:17", + "referencedDeclaration": 1320, + "src": "3118:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2344,27 +2344,27 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3098:29:17", + "src": "3098:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2717, + "id": 1339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "3098:33:17", + "referencedDeclaration": 882, + "src": "3098:33:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2719, + "id": 1341, "isConstant": false, "isLValue": false, "isPure": false, @@ -2372,35 +2372,35 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3098:46:17", + "src": "3098:46:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2720, + "id": 1342, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3090:55:17", + "src": "3090:55:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3058:87:17", + "src": "3058:87:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2722, + "id": 1344, "nodeType": "ExpressionStatement", - "src": "3058:87:17" + "src": "3058:87:10" }, { "eventCall": { @@ -2410,18 +2410,18 @@ export const StandardToken = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2724, + "id": 1346, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3165:3:17", + "referencedDeclaration": 1436, + "src": "3165:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2725, + "id": 1347, "isConstant": false, "isLValue": false, "isPure": false, @@ -2429,7 +2429,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3165:10:17", + "src": "3165:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2437,12 +2437,12 @@ export const StandardToken = }, { "argumentTypes": null, - "id": 2726, + "id": 1348, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3177:8:17", + "referencedDeclaration": 1320, + "src": "3177:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2454,34 +2454,34 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2727, + "id": 1349, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3187:7:17", + "referencedDeclaration": 1188, + "src": "3187:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2730, + "id": 1352, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2728, + "id": 1350, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3195:3:17", + "referencedDeclaration": 1436, + "src": "3195:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2729, + "id": 1351, "isConstant": false, "isLValue": false, "isPure": false, @@ -2489,7 +2489,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3195:10:17", + "src": "3195:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2500,21 +2500,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3187:19:17", + "src": "3187:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2732, + "id": 1354, "indexExpression": { "argumentTypes": null, - "id": 2731, + "id": 1353, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3207:8:17", + "referencedDeclaration": 1320, + "src": "3207:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2525,7 +2525,7 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3187:29:17", + "src": "3187:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2547,18 +2547,18 @@ export const StandardToken = "typeString": "uint256" } ], - "id": 2723, + "id": 1345, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "3156:8:17", + "referencedDeclaration": 1141, + "src": "3156:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2733, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": false, @@ -2566,28 +2566,28 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3156:61:17", + "src": "3156:61:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2734, + "id": 1356, "nodeType": "EmitStatement", - "src": "3151:66:17" + "src": "3151:66:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2735, + "id": 1357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3230:4:17", + "src": "3230:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2595,15 +2595,15 @@ export const StandardToken = }, "value": "true" }, - "functionReturnParameters": 2704, - "id": 2736, + "functionReturnParameters": 1326, + "id": 1358, "nodeType": "Return", - "src": "3223:11:17" + "src": "3223:11:10" } ] }, "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.", - "id": 2738, + "id": 1360, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2611,16 +2611,16 @@ export const StandardToken = "name": "increaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 2701, + "id": 1323, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2698, + "id": 1320, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2738, - "src": "2977:16:17", + "scope": 1360, + "src": "2977:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2628,10 +2628,10 @@ export const StandardToken = "typeString": "address" }, "typeName": { - "id": 2697, + "id": 1319, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2977:7:17", + "src": "2977:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2642,11 +2642,11 @@ export const StandardToken = }, { "constant": false, - "id": 2700, + "id": 1322, "name": "_addedValue", "nodeType": "VariableDeclaration", - "scope": 2738, - "src": "2999:16:17", + "scope": 1360, + "src": "2999:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2654,10 +2654,10 @@ export const StandardToken = "typeString": "uint256" }, "typeName": { - "id": 2699, + "id": 1321, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2999:4:17", + "src": "2999:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2667,20 +2667,20 @@ export const StandardToken = "visibility": "internal" } ], - "src": "2971:48:17" + "src": "2971:48:10" }, "payable": false, "returnParameters": { - "id": 2704, + "id": 1326, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2703, + "id": 1325, "name": "", "nodeType": "VariableDeclaration", - "scope": 2738, - "src": "3044:4:17", + "scope": 1360, + "src": "3044:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2688,10 +2688,10 @@ export const StandardToken = "typeString": "bool" }, "typeName": { - "id": 2702, + "id": 1324, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3044:4:17", + "src": "3044:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2701,32 +2701,32 @@ export const StandardToken = "visibility": "internal" } ], - "src": "3043:6:17" + "src": "3043:6:10" }, - "scope": 2799, - "src": "2946:293:17", + "scope": 1421, + "src": "2946:293:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2797, + "id": 1419, "nodeType": "Block", - "src": "3812:314:17", + "src": "3812:314:10", "statements": [ { "assignments": [ - 2748 + 1370 ], "declarations": [ { "constant": false, - "id": 2748, + "id": 1370, "name": "oldValue", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3818:13:17", + "scope": 1420, + "src": "3818:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2734,10 +2734,10 @@ export const StandardToken = "typeString": "uint256" }, "typeName": { - "id": 2747, + "id": 1369, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3818:4:17", + "src": "3818:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2747,41 +2747,41 @@ export const StandardToken = "visibility": "internal" } ], - "id": 2755, + "id": 1377, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2749, + "id": 1371, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3834:7:17", + "referencedDeclaration": 1188, + "src": "3834:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2752, + "id": 1374, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2750, + "id": 1372, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3842:3:17", + "referencedDeclaration": 1436, + "src": "3842:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2751, + "id": 1373, "isConstant": false, "isLValue": false, "isPure": false, @@ -2789,7 +2789,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3842:10:17", + "src": "3842:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2800,21 +2800,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3834:19:17", + "src": "3834:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2754, + "id": 1376, "indexExpression": { "argumentTypes": null, - "id": 2753, + "id": 1375, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "3854:8:17", + "referencedDeclaration": 1362, + "src": "3854:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2825,14 +2825,14 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3834:29:17", + "src": "3834:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3818:45:17" + "src": "3818:45:10" }, { "condition": { @@ -2841,19 +2841,19 @@ export const StandardToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2758, + "id": 1380, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2756, + "id": 1378, "name": "_subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "3873:16:17", + "referencedDeclaration": 1364, + "src": "3873:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2863,32 +2863,32 @@ export const StandardToken = "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 2757, + "id": 1379, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2748, - "src": "3892:8:17", + "referencedDeclaration": 1370, + "src": "3892:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3873:27:17", + "src": "3873:27:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2781, + "id": 1403, "nodeType": "Block", - "src": "3956:77:17", + "src": "3956:77:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2779, + "id": 1401, "isConstant": false, "isLValue": false, "isPure": false, @@ -2899,34 +2899,34 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2769, + "id": 1391, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3964:7:17", + "referencedDeclaration": 1188, + "src": "3964:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2773, + "id": 1395, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2770, + "id": 1392, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3972:3:17", + "referencedDeclaration": 1436, + "src": "3972:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2771, + "id": 1393, "isConstant": false, "isLValue": false, "isPure": false, @@ -2934,7 +2934,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3972:10:17", + "src": "3972:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2945,21 +2945,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3964:19:17", + "src": "3964:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2774, + "id": 1396, "indexExpression": { "argumentTypes": null, - "id": 2772, + "id": 1394, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "3984:8:17", + "referencedDeclaration": 1362, + "src": "3984:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2970,7 +2970,7 @@ export const StandardToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3964:29:17", + "src": "3964:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2983,12 +2983,12 @@ export const StandardToken = "arguments": [ { "argumentTypes": null, - "id": 2777, + "id": 1399, "name": "_subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "4009:16:17", + "referencedDeclaration": 1364, + "src": "4009:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3004,32 +3004,32 @@ export const StandardToken = ], "expression": { "argumentTypes": null, - "id": 2775, + "id": 1397, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2748, - "src": "3996:8:17", + "referencedDeclaration": 1370, + "src": "3996:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2776, + "id": 1398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "3996:12:17", + "referencedDeclaration": 858, + "src": "3996:12:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2778, + "id": 1400, "isConstant": false, "isLValue": false, "isPure": false, @@ -3037,36 +3037,36 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3996:30:17", + "src": "3996:30:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3964:62:17", + "src": "3964:62:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2780, + "id": 1402, "nodeType": "ExpressionStatement", - "src": "3964:62:17" + "src": "3964:62:10" } ] }, - "id": 2782, + "id": 1404, "nodeType": "IfStatement", - "src": "3869:164:17", + "src": "3869:164:10", "trueBody": { - "id": 2768, + "id": 1390, "nodeType": "Block", - "src": "3902:48:17", + "src": "3902:48:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2766, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": false, @@ -3077,34 +3077,34 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2759, + "id": 1381, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3910:7:17", + "referencedDeclaration": 1188, + "src": "3910:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2763, + "id": 1385, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2760, + "id": 1382, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3918:3:17", + "referencedDeclaration": 1436, + "src": "3918:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2761, + "id": 1383, "isConstant": false, "isLValue": false, "isPure": false, @@ -3112,7 +3112,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3918:10:17", + "src": "3918:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3123,21 +3123,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3910:19:17", + "src": "3910:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2764, + "id": 1386, "indexExpression": { "argumentTypes": null, - "id": 2762, + "id": 1384, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "3930:8:17", + "referencedDeclaration": 1362, + "src": "3930:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3148,7 +3148,7 @@ export const StandardToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3910:29:17", + "src": "3910:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3159,14 +3159,14 @@ export const StandardToken = "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2765, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3942:1:17", + "src": "3942:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3174,15 +3174,15 @@ export const StandardToken = }, "value": "0" }, - "src": "3910:33:17", + "src": "3910:33:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2767, + "id": 1389, "nodeType": "ExpressionStatement", - "src": "3910:33:17" + "src": "3910:33:10" } ] } @@ -3195,18 +3195,18 @@ export const StandardToken = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2784, + "id": 1406, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4052:3:17", + "referencedDeclaration": 1436, + "src": "4052:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2785, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, @@ -3214,7 +3214,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4052:10:17", + "src": "4052:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3222,12 +3222,12 @@ export const StandardToken = }, { "argumentTypes": null, - "id": 2786, + "id": 1408, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "4064:8:17", + "referencedDeclaration": 1362, + "src": "4064:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3239,34 +3239,34 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2787, + "id": 1409, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "4074:7:17", + "referencedDeclaration": 1188, + "src": "4074:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2790, + "id": 1412, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2788, + "id": 1410, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4082:3:17", + "referencedDeclaration": 1436, + "src": "4082:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2789, + "id": 1411, "isConstant": false, "isLValue": false, "isPure": false, @@ -3274,7 +3274,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4082:10:17", + "src": "4082:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3285,21 +3285,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4074:19:17", + "src": "4074:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2792, + "id": 1414, "indexExpression": { "argumentTypes": null, - "id": 2791, + "id": 1413, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "4094:8:17", + "referencedDeclaration": 1362, + "src": "4094:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3310,7 +3310,7 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4074:29:17", + "src": "4074:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3332,18 +3332,18 @@ export const StandardToken = "typeString": "uint256" } ], - "id": 2783, + "id": 1405, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "4043:8:17", + "referencedDeclaration": 1141, + "src": "4043:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2793, + "id": 1415, "isConstant": false, "isLValue": false, "isPure": false, @@ -3351,28 +3351,28 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4043:61:17", + "src": "4043:61:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2794, + "id": 1416, "nodeType": "EmitStatement", - "src": "4038:66:17" + "src": "4038:66:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2795, + "id": 1417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4117:4:17", + "src": "4117:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3380,15 +3380,15 @@ export const StandardToken = }, "value": "true" }, - "functionReturnParameters": 2746, - "id": 2796, + "functionReturnParameters": 1368, + "id": 1418, "nodeType": "Return", - "src": "4110:11:17" + "src": "4110:11:10" } ] }, "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.", - "id": 2798, + "id": 1420, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3396,16 +3396,16 @@ export const StandardToken = "name": "decreaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 2743, + "id": 1365, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2740, + "id": 1362, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3732:16:17", + "scope": 1420, + "src": "3732:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3413,10 +3413,10 @@ export const StandardToken = "typeString": "address" }, "typeName": { - "id": 2739, + "id": 1361, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3732:7:17", + "src": "3732:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3427,11 +3427,11 @@ export const StandardToken = }, { "constant": false, - "id": 2742, + "id": 1364, "name": "_subtractedValue", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3754:21:17", + "scope": 1420, + "src": "3754:21:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3439,10 +3439,10 @@ export const StandardToken = "typeString": "uint256" }, "typeName": { - "id": 2741, + "id": 1363, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3754:4:17", + "src": "3754:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3452,20 +3452,20 @@ export const StandardToken = "visibility": "internal" } ], - "src": "3726:53:17" + "src": "3726:53:10" }, "payable": false, "returnParameters": { - "id": 2746, + "id": 1368, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2745, + "id": 1367, "name": "", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3804:4:17", + "scope": 1420, + "src": "3804:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3473,10 +3473,10 @@ export const StandardToken = "typeString": "bool" }, "typeName": { - "id": 2744, + "id": 1366, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3804:4:17", + "src": "3804:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3486,33 +3486,33 @@ export const StandardToken = "visibility": "internal" } ], - "src": "3803:6:17" + "src": "3803:6:10" }, - "scope": 2799, - "src": "3701:425:17", + "scope": 1421, + "src": "3701:425:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2800, - "src": "344:3785:17" + "scope": 1422, + "src": "344:3785:10" } ], - "src": "0:4130:17" + "src": "0:4130:10" }, "legacyAST": { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "exportedSymbols": { "StandardToken": [ - 2799 + 1421 ] }, - "id": 2800, + "id": 1422, "nodeType": "SourceUnit", "nodes": [ { - "id": 2554, + "id": 1176, "literals": [ "solidity", "^", @@ -3520,27 +3520,27 @@ export const StandardToken = ".23" ], "nodeType": "PragmaDirective", - "src": "0:24:17" + "src": "0:24:10" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/BasicToken.sol", "file": "./BasicToken.sol", - "id": 2555, + "id": 1177, "nodeType": "ImportDirective", - "scope": 2800, - "sourceUnit": 2338, - "src": "26:26:17", + "scope": 1422, + "sourceUnit": 1066, + "src": "26:26:10", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "./ERC20.sol", - "id": 2556, + "id": 1178, "nodeType": "ImportDirective", - "scope": 2800, - "sourceUnit": 2415, - "src": "53:21:17", + "scope": 1422, + "sourceUnit": 1143, + "src": "53:21:10", "symbolAliases": [], "unitAlias": "" }, @@ -3550,64 +3550,64 @@ export const StandardToken = "arguments": null, "baseName": { "contractScope": null, - "id": 2557, + "id": 1179, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "370:5:17", + "referencedDeclaration": 1142, + "src": "370:5:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2414", + "typeIdentifier": "t_contract$_ERC20_$1142", "typeString": "contract ERC20" } }, - "id": 2558, + "id": 1180, "nodeType": "InheritanceSpecifier", - "src": "370:5:17" + "src": "370:5:10" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2559, + "id": 1181, "name": "BasicToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2337, - "src": "377:10:17", + "referencedDeclaration": 1065, + "src": "377:10:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_BasicToken_$2337", + "typeIdentifier": "t_contract$_BasicToken_$1065", "typeString": "contract BasicToken" } }, - "id": 2560, + "id": 1182, "nodeType": "InheritanceSpecifier", - "src": "377:10:17" + "src": "377:10:10" } ], "contractDependencies": [ - 2337, - 2414, - 2446 + 1065, + 1142, + 1174 ], "contractKind": "contract", "documentation": "@title Standard ERC20 token\n * @dev Implementation of the basic standard token.\n@dev https://github.com/ethereum/EIPs/issues/20\n@dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol", "fullyImplemented": true, - "id": 2799, + "id": 1421, "linearizedBaseContracts": [ - 2799, - 2337, - 2414, - 2446 + 1421, + 1065, + 1142, + 1174 ], "name": "StandardToken", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2566, + "id": 1188, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 2799, - "src": "393:66:17", + "scope": 1421, + "src": "393:66:10", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3615,46 +3615,46 @@ export const StandardToken = "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 2565, + "id": 1187, "keyType": { - "id": 2561, + "id": 1183, "name": "address", "nodeType": "ElementaryTypeName", - "src": "402:7:17", + "src": "402:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "393:49:17", + "src": "393:49:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 2564, + "id": 1186, "keyType": { - "id": 2562, + "id": 1184, "name": "address", "nodeType": "ElementaryTypeName", - "src": "422:7:17", + "src": "422:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "413:28:17", + "src": "413:28:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 2563, + "id": 1185, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "433:7:17", + "src": "433:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3667,9 +3667,9 @@ export const StandardToken = }, { "body": { - "id": 2651, + "id": 1273, "nodeType": "Block", - "src": "850:356:17", + "src": "850:356:10", "statements": [ { "expression": { @@ -3681,19 +3681,19 @@ export const StandardToken = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2582, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2578, + "id": 1200, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "864:3:17", + "referencedDeclaration": 1192, + "src": "864:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3707,14 +3707,14 @@ export const StandardToken = { "argumentTypes": null, "hexValue": "30", - "id": 2580, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "879:1:17", + "src": "879:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3730,20 +3730,20 @@ export const StandardToken = "typeString": "int_const 0" } ], - "id": 2579, + "id": 1201, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "871:7:17", + "src": "871:7:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2581, + "id": 1203, "isConstant": false, "isLValue": false, "isPure": true, @@ -3751,13 +3751,13 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "871:10:17", + "src": "871:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "864:17:17", + "src": "864:17:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3771,21 +3771,21 @@ export const StandardToken = "typeString": "bool" } ], - "id": 2577, + "id": 1199, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "856:7:17", + "referencedDeclaration": 1439, + "src": "856:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2583, + "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, @@ -3793,15 +3793,15 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "856:26:17", + "src": "856:26:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2584, + "id": 1206, "nodeType": "ExpressionStatement", - "src": "856:26:17" + "src": "856:26:10" }, { "expression": { @@ -3813,19 +3813,19 @@ export const StandardToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2590, + "id": 1212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2586, + "id": 1208, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "896:6:17", + "referencedDeclaration": 1194, + "src": "896:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3837,26 +3837,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2587, + "id": 1209, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "906:8:17", + "referencedDeclaration": 982, + "src": "906:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2589, + "id": 1211, "indexExpression": { "argumentTypes": null, - "id": 2588, + "id": 1210, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "915:5:17", + "referencedDeclaration": 1190, + "src": "915:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3867,13 +3867,13 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "906:15:17", + "src": "906:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "896:25:17", + "src": "896:25:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3887,21 +3887,21 @@ export const StandardToken = "typeString": "bool" } ], - "id": 2585, + "id": 1207, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "888:7:17", + "referencedDeclaration": 1439, + "src": "888:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2591, + "id": 1213, "isConstant": false, "isLValue": false, "isPure": false, @@ -3909,15 +3909,15 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "888:34:17", + "src": "888:34:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2592, + "id": 1214, "nodeType": "ExpressionStatement", - "src": "888:34:17" + "src": "888:34:10" }, { "expression": { @@ -3929,19 +3929,19 @@ export const StandardToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2601, + "id": 1223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2594, + "id": 1216, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "936:6:17", + "referencedDeclaration": 1194, + "src": "936:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3955,26 +3955,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2595, + "id": 1217, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "946:7:17", + "referencedDeclaration": 1188, + "src": "946:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2597, + "id": 1219, "indexExpression": { "argumentTypes": null, - "id": 2596, + "id": 1218, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "954:5:17", + "referencedDeclaration": 1190, + "src": "954:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3985,29 +3985,29 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "946:14:17", + "src": "946:14:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2600, + "id": 1222, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2598, + "id": 1220, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "961:3:17", + "referencedDeclaration": 1436, + "src": "961:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2599, + "id": 1221, "isConstant": false, "isLValue": false, "isPure": false, @@ -4015,7 +4015,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "961:10:17", + "src": "961:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4026,13 +4026,13 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "946:26:17", + "src": "946:26:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "936:36:17", + "src": "936:36:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4046,21 +4046,21 @@ export const StandardToken = "typeString": "bool" } ], - "id": 2593, + "id": 1215, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 1439, + 1440 ], - "referencedDeclaration": 2817, - "src": "928:7:17", + "referencedDeclaration": 1439, + "src": "928:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2602, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, @@ -4068,20 +4068,20 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "928:45:17", + "src": "928:45:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2603, + "id": 1225, "nodeType": "ExpressionStatement", - "src": "928:45:17" + "src": "928:45:10" }, { "expression": { "argumentTypes": null, - "id": 2613, + "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, @@ -4090,26 +4090,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2604, + "id": 1226, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "980:8:17", + "referencedDeclaration": 982, + "src": "980:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2606, + "id": 1228, "indexExpression": { "argumentTypes": null, - "id": 2605, + "id": 1227, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "989:5:17", + "referencedDeclaration": 1190, + "src": "989:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4120,7 +4120,7 @@ export const StandardToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "980:15:17", + "src": "980:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4133,12 +4133,12 @@ export const StandardToken = "arguments": [ { "argumentTypes": null, - "id": 2611, + "id": 1233, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1018:6:17", + "referencedDeclaration": 1194, + "src": "1018:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4156,26 +4156,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2607, + "id": 1229, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "998:8:17", + "referencedDeclaration": 982, + "src": "998:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2609, + "id": 1231, "indexExpression": { "argumentTypes": null, - "id": 2608, + "id": 1230, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1007:5:17", + "referencedDeclaration": 1190, + "src": "1007:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4186,27 +4186,27 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "998:15:17", + "src": "998:15:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2610, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "998:19:17", + "referencedDeclaration": 858, + "src": "998:19:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2612, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": false, @@ -4214,26 +4214,26 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "998:27:17", + "src": "998:27:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "980:45:17", + "src": "980:45:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2614, + "id": 1236, "nodeType": "ExpressionStatement", - "src": "980:45:17" + "src": "980:45:10" }, { "expression": { "argumentTypes": null, - "id": 2624, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -4242,26 +4242,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2615, + "id": 1237, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1031:8:17", + "referencedDeclaration": 982, + "src": "1031:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2617, + "id": 1239, "indexExpression": { "argumentTypes": null, - "id": 2616, + "id": 1238, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "1040:3:17", + "referencedDeclaration": 1192, + "src": "1040:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4272,7 +4272,7 @@ export const StandardToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1031:13:17", + "src": "1031:13:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4285,12 +4285,12 @@ export const StandardToken = "arguments": [ { "argumentTypes": null, - "id": 2622, + "id": 1244, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1065:6:17", + "referencedDeclaration": 1194, + "src": "1065:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4308,26 +4308,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2618, + "id": 1240, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1047:8:17", + "referencedDeclaration": 982, + "src": "1047:8:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2620, + "id": 1242, "indexExpression": { "argumentTypes": null, - "id": 2619, + "id": 1241, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "1056:3:17", + "referencedDeclaration": 1192, + "src": "1056:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4338,27 +4338,27 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1047:13:17", + "src": "1047:13:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2621, + "id": 1243, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1047:17:17", + "referencedDeclaration": 882, + "src": "1047:17:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2623, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": false, @@ -4366,26 +4366,26 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1047:25:17", + "src": "1047:25:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1031:41:17", + "src": "1031:41:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2625, + "id": 1247, "nodeType": "ExpressionStatement", - "src": "1031:41:17" + "src": "1031:41:10" }, { "expression": { "argumentTypes": null, - "id": 2641, + "id": 1263, "isConstant": false, "isLValue": false, "isPure": false, @@ -4396,26 +4396,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2626, + "id": 1248, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1078:7:17", + "referencedDeclaration": 1188, + "src": "1078:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2630, + "id": 1252, "indexExpression": { "argumentTypes": null, - "id": 2627, + "id": 1249, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1086:5:17", + "referencedDeclaration": 1190, + "src": "1086:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4426,29 +4426,29 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1078:14:17", + "src": "1078:14:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2631, + "id": 1253, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2628, + "id": 1250, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1093:3:17", + "referencedDeclaration": 1436, + "src": "1093:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2629, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, @@ -4456,7 +4456,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1093:10:17", + "src": "1093:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4467,7 +4467,7 @@ export const StandardToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1078:26:17", + "src": "1078:26:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4480,12 +4480,12 @@ export const StandardToken = "arguments": [ { "argumentTypes": null, - "id": 2639, + "id": 1261, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1138:6:17", + "referencedDeclaration": 1194, + "src": "1138:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4505,26 +4505,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2632, + "id": 1254, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1107:7:17", + "referencedDeclaration": 1188, + "src": "1107:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2634, + "id": 1256, "indexExpression": { "argumentTypes": null, - "id": 2633, + "id": 1255, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1115:5:17", + "referencedDeclaration": 1190, + "src": "1115:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4535,29 +4535,29 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1107:14:17", + "src": "1107:14:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2637, + "id": 1259, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2635, + "id": 1257, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1122:3:17", + "referencedDeclaration": 1436, + "src": "1122:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2636, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, @@ -4565,7 +4565,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1122:10:17", + "src": "1122:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4576,27 +4576,27 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1107:26:17", + "src": "1107:26:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2638, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1107:30:17", + "referencedDeclaration": 858, + "src": "1107:30:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2640, + "id": 1262, "isConstant": false, "isLValue": false, "isPure": false, @@ -4604,21 +4604,21 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1107:38:17", + "src": "1107:38:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1078:67:17", + "src": "1078:67:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2642, + "id": 1264, "nodeType": "ExpressionStatement", - "src": "1078:67:17" + "src": "1078:67:10" }, { "eventCall": { @@ -4626,12 +4626,12 @@ export const StandardToken = "arguments": [ { "argumentTypes": null, - "id": 2644, + "id": 1266, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2568, - "src": "1165:5:17", + "referencedDeclaration": 1190, + "src": "1165:5:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4639,12 +4639,12 @@ export const StandardToken = }, { "argumentTypes": null, - "id": 2645, + "id": 1267, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, - "src": "1172:3:17", + "referencedDeclaration": 1192, + "src": "1172:3:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4652,12 +4652,12 @@ export const StandardToken = }, { "argumentTypes": null, - "id": 2646, + "id": 1268, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2572, - "src": "1177:6:17", + "referencedDeclaration": 1194, + "src": "1177:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4679,18 +4679,18 @@ export const StandardToken = "typeString": "uint256" } ], - "id": 2643, + "id": 1265, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "1156:8:17", + "referencedDeclaration": 1173, + "src": "1156:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2647, + "id": 1269, "isConstant": false, "isLValue": false, "isPure": false, @@ -4698,28 +4698,28 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1156:28:17", + "src": "1156:28:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2648, + "id": 1270, "nodeType": "EmitStatement", - "src": "1151:33:17" + "src": "1151:33:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2649, + "id": 1271, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1197:4:17", + "src": "1197:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4727,15 +4727,15 @@ export const StandardToken = }, "value": "true" }, - "functionReturnParameters": 2576, - "id": 2650, + "functionReturnParameters": 1198, + "id": 1272, "nodeType": "Return", - "src": "1190:11:17" + "src": "1190:11:10" } ] }, "documentation": "@dev Transfer tokens from one address to another\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", - "id": 2652, + "id": 1274, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4743,16 +4743,16 @@ export const StandardToken = "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 2573, + "id": 1195, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2568, + "id": 1190, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "763:13:17", + "scope": 1274, + "src": "763:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4760,10 +4760,10 @@ export const StandardToken = "typeString": "address" }, "typeName": { - "id": 2567, + "id": 1189, "name": "address", "nodeType": "ElementaryTypeName", - "src": "763:7:17", + "src": "763:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4774,11 +4774,11 @@ export const StandardToken = }, { "constant": false, - "id": 2570, + "id": 1192, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "782:11:17", + "scope": 1274, + "src": "782:11:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4786,10 +4786,10 @@ export const StandardToken = "typeString": "address" }, "typeName": { - "id": 2569, + "id": 1191, "name": "address", "nodeType": "ElementaryTypeName", - "src": "782:7:17", + "src": "782:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4800,11 +4800,11 @@ export const StandardToken = }, { "constant": false, - "id": 2572, + "id": 1194, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "799:14:17", + "scope": 1274, + "src": "799:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4812,10 +4812,10 @@ export const StandardToken = "typeString": "uint256" }, "typeName": { - "id": 2571, + "id": 1193, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "799:7:17", + "src": "799:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4825,20 +4825,20 @@ export const StandardToken = "visibility": "internal" } ], - "src": "757:60:17" + "src": "757:60:10" }, "payable": false, "returnParameters": { - "id": 2576, + "id": 1198, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2575, + "id": 1197, "name": "", "nodeType": "VariableDeclaration", - "scope": 2652, - "src": "842:4:17", + "scope": 1274, + "src": "842:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4846,10 +4846,10 @@ export const StandardToken = "typeString": "bool" }, "typeName": { - "id": 2574, + "id": 1196, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "842:4:17", + "src": "842:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4859,24 +4859,24 @@ export const StandardToken = "visibility": "internal" } ], - "src": "841:6:17" + "src": "841:6:10" }, - "scope": 2799, - "src": "736:470:17", + "scope": 1421, + "src": "736:470:10", "stateMutability": "nonpayable", - "superFunction": 2396, + "superFunction": 1124, "visibility": "public" }, { "body": { - "id": 2679, + "id": 1301, "nodeType": "Block", - "src": "1902:115:17", + "src": "1902:115:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2668, + "id": 1290, "isConstant": false, "isLValue": false, "isPure": false, @@ -4887,34 +4887,34 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2661, + "id": 1283, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1908:7:17", + "referencedDeclaration": 1188, + "src": "1908:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2665, + "id": 1287, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2662, + "id": 1284, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1916:3:17", + "referencedDeclaration": 1436, + "src": "1916:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2663, + "id": 1285, "isConstant": false, "isLValue": false, "isPure": false, @@ -4922,7 +4922,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1916:10:17", + "src": "1916:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4933,21 +4933,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1908:19:17", + "src": "1908:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2666, + "id": 1288, "indexExpression": { "argumentTypes": null, - "id": 2664, + "id": 1286, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2654, - "src": "1928:8:17", + "referencedDeclaration": 1276, + "src": "1928:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4958,7 +4958,7 @@ export const StandardToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1908:29:17", + "src": "1908:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4968,26 +4968,26 @@ export const StandardToken = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2667, + "id": 1289, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, - "src": "1940:6:17", + "referencedDeclaration": 1278, + "src": "1940:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1908:38:17", + "src": "1908:38:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2669, + "id": 1291, "nodeType": "ExpressionStatement", - "src": "1908:38:17" + "src": "1908:38:10" }, { "eventCall": { @@ -4997,18 +4997,18 @@ export const StandardToken = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2671, + "id": 1293, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1966:3:17", + "referencedDeclaration": 1436, + "src": "1966:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2672, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": false, @@ -5016,7 +5016,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1966:10:17", + "src": "1966:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5024,12 +5024,12 @@ export const StandardToken = }, { "argumentTypes": null, - "id": 2673, + "id": 1295, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2654, - "src": "1978:8:17", + "referencedDeclaration": 1276, + "src": "1978:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5037,12 +5037,12 @@ export const StandardToken = }, { "argumentTypes": null, - "id": 2674, + "id": 1296, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2656, - "src": "1988:6:17", + "referencedDeclaration": 1278, + "src": "1988:6:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5064,18 +5064,18 @@ export const StandardToken = "typeString": "uint256" } ], - "id": 2670, + "id": 1292, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "1957:8:17", + "referencedDeclaration": 1141, + "src": "1957:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2675, + "id": 1297, "isConstant": false, "isLValue": false, "isPure": false, @@ -5083,28 +5083,28 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1957:38:17", + "src": "1957:38:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2676, + "id": 1298, "nodeType": "EmitStatement", - "src": "1952:43:17" + "src": "1952:43:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2677, + "id": 1299, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2008:4:17", + "src": "2008:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5112,15 +5112,15 @@ export const StandardToken = }, "value": "true" }, - "functionReturnParameters": 2660, - "id": 2678, + "functionReturnParameters": 1282, + "id": 1300, "nodeType": "Return", - "src": "2001:11:17" + "src": "2001:11:10" } ] }, "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address which will spend the funds.\n@param _value The amount of tokens to be spent.", - "id": 2680, + "id": 1302, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5128,16 +5128,16 @@ export const StandardToken = "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 2657, + "id": 1279, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2654, + "id": 1276, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2680, - "src": "1846:16:17", + "scope": 1302, + "src": "1846:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5145,10 +5145,10 @@ export const StandardToken = "typeString": "address" }, "typeName": { - "id": 2653, + "id": 1275, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1846:7:17", + "src": "1846:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5159,11 +5159,11 @@ export const StandardToken = }, { "constant": false, - "id": 2656, + "id": 1278, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2680, - "src": "1864:14:17", + "scope": 1302, + "src": "1864:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5171,10 +5171,10 @@ export const StandardToken = "typeString": "uint256" }, "typeName": { - "id": 2655, + "id": 1277, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1864:7:17", + "src": "1864:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5184,20 +5184,20 @@ export const StandardToken = "visibility": "internal" } ], - "src": "1845:34:17" + "src": "1845:34:10" }, "payable": false, "returnParameters": { - "id": 2660, + "id": 1282, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2659, + "id": 1281, "name": "", "nodeType": "VariableDeclaration", - "scope": 2680, - "src": "1896:4:17", + "scope": 1302, + "src": "1896:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5205,10 +5205,10 @@ export const StandardToken = "typeString": "bool" }, "typeName": { - "id": 2658, + "id": 1280, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1896:4:17", + "src": "1896:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5218,19 +5218,19 @@ export const StandardToken = "visibility": "internal" } ], - "src": "1895:6:17" + "src": "1895:6:10" }, - "scope": 2799, - "src": "1829:188:17", + "scope": 1421, + "src": "1829:188:10", "stateMutability": "nonpayable", - "superFunction": 2405, + "superFunction": 1133, "visibility": "public" }, { "body": { - "id": 2695, + "id": 1317, "nodeType": "Block", - "src": "2446:43:17", + "src": "2446:43:10", "statements": [ { "expression": { @@ -5239,26 +5239,26 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2689, + "id": 1311, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "2459:7:17", + "referencedDeclaration": 1188, + "src": "2459:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2691, + "id": 1313, "indexExpression": { "argumentTypes": null, - "id": 2690, + "id": 1312, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2682, - "src": "2467:6:17", + "referencedDeclaration": 1304, + "src": "2467:6:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5269,21 +5269,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2459:15:17", + "src": "2459:15:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2693, + "id": 1315, "indexExpression": { "argumentTypes": null, - "id": 2692, + "id": 1314, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2684, - "src": "2475:8:17", + "referencedDeclaration": 1306, + "src": "2475:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5294,21 +5294,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2459:25:17", + "src": "2459:25:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2688, - "id": 2694, + "functionReturnParameters": 1310, + "id": 1316, "nodeType": "Return", - "src": "2452:32:17" + "src": "2452:32:10" } ] }, "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param _owner address The address which owns the funds.\n@param _spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", - "id": 2696, + "id": 1318, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5316,16 +5316,16 @@ export const StandardToken = "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2685, + "id": 1307, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2682, + "id": 1304, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 2696, - "src": "2360:14:17", + "scope": 1318, + "src": "2360:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5333,10 +5333,10 @@ export const StandardToken = "typeString": "address" }, "typeName": { - "id": 2681, + "id": 1303, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2360:7:17", + "src": "2360:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5347,11 +5347,11 @@ export const StandardToken = }, { "constant": false, - "id": 2684, + "id": 1306, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2696, - "src": "2380:16:17", + "scope": 1318, + "src": "2380:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5359,10 +5359,10 @@ export const StandardToken = "typeString": "address" }, "typeName": { - "id": 2683, + "id": 1305, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2380:7:17", + "src": "2380:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5372,20 +5372,20 @@ export const StandardToken = "visibility": "internal" } ], - "src": "2354:47:17" + "src": "2354:47:10" }, "payable": false, "returnParameters": { - "id": 2688, + "id": 1310, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2687, + "id": 1309, "name": "", "nodeType": "VariableDeclaration", - "scope": 2696, - "src": "2435:7:17", + "scope": 1318, + "src": "2435:7:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5393,10 +5393,10 @@ export const StandardToken = "typeString": "uint256" }, "typeName": { - "id": 2686, + "id": 1308, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2435:7:17", + "src": "2435:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5406,24 +5406,24 @@ export const StandardToken = "visibility": "internal" } ], - "src": "2434:9:17" + "src": "2434:9:10" }, - "scope": 2799, - "src": "2336:153:17", + "scope": 1421, + "src": "2336:153:10", "stateMutability": "view", - "superFunction": 2385, + "superFunction": 1113, "visibility": "public" }, { "body": { - "id": 2737, + "id": 1359, "nodeType": "Block", - "src": "3052:187:17", + "src": "3052:187:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2721, + "id": 1343, "isConstant": false, "isLValue": false, "isPure": false, @@ -5434,34 +5434,34 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2705, + "id": 1327, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3058:7:17", + "referencedDeclaration": 1188, + "src": "3058:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2709, + "id": 1331, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2706, + "id": 1328, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3066:3:17", + "referencedDeclaration": 1436, + "src": "3066:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2707, + "id": 1329, "isConstant": false, "isLValue": false, "isPure": false, @@ -5469,7 +5469,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3066:10:17", + "src": "3066:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5480,21 +5480,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3058:19:17", + "src": "3058:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2710, + "id": 1332, "indexExpression": { "argumentTypes": null, - "id": 2708, + "id": 1330, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3078:8:17", + "referencedDeclaration": 1320, + "src": "3078:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5505,7 +5505,7 @@ export const StandardToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3058:29:17", + "src": "3058:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5521,12 +5521,12 @@ export const StandardToken = "arguments": [ { "argumentTypes": null, - "id": 2718, + "id": 1340, "name": "_addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, - "src": "3132:11:17", + "referencedDeclaration": 1322, + "src": "3132:11:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5546,34 +5546,34 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2711, + "id": 1333, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3098:7:17", + "referencedDeclaration": 1188, + "src": "3098:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2714, + "id": 1336, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2712, + "id": 1334, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3106:3:17", + "referencedDeclaration": 1436, + "src": "3106:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2713, + "id": 1335, "isConstant": false, "isLValue": false, "isPure": false, @@ -5581,7 +5581,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3106:10:17", + "src": "3106:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5592,21 +5592,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3098:19:17", + "src": "3098:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2716, + "id": 1338, "indexExpression": { "argumentTypes": null, - "id": 2715, + "id": 1337, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3118:8:17", + "referencedDeclaration": 1320, + "src": "3118:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5617,27 +5617,27 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3098:29:17", + "src": "3098:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2717, + "id": 1339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "3098:33:17", + "referencedDeclaration": 882, + "src": "3098:33:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2719, + "id": 1341, "isConstant": false, "isLValue": false, "isPure": false, @@ -5645,35 +5645,35 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3098:46:17", + "src": "3098:46:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2720, + "id": 1342, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3090:55:17", + "src": "3090:55:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3058:87:17", + "src": "3058:87:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2722, + "id": 1344, "nodeType": "ExpressionStatement", - "src": "3058:87:17" + "src": "3058:87:10" }, { "eventCall": { @@ -5683,18 +5683,18 @@ export const StandardToken = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2724, + "id": 1346, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3165:3:17", + "referencedDeclaration": 1436, + "src": "3165:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2725, + "id": 1347, "isConstant": false, "isLValue": false, "isPure": false, @@ -5702,7 +5702,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3165:10:17", + "src": "3165:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5710,12 +5710,12 @@ export const StandardToken = }, { "argumentTypes": null, - "id": 2726, + "id": 1348, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3177:8:17", + "referencedDeclaration": 1320, + "src": "3177:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5727,34 +5727,34 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2727, + "id": 1349, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3187:7:17", + "referencedDeclaration": 1188, + "src": "3187:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2730, + "id": 1352, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2728, + "id": 1350, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3195:3:17", + "referencedDeclaration": 1436, + "src": "3195:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2729, + "id": 1351, "isConstant": false, "isLValue": false, "isPure": false, @@ -5762,7 +5762,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3195:10:17", + "src": "3195:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5773,21 +5773,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3187:19:17", + "src": "3187:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2732, + "id": 1354, "indexExpression": { "argumentTypes": null, - "id": 2731, + "id": 1353, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3207:8:17", + "referencedDeclaration": 1320, + "src": "3207:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5798,7 +5798,7 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3187:29:17", + "src": "3187:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5820,18 +5820,18 @@ export const StandardToken = "typeString": "uint256" } ], - "id": 2723, + "id": 1345, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "3156:8:17", + "referencedDeclaration": 1141, + "src": "3156:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2733, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": false, @@ -5839,28 +5839,28 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3156:61:17", + "src": "3156:61:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2734, + "id": 1356, "nodeType": "EmitStatement", - "src": "3151:66:17" + "src": "3151:66:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2735, + "id": 1357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3230:4:17", + "src": "3230:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5868,15 +5868,15 @@ export const StandardToken = }, "value": "true" }, - "functionReturnParameters": 2704, - "id": 2736, + "functionReturnParameters": 1326, + "id": 1358, "nodeType": "Return", - "src": "3223:11:17" + "src": "3223:11:10" } ] }, "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.", - "id": 2738, + "id": 1360, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5884,16 +5884,16 @@ export const StandardToken = "name": "increaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 2701, + "id": 1323, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2698, + "id": 1320, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2738, - "src": "2977:16:17", + "scope": 1360, + "src": "2977:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5901,10 +5901,10 @@ export const StandardToken = "typeString": "address" }, "typeName": { - "id": 2697, + "id": 1319, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2977:7:17", + "src": "2977:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5915,11 +5915,11 @@ export const StandardToken = }, { "constant": false, - "id": 2700, + "id": 1322, "name": "_addedValue", "nodeType": "VariableDeclaration", - "scope": 2738, - "src": "2999:16:17", + "scope": 1360, + "src": "2999:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5927,10 +5927,10 @@ export const StandardToken = "typeString": "uint256" }, "typeName": { - "id": 2699, + "id": 1321, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2999:4:17", + "src": "2999:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5940,20 +5940,20 @@ export const StandardToken = "visibility": "internal" } ], - "src": "2971:48:17" + "src": "2971:48:10" }, "payable": false, "returnParameters": { - "id": 2704, + "id": 1326, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2703, + "id": 1325, "name": "", "nodeType": "VariableDeclaration", - "scope": 2738, - "src": "3044:4:17", + "scope": 1360, + "src": "3044:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5961,10 +5961,10 @@ export const StandardToken = "typeString": "bool" }, "typeName": { - "id": 2702, + "id": 1324, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3044:4:17", + "src": "3044:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5974,32 +5974,32 @@ export const StandardToken = "visibility": "internal" } ], - "src": "3043:6:17" + "src": "3043:6:10" }, - "scope": 2799, - "src": "2946:293:17", + "scope": 1421, + "src": "2946:293:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2797, + "id": 1419, "nodeType": "Block", - "src": "3812:314:17", + "src": "3812:314:10", "statements": [ { "assignments": [ - 2748 + 1370 ], "declarations": [ { "constant": false, - "id": 2748, + "id": 1370, "name": "oldValue", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3818:13:17", + "scope": 1420, + "src": "3818:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6007,10 +6007,10 @@ export const StandardToken = "typeString": "uint256" }, "typeName": { - "id": 2747, + "id": 1369, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3818:4:17", + "src": "3818:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6020,41 +6020,41 @@ export const StandardToken = "visibility": "internal" } ], - "id": 2755, + "id": 1377, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2749, + "id": 1371, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3834:7:17", + "referencedDeclaration": 1188, + "src": "3834:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2752, + "id": 1374, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2750, + "id": 1372, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3842:3:17", + "referencedDeclaration": 1436, + "src": "3842:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2751, + "id": 1373, "isConstant": false, "isLValue": false, "isPure": false, @@ -6062,7 +6062,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3842:10:17", + "src": "3842:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6073,21 +6073,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3834:19:17", + "src": "3834:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2754, + "id": 1376, "indexExpression": { "argumentTypes": null, - "id": 2753, + "id": 1375, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "3854:8:17", + "referencedDeclaration": 1362, + "src": "3854:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6098,14 +6098,14 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3834:29:17", + "src": "3834:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3818:45:17" + "src": "3818:45:10" }, { "condition": { @@ -6114,19 +6114,19 @@ export const StandardToken = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2758, + "id": 1380, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2756, + "id": 1378, "name": "_subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "3873:16:17", + "referencedDeclaration": 1364, + "src": "3873:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6136,32 +6136,32 @@ export const StandardToken = "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 2757, + "id": 1379, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2748, - "src": "3892:8:17", + "referencedDeclaration": 1370, + "src": "3892:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3873:27:17", + "src": "3873:27:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2781, + "id": 1403, "nodeType": "Block", - "src": "3956:77:17", + "src": "3956:77:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2779, + "id": 1401, "isConstant": false, "isLValue": false, "isPure": false, @@ -6172,34 +6172,34 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2769, + "id": 1391, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3964:7:17", + "referencedDeclaration": 1188, + "src": "3964:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2773, + "id": 1395, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2770, + "id": 1392, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3972:3:17", + "referencedDeclaration": 1436, + "src": "3972:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2771, + "id": 1393, "isConstant": false, "isLValue": false, "isPure": false, @@ -6207,7 +6207,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3972:10:17", + "src": "3972:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6218,21 +6218,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3964:19:17", + "src": "3964:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2774, + "id": 1396, "indexExpression": { "argumentTypes": null, - "id": 2772, + "id": 1394, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "3984:8:17", + "referencedDeclaration": 1362, + "src": "3984:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6243,7 +6243,7 @@ export const StandardToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3964:29:17", + "src": "3964:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6256,12 +6256,12 @@ export const StandardToken = "arguments": [ { "argumentTypes": null, - "id": 2777, + "id": 1399, "name": "_subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "4009:16:17", + "referencedDeclaration": 1364, + "src": "4009:16:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6277,32 +6277,32 @@ export const StandardToken = ], "expression": { "argumentTypes": null, - "id": 2775, + "id": 1397, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2748, - "src": "3996:8:17", + "referencedDeclaration": 1370, + "src": "3996:8:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2776, + "id": 1398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "3996:12:17", + "referencedDeclaration": 858, + "src": "3996:12:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2778, + "id": 1400, "isConstant": false, "isLValue": false, "isPure": false, @@ -6310,36 +6310,36 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3996:30:17", + "src": "3996:30:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3964:62:17", + "src": "3964:62:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2780, + "id": 1402, "nodeType": "ExpressionStatement", - "src": "3964:62:17" + "src": "3964:62:10" } ] }, - "id": 2782, + "id": 1404, "nodeType": "IfStatement", - "src": "3869:164:17", + "src": "3869:164:10", "trueBody": { - "id": 2768, + "id": 1390, "nodeType": "Block", - "src": "3902:48:17", + "src": "3902:48:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 2766, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": false, @@ -6350,34 +6350,34 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2759, + "id": 1381, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "3910:7:17", + "referencedDeclaration": 1188, + "src": "3910:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2763, + "id": 1385, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2760, + "id": 1382, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "3918:3:17", + "referencedDeclaration": 1436, + "src": "3918:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2761, + "id": 1383, "isConstant": false, "isLValue": false, "isPure": false, @@ -6385,7 +6385,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3918:10:17", + "src": "3918:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6396,21 +6396,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3910:19:17", + "src": "3910:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2764, + "id": 1386, "indexExpression": { "argumentTypes": null, - "id": 2762, + "id": 1384, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "3930:8:17", + "referencedDeclaration": 1362, + "src": "3930:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6421,7 +6421,7 @@ export const StandardToken = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3910:29:17", + "src": "3910:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6432,14 +6432,14 @@ export const StandardToken = "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2765, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3942:1:17", + "src": "3942:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6447,15 +6447,15 @@ export const StandardToken = }, "value": "0" }, - "src": "3910:33:17", + "src": "3910:33:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2767, + "id": 1389, "nodeType": "ExpressionStatement", - "src": "3910:33:17" + "src": "3910:33:10" } ] } @@ -6468,18 +6468,18 @@ export const StandardToken = "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2784, + "id": 1406, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4052:3:17", + "referencedDeclaration": 1436, + "src": "4052:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2785, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, @@ -6487,7 +6487,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4052:10:17", + "src": "4052:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6495,12 +6495,12 @@ export const StandardToken = }, { "argumentTypes": null, - "id": 2786, + "id": 1408, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "4064:8:17", + "referencedDeclaration": 1362, + "src": "4064:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6512,34 +6512,34 @@ export const StandardToken = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2787, + "id": 1409, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "4074:7:17", + "referencedDeclaration": 1188, + "src": "4074:7:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 2790, + "id": 1412, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2788, + "id": 1410, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4082:3:17", + "referencedDeclaration": 1436, + "src": "4082:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2789, + "id": 1411, "isConstant": false, "isLValue": false, "isPure": false, @@ -6547,7 +6547,7 @@ export const StandardToken = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4082:10:17", + "src": "4082:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6558,21 +6558,21 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4074:19:17", + "src": "4074:19:10", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2792, + "id": 1414, "indexExpression": { "argumentTypes": null, - "id": 2791, + "id": 1413, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "4094:8:17", + "referencedDeclaration": 1362, + "src": "4094:8:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6583,7 +6583,7 @@ export const StandardToken = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4074:29:17", + "src": "4074:29:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6605,18 +6605,18 @@ export const StandardToken = "typeString": "uint256" } ], - "id": 2783, + "id": 1405, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "4043:8:17", + "referencedDeclaration": 1141, + "src": "4043:8:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2793, + "id": 1415, "isConstant": false, "isLValue": false, "isPure": false, @@ -6624,28 +6624,28 @@ export const StandardToken = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4043:61:17", + "src": "4043:61:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2794, + "id": 1416, "nodeType": "EmitStatement", - "src": "4038:66:17" + "src": "4038:66:10" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2795, + "id": 1417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4117:4:17", + "src": "4117:4:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6653,15 +6653,15 @@ export const StandardToken = }, "value": "true" }, - "functionReturnParameters": 2746, - "id": 2796, + "functionReturnParameters": 1368, + "id": 1418, "nodeType": "Return", - "src": "4110:11:17" + "src": "4110:11:10" } ] }, "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.", - "id": 2798, + "id": 1420, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6669,16 +6669,16 @@ export const StandardToken = "name": "decreaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 2743, + "id": 1365, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2740, + "id": 1362, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3732:16:17", + "scope": 1420, + "src": "3732:16:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6686,10 +6686,10 @@ export const StandardToken = "typeString": "address" }, "typeName": { - "id": 2739, + "id": 1361, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3732:7:17", + "src": "3732:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6700,11 +6700,11 @@ export const StandardToken = }, { "constant": false, - "id": 2742, + "id": 1364, "name": "_subtractedValue", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3754:21:17", + "scope": 1420, + "src": "3754:21:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6712,10 +6712,10 @@ export const StandardToken = "typeString": "uint256" }, "typeName": { - "id": 2741, + "id": 1363, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3754:4:17", + "src": "3754:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6725,20 +6725,20 @@ export const StandardToken = "visibility": "internal" } ], - "src": "3726:53:17" + "src": "3726:53:10" }, "payable": false, "returnParameters": { - "id": 2746, + "id": 1368, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2745, + "id": 1367, "name": "", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "3804:4:17", + "scope": 1420, + "src": "3804:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6746,10 +6746,10 @@ export const StandardToken = "typeString": "bool" }, "typeName": { - "id": 2744, + "id": 1366, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3804:4:17", + "src": "3804:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6759,26 +6759,26 @@ export const StandardToken = "visibility": "internal" } ], - "src": "3803:6:17" + "src": "3803:6:10" }, - "scope": 2799, - "src": "3701:425:17", + "scope": 1421, + "src": "3701:425:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2800, - "src": "344:3785:17" + "scope": 1422, + "src": "344:3785:10" } ], - "src": "0:4130:17" + "src": "0:4130:10" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.598Z" + "updatedAt": "2018-07-07T15:28:53.742Z" } \ No newline at end of file diff --git a/artifacts/ts/StandardTokenMock.ts b/artifacts/ts/StandardTokenMock.ts index bf0dde3fe..c7e6261df 100644 --- a/artifacts/ts/StandardTokenMock.ts +++ b/artifacts/ts/StandardTokenMock.ts @@ -236,6 +236,10 @@ export const StandardTokenMock = { "name": "_symbol", "type": "string" + }, + { + "name": "_decimals", + "type": "uint256" } ], "payable": false, @@ -287,40 +291,40 @@ export const StandardTokenMock = "type": "event" } ], - "bytecode": "0x608060405260126003553480156200001657600080fd5b506040516200147f3803806200147f83398101806040528101908080519060200190929190805190602001909291908051820192919060200180518201929190505050826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550826006819055508160049080519060200190620000bb929190620000df565b508060059080519060200190620000d4929190620000df565b50505050506200018e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200012257805160ff191683800117855562000153565b8280016001018555821562000153579182015b828111156200015257825182559160200191906001019062000135565b5b50905062000162919062000166565b5090565b6200018b91905b80821115620001875760008160009055506001016200016d565b5090565b90565b6112e1806200019e6000396000f3006080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a957806323b872dd146101d4578063313ce56714610259578063661884631461028457806370a08231146102e957806395d89b4114610340578063a9059cbb146103d0578063d73dd62314610435578063dd62ed3e1461049a575b600080fd5b3480156100c057600080fd5b506100c9610511565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105af565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be6106a1565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a7565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610a61565b6040518082815260200191505060405180910390f35b34801561029057600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a67565b604051808215151515815260200191505060405180910390f35b3480156102f557600080fd5b5061032a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf8565b6040518082815260200191505060405180910390f35b34801561034c57600080fd5b50610355610d40565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103dc57600080fd5b5061041b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dde565b604051808215151515815260200191505060405180910390f35b34801561044157600080fd5b50610480600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ffd565b604051808215151515815260200191505060405180910390f35b3480156104a657600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f9565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105a75780601f1061057c576101008083540402835291602001916105a7565b820191906000526020600020905b81548152906001019060200180831161058a57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561073157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107bc57600080fd5b61080d826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a0826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b78576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c0c565b610b8b838261128090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e1b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e6857600080fd5b610eb9826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f4c826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061108e82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561128e57fe5b818303905092915050565b600081830190508281101515156112ac57fe5b809050929150505600a165627a7a7230582009b4c7f597b9c9f75fbdc63c6714c8991a034bccaaa75083793064d2d2fe84ac0029", - "deployedBytecode": "0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a957806323b872dd146101d4578063313ce56714610259578063661884631461028457806370a08231146102e957806395d89b4114610340578063a9059cbb146103d0578063d73dd62314610435578063dd62ed3e1461049a575b600080fd5b3480156100c057600080fd5b506100c9610511565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105af565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be6106a1565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a7565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610a61565b6040518082815260200191505060405180910390f35b34801561029057600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a67565b604051808215151515815260200191505060405180910390f35b3480156102f557600080fd5b5061032a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf8565b6040518082815260200191505060405180910390f35b34801561034c57600080fd5b50610355610d40565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103dc57600080fd5b5061041b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dde565b604051808215151515815260200191505060405180910390f35b34801561044157600080fd5b50610480600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ffd565b604051808215151515815260200191505060405180910390f35b3480156104a657600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f9565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105a75780601f1061057c576101008083540402835291602001916105a7565b820191906000526020600020905b81548152906001019060200180831161058a57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561073157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107bc57600080fd5b61080d826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a0826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b78576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c0c565b610b8b838261128090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e1b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e6857600080fd5b610eb9826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f4c826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061108e82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561128e57fe5b818303905092915050565b600081830190508281101515156112ac57fe5b809050929150505600a165627a7a7230582009b4c7f597b9c9f75fbdc63c6714c8991a034bccaaa75083793064d2d2fe84ac0029", - "sourceMap": "127:406:8:-;;;201:2;175:28;;284:246;8:9:-1;5:2;;;30:1;27;20:12;5:2;284:246:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;437:14;410:8;:24;419:14;410:24;;;;;;;;;;;;;;;:41;;;;471:14;457:11;:28;;;;498:5;491:4;:12;;;;;;;;;;;;:::i;:::-;;518:7;509:6;:16;;;;;;;;;;;;:::i;:::-;;284:246;;;;127:406;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "127:406:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;207:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;207:18:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;207:18:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;253:26:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;253:26:8;;;;;;;;;;;;;;;;;;;;;;;736:470:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;175:28:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;175:28:8;;;;;;;;;;;;;;;;;;;;;;;3701:425:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;229:20:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;229:20:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;229:20:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;207:18:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:17:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;253:26:8:-;;;;:::o;736:470:17:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;175:28:8:-;;;;:::o;3701:425:17:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:12:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;229:20:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;608:321:12:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:17:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1042:110:10:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", - "source": "pragma solidity 0.4.23;\n\n\nimport \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\n\n\n// mock class using BasicToken\ncontract StandardTokenMock is StandardToken {\n uint256 public decimals = 18;\n string public name;\n string public symbol;\n uint256 public totalSupply;\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n }\n\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/StandardTokenMock.sol", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200148f3803806200148f8339810180604052810190808051906020019092919080519060200190929190805182019291906020018051820192919060200180519060200190929190505050836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836006819055508260049080519060200190620000c3929190620000ef565b508160059080519060200190620000dc929190620000ef565b508060038190555050505050506200019e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013257805160ff191683800117855562000163565b8280016001018555821562000163579182015b828111156200016257825182559160200191906001019062000145565b5b50905062000172919062000176565b5090565b6200019b91905b80821115620001975760008160009055506001016200017d565b5090565b90565b6112e180620001ae6000396000f3006080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a957806323b872dd146101d4578063313ce56714610259578063661884631461028457806370a08231146102e957806395d89b4114610340578063a9059cbb146103d0578063d73dd62314610435578063dd62ed3e1461049a575b600080fd5b3480156100c057600080fd5b506100c9610511565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105af565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be6106a1565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a7565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610a61565b6040518082815260200191505060405180910390f35b34801561029057600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a67565b604051808215151515815260200191505060405180910390f35b3480156102f557600080fd5b5061032a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf8565b6040518082815260200191505060405180910390f35b34801561034c57600080fd5b50610355610d40565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103dc57600080fd5b5061041b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dde565b604051808215151515815260200191505060405180910390f35b34801561044157600080fd5b50610480600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ffd565b604051808215151515815260200191505060405180910390f35b3480156104a657600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f9565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105a75780601f1061057c576101008083540402835291602001916105a7565b820191906000526020600020905b81548152906001019060200180831161058a57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561073157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107bc57600080fd5b61080d826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a0826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b78576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c0c565b610b8b838261128090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e1b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e6857600080fd5b610eb9826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f4c826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061108e82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561128e57fe5b818303905092915050565b600081830190508281101515156112ac57fe5b809050929150505600a165627a7a7230582024e2ab456a3fb58e384f287982db6b48194245c3ebe1e99c1996ccdecca2b9bd0029", + "deployedBytecode": "0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b4578063095ea7b31461014457806318160ddd146101a957806323b872dd146101d4578063313ce56714610259578063661884631461028457806370a08231146102e957806395d89b4114610340578063a9059cbb146103d0578063d73dd62314610435578063dd62ed3e1461049a575b600080fd5b3480156100c057600080fd5b506100c9610511565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101095780820151818401526020810190506100ee565b50505050905090810190601f1680156101365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015057600080fd5b5061018f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105af565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be6106a1565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b5061023f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a7565b604051808215151515815260200191505060405180910390f35b34801561026557600080fd5b5061026e610a61565b6040518082815260200191505060405180910390f35b34801561029057600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a67565b604051808215151515815260200191505060405180910390f35b3480156102f557600080fd5b5061032a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf8565b6040518082815260200191505060405180910390f35b34801561034c57600080fd5b50610355610d40565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103dc57600080fd5b5061041b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dde565b604051808215151515815260200191505060405180910390f35b34801561044157600080fd5b50610480600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ffd565b604051808215151515815260200191505060405180910390f35b3480156104a657600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f9565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105a75780601f1061057c576101008083540402835291602001916105a7565b820191906000526020600020905b81548152906001019060200180831161058a57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561073157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156107bc57600080fd5b61080d826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a0826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610b78576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c0c565b610b8b838261128090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e1b57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e6857600080fd5b610eb9826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461128090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f4c826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061108e82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461129990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600082821115151561128e57fe5b818303905092915050565b600081830190508281101515156112ac57fe5b809050929150505600a165627a7a7230582024e2ab456a3fb58e384f287982db6b48194245c3ebe1e99c1996ccdecca2b9bd0029", + "sourceMap": "127:450:34:-;;;279:295;8:9:-1;5:2;;;30:1;27;20:12;5:2;279:295:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;455:14;428:8;:24;437:14;428:24;;;;;;;;;;;;;;;:41;;;;489:14;475:11;:28;;;;516:5;509:4;:12;;;;;;;;;;;;:::i;:::-;;536:7;527:6;:16;;;;;;;;;;;;:::i;:::-;;560:9;549:8;:20;;;;279:295;;;;;127:450;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "127:450:34:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;202:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;202:18:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;202:18:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;248:26:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:26:34;;;;;;;;;;;;;;;;;;;;;;;736:470:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;736:470:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;175:23:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;175:23:34;;;;;;;;;;;;;;;;;;;;;;;3701:425:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;224:20:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;224:20:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;224:20:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;608:321:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;608:321:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;202:18:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:45:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;248:26:34:-;;;;:::o;736:470:45:-;842:4;879:1;864:17;;:3;:17;;;;856:26;;;;;;;;906:8;:15;915:5;906:15;;;;;;;;;;;;;;;;896:6;:25;;888:34;;;;;;;;946:7;:14;954:5;946:14;;;;;;;;;;;;;;;:26;961:10;946:26;;;;;;;;;;;;;;;;936:6;:36;;928:45;;;;;;;;998:27;1018:6;998:8;:15;1007:5;998:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;980:8;:15;989:5;980:15;;;;;;;;;;;;;;;:45;;;;1047:25;1065:6;1047:8;:13;1056:3;1047:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1031:8;:13;1040:3;1031:13;;;;;;;;;;;;;;;:41;;;;1107:38;1138:6;1107:7;:14;1115:5;1107:14;;;;;;;;;;;;;;;:26;1122:10;1107:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1078:7;:14;1086:5;1078:14;;;;;;;;;;;;;;;:26;1093:10;1078:26;;;;;;;;;;;;;;;:67;;;;1172:3;1156:28;;1165:5;1156:28;;;1177:6;1156:28;;;;;;;;;;;;;;;;;;1197:4;1190:11;;736:470;;;;;:::o;175:23:34:-;;;;:::o;3701:425:45:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;1131:99:40:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;224:20:34:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;608:321:40:-;671:4;706:1;691:17;;:3;:17;;;;683:26;;;;;;;;733:8;:20;742:10;733:20;;;;;;;;;;;;;;;;723:6;:30;;715:39;;;;;;;;784:32;809:6;784:8;:20;793:10;784:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;761:8;:20;770:10;761:20;;;;;;;;;;;;;;;:55;;;;838:25;856:6;838:8;:13;847:3;838:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;822:8;:13;831:3;822:13;;;;;;;;;;;;;;;:41;;;;895:3;874:33;;883:10;874:33;;;900:6;874:33;;;;;;;;;;;;;;;;;;920:4;913:11;;608:321;;;;:::o;2946:293:45:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "source": "pragma solidity 0.4.24;\n\n\nimport \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\n\n\n// mock class using BasicToken\ncontract StandardTokenMock is StandardToken {\n uint256 public decimals;\n string public name;\n string public symbol;\n uint256 public totalSupply;\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol,\n uint256 _decimals)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n decimals = _decimals;\n }\n\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/StandardTokenMock.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/StandardTokenMock.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/StandardTokenMock.sol", "exportedSymbols": { "StandardTokenMock": [ - 1832 + 4233 ] }, - "id": 1833, + "id": 4234, "nodeType": "SourceUnit", "nodes": [ { - "id": 1789, + "id": 4185, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:8" + "src": "0:23:34" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", - "id": 1790, + "id": 4186, "nodeType": "ImportDirective", - "scope": 1833, - "sourceUnit": 2800, - "src": "26:67:8", + "scope": 4234, + "sourceUnit": 5383, + "src": "26:67:34", "symbolAliases": [], "unitAlias": "" }, @@ -330,48 +334,48 @@ export const StandardTokenMock = "arguments": null, "baseName": { "contractScope": null, - "id": 1791, + "id": 4187, "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "157:13:8", + "referencedDeclaration": 5382, + "src": "157:13:34", "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", + "typeIdentifier": "t_contract$_StandardToken_$5382", "typeString": "contract StandardToken" } }, - "id": 1792, + "id": 4188, "nodeType": "InheritanceSpecifier", - "src": "157:13:8" + "src": "157:13:34" } ], "contractDependencies": [ - 2337, - 2414, - 2446, - 2799 + 4920, + 4997, + 5029, + 5382 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1832, + "id": 4233, "linearizedBaseContracts": [ - 1832, - 2799, - 2337, - 2414, - 2446 + 4233, + 5382, + 4920, + 4997, + 5029 ], "name": "StandardTokenMock", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1795, + "id": 4190, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "175:28:8", + "scope": 4233, + "src": "175:23:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -379,42 +383,25 @@ export const StandardTokenMock = "typeString": "uint256" }, "typeName": { - "id": 1793, + "id": 4189, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "175:7:8", + "src": "175:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 1794, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "201:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, + "value": null, "visibility": "public" }, { "constant": false, - "id": 1797, + "id": 4192, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "207:18:8", + "scope": 4233, + "src": "202:18:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -422,10 +409,10 @@ export const StandardTokenMock = "typeString": "string" }, "typeName": { - "id": 1796, + "id": 4191, "name": "string", "nodeType": "ElementaryTypeName", - "src": "207:6:8", + "src": "202:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -436,11 +423,11 @@ export const StandardTokenMock = }, { "constant": false, - "id": 1799, + "id": 4194, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "229:20:8", + "scope": 4233, + "src": "224:20:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -448,10 +435,10 @@ export const StandardTokenMock = "typeString": "string" }, "typeName": { - "id": 1798, + "id": 4193, "name": "string", "nodeType": "ElementaryTypeName", - "src": "229:6:8", + "src": "224:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -462,11 +449,11 @@ export const StandardTokenMock = }, { "constant": false, - "id": 1801, + "id": 4196, "name": "totalSupply", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "253:26:8", + "scope": 4233, + "src": "248:26:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -474,10 +461,10 @@ export const StandardTokenMock = "typeString": "uint256" }, "typeName": { - "id": 1800, + "id": 4195, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "253:7:8", + "src": "248:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -488,14 +475,14 @@ export const StandardTokenMock = }, { "body": { - "id": 1830, + "id": 4231, "nodeType": "Block", - "src": "404:126:8", + "src": "422:152:34", "statements": [ { "expression": { "argumentTypes": null, - "id": 1816, + "id": 4213, "isConstant": false, "isLValue": false, "isPure": false, @@ -504,26 +491,26 @@ export const StandardTokenMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1812, + "id": 4209, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "410:8:8", + "referencedDeclaration": 4837, + "src": "428:8:34", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1814, + "id": 4211, "indexExpression": { "argumentTypes": null, - "id": 1813, + "id": 4210, "name": "initialAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "419:14:8", + "referencedDeclaration": 4198, + "src": "437:14:34", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -534,7 +521,7 @@ export const StandardTokenMock = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "410:24:8", + "src": "428:24:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -544,45 +531,45 @@ export const StandardTokenMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1815, + "id": 4212, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "437:14:8", + "referencedDeclaration": 4200, + "src": "455:14:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "410:41:8", + "src": "428:41:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1817, + "id": 4214, "nodeType": "ExpressionStatement", - "src": "410:41:8" + "src": "428:41:34" }, { "expression": { "argumentTypes": null, - "id": 1820, + "id": 4217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1818, + "id": 4215, "name": "totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [ - 1801 + 4196 ], - "referencedDeclaration": 1801, - "src": "457:11:8", + "referencedDeclaration": 4196, + "src": "475:11:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -592,43 +579,43 @@ export const StandardTokenMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1819, + "id": 4216, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "471:14:8", + "referencedDeclaration": 4200, + "src": "489:14:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "457:28:8", + "src": "475:28:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1821, + "id": 4218, "nodeType": "ExpressionStatement", - "src": "457:28:8" + "src": "475:28:34" }, { "expression": { "argumentTypes": null, - "id": 1824, + "id": 4221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1822, + "id": 4219, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1797, - "src": "491:4:8", + "referencedDeclaration": 4192, + "src": "509:4:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -638,43 +625,43 @@ export const StandardTokenMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1823, + "id": 4220, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1807, - "src": "498:5:8", + "referencedDeclaration": 4202, + "src": "516:5:34", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "491:12:8", + "src": "509:12:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1825, + "id": 4222, "nodeType": "ExpressionStatement", - "src": "491:12:8" + "src": "509:12:34" }, { "expression": { "argumentTypes": null, - "id": 1828, + "id": 4225, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1826, + "id": 4223, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1799, - "src": "509:6:8", + "referencedDeclaration": 4194, + "src": "527:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -684,31 +671,77 @@ export const StandardTokenMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1827, + "id": 4224, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "518:7:8", + "referencedDeclaration": 4204, + "src": "536:7:34", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "509:16:8", + "src": "527:16:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1829, + "id": 4226, "nodeType": "ExpressionStatement", - "src": "509:16:8" + "src": "527:16:34" + }, + { + "expression": { + "argumentTypes": null, + "id": 4229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4227, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4190, + "src": "549:8:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4228, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4206, + "src": "560:9:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "549:20:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4230, + "nodeType": "ExpressionStatement", + "src": "549:20:34" } ] }, "documentation": null, - "id": 1831, + "id": 4232, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -716,16 +749,16 @@ export const StandardTokenMock = "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1810, + "id": 4207, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1803, + "id": 4198, "name": "initialAccount", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "301:22:8", + "scope": 4232, + "src": "296:22:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -733,10 +766,10 @@ export const StandardTokenMock = "typeString": "address" }, "typeName": { - "id": 1802, + "id": 4197, "name": "address", "nodeType": "ElementaryTypeName", - "src": "301:7:8", + "src": "296:7:34", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -747,11 +780,11 @@ export const StandardTokenMock = }, { "constant": false, - "id": 1805, + "id": 4200, "name": "initialBalance", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "329:22:8", + "scope": 4232, + "src": "324:22:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -759,10 +792,10 @@ export const StandardTokenMock = "typeString": "uint256" }, "typeName": { - "id": 1804, + "id": 4199, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "329:7:8", + "src": "324:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -773,11 +806,11 @@ export const StandardTokenMock = }, { "constant": false, - "id": 1807, + "id": 4202, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "357:12:8", + "scope": 4232, + "src": "352:12:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -785,10 +818,10 @@ export const StandardTokenMock = "typeString": "string" }, "typeName": { - "id": 1806, + "id": 4201, "name": "string", "nodeType": "ElementaryTypeName", - "src": "357:6:8", + "src": "352:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -799,11 +832,11 @@ export const StandardTokenMock = }, { "constant": false, - "id": 1809, + "id": 4204, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "375:14:8", + "scope": 4232, + "src": "370:14:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -811,10 +844,10 @@ export const StandardTokenMock = "typeString": "string" }, "typeName": { - "id": 1808, + "id": 4203, "name": "string", "nodeType": "ElementaryTypeName", - "src": "375:6:8", + "src": "370:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -822,58 +855,84 @@ export const StandardTokenMock = }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 4206, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 4232, + "src": "390:17:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "390:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "295:95:8" + "src": "290:118:34" }, "payable": false, "returnParameters": { - "id": 1811, + "id": 4208, "nodeType": "ParameterList", "parameters": [], - "src": "404:0:8" + "src": "422:0:34" }, - "scope": 1832, - "src": "284:246:8", + "scope": 4233, + "src": "279:295:34", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1833, - "src": "127:406:8" + "scope": 4234, + "src": "127:450:34" } ], - "src": "0:534:8" + "src": "0:578:34" }, "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/StandardTokenMock.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/StandardTokenMock.sol", "exportedSymbols": { "StandardTokenMock": [ - 1832 + 4233 ] }, - "id": 1833, + "id": 4234, "nodeType": "SourceUnit", "nodes": [ { - "id": 1789, + "id": 4185, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:8" + "src": "0:23:34" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", - "id": 1790, + "id": 4186, "nodeType": "ImportDirective", - "scope": 1833, - "sourceUnit": 2800, - "src": "26:67:8", + "scope": 4234, + "sourceUnit": 5383, + "src": "26:67:34", "symbolAliases": [], "unitAlias": "" }, @@ -883,48 +942,48 @@ export const StandardTokenMock = "arguments": null, "baseName": { "contractScope": null, - "id": 1791, + "id": 4187, "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "157:13:8", + "referencedDeclaration": 5382, + "src": "157:13:34", "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", + "typeIdentifier": "t_contract$_StandardToken_$5382", "typeString": "contract StandardToken" } }, - "id": 1792, + "id": 4188, "nodeType": "InheritanceSpecifier", - "src": "157:13:8" + "src": "157:13:34" } ], "contractDependencies": [ - 2337, - 2414, - 2446, - 2799 + 4920, + 4997, + 5029, + 5382 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1832, + "id": 4233, "linearizedBaseContracts": [ - 1832, - 2799, - 2337, - 2414, - 2446 + 4233, + 5382, + 4920, + 4997, + 5029 ], "name": "StandardTokenMock", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1795, + "id": 4190, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "175:28:8", + "scope": 4233, + "src": "175:23:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -932,42 +991,25 @@ export const StandardTokenMock = "typeString": "uint256" }, "typeName": { - "id": 1793, + "id": 4189, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "175:7:8", + "src": "175:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 1794, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "201:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, + "value": null, "visibility": "public" }, { "constant": false, - "id": 1797, + "id": 4192, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "207:18:8", + "scope": 4233, + "src": "202:18:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -975,10 +1017,10 @@ export const StandardTokenMock = "typeString": "string" }, "typeName": { - "id": 1796, + "id": 4191, "name": "string", "nodeType": "ElementaryTypeName", - "src": "207:6:8", + "src": "202:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -989,11 +1031,11 @@ export const StandardTokenMock = }, { "constant": false, - "id": 1799, + "id": 4194, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "229:20:8", + "scope": 4233, + "src": "224:20:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1001,10 +1043,10 @@ export const StandardTokenMock = "typeString": "string" }, "typeName": { - "id": 1798, + "id": 4193, "name": "string", "nodeType": "ElementaryTypeName", - "src": "229:6:8", + "src": "224:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1015,11 +1057,11 @@ export const StandardTokenMock = }, { "constant": false, - "id": 1801, + "id": 4196, "name": "totalSupply", "nodeType": "VariableDeclaration", - "scope": 1832, - "src": "253:26:8", + "scope": 4233, + "src": "248:26:34", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1027,10 +1069,10 @@ export const StandardTokenMock = "typeString": "uint256" }, "typeName": { - "id": 1800, + "id": 4195, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "253:7:8", + "src": "248:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1041,14 +1083,14 @@ export const StandardTokenMock = }, { "body": { - "id": 1830, + "id": 4231, "nodeType": "Block", - "src": "404:126:8", + "src": "422:152:34", "statements": [ { "expression": { "argumentTypes": null, - "id": 1816, + "id": 4213, "isConstant": false, "isLValue": false, "isPure": false, @@ -1057,26 +1099,26 @@ export const StandardTokenMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1812, + "id": 4209, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "410:8:8", + "referencedDeclaration": 4837, + "src": "428:8:34", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1814, + "id": 4211, "indexExpression": { "argumentTypes": null, - "id": 1813, + "id": 4210, "name": "initialAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "419:14:8", + "referencedDeclaration": 4198, + "src": "437:14:34", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1087,7 +1129,7 @@ export const StandardTokenMock = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "410:24:8", + "src": "428:24:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1097,45 +1139,45 @@ export const StandardTokenMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1815, + "id": 4212, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "437:14:8", + "referencedDeclaration": 4200, + "src": "455:14:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "410:41:8", + "src": "428:41:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1817, + "id": 4214, "nodeType": "ExpressionStatement", - "src": "410:41:8" + "src": "428:41:34" }, { "expression": { "argumentTypes": null, - "id": 1820, + "id": 4217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1818, + "id": 4215, "name": "totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [ - 1801 + 4196 ], - "referencedDeclaration": 1801, - "src": "457:11:8", + "referencedDeclaration": 4196, + "src": "475:11:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1145,43 +1187,43 @@ export const StandardTokenMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1819, + "id": 4216, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "471:14:8", + "referencedDeclaration": 4200, + "src": "489:14:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "457:28:8", + "src": "475:28:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1821, + "id": 4218, "nodeType": "ExpressionStatement", - "src": "457:28:8" + "src": "475:28:34" }, { "expression": { "argumentTypes": null, - "id": 1824, + "id": 4221, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1822, + "id": 4219, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1797, - "src": "491:4:8", + "referencedDeclaration": 4192, + "src": "509:4:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -1191,43 +1233,43 @@ export const StandardTokenMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1823, + "id": 4220, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1807, - "src": "498:5:8", + "referencedDeclaration": 4202, + "src": "516:5:34", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "491:12:8", + "src": "509:12:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1825, + "id": 4222, "nodeType": "ExpressionStatement", - "src": "491:12:8" + "src": "509:12:34" }, { "expression": { "argumentTypes": null, - "id": 1828, + "id": 4225, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1826, + "id": 4223, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1799, - "src": "509:6:8", + "referencedDeclaration": 4194, + "src": "527:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -1237,31 +1279,77 @@ export const StandardTokenMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1827, + "id": 4224, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "518:7:8", + "referencedDeclaration": 4204, + "src": "536:7:34", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "509:16:8", + "src": "527:16:34", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1829, + "id": 4226, + "nodeType": "ExpressionStatement", + "src": "527:16:34" + }, + { + "expression": { + "argumentTypes": null, + "id": 4229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4227, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4190, + "src": "549:8:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4228, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4206, + "src": "560:9:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "549:20:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4230, "nodeType": "ExpressionStatement", - "src": "509:16:8" + "src": "549:20:34" } ] }, "documentation": null, - "id": 1831, + "id": 4232, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1269,16 +1357,16 @@ export const StandardTokenMock = "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1810, + "id": 4207, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1803, + "id": 4198, "name": "initialAccount", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "301:22:8", + "scope": 4232, + "src": "296:22:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1286,10 +1374,10 @@ export const StandardTokenMock = "typeString": "address" }, "typeName": { - "id": 1802, + "id": 4197, "name": "address", "nodeType": "ElementaryTypeName", - "src": "301:7:8", + "src": "296:7:34", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1300,11 +1388,11 @@ export const StandardTokenMock = }, { "constant": false, - "id": 1805, + "id": 4200, "name": "initialBalance", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "329:22:8", + "scope": 4232, + "src": "324:22:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1312,10 +1400,10 @@ export const StandardTokenMock = "typeString": "uint256" }, "typeName": { - "id": 1804, + "id": 4199, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "329:7:8", + "src": "324:7:34", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1326,11 +1414,11 @@ export const StandardTokenMock = }, { "constant": false, - "id": 1807, + "id": 4202, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "357:12:8", + "scope": 4232, + "src": "352:12:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1338,10 +1426,10 @@ export const StandardTokenMock = "typeString": "string" }, "typeName": { - "id": 1806, + "id": 4201, "name": "string", "nodeType": "ElementaryTypeName", - "src": "357:6:8", + "src": "352:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1352,11 +1440,11 @@ export const StandardTokenMock = }, { "constant": false, - "id": 1809, + "id": 4204, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "375:14:8", + "scope": 4232, + "src": "370:14:34", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1364,10 +1452,10 @@ export const StandardTokenMock = "typeString": "string" }, "typeName": { - "id": 1808, + "id": 4203, "name": "string", "nodeType": "ElementaryTypeName", - "src": "375:6:8", + "src": "370:6:34", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1375,35 +1463,61 @@ export const StandardTokenMock = }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 4206, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 4232, + "src": "390:17:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "390:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "295:95:8" + "src": "290:118:34" }, "payable": false, "returnParameters": { - "id": 1811, + "id": 4208, "nodeType": "ParameterList", "parameters": [], - "src": "404:0:8" + "src": "422:0:34" }, - "scope": 1832, - "src": "284:246:8", + "scope": 4233, + "src": "279:295:34", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1833, - "src": "127:406:8" + "scope": 4234, + "src": "127:450:34" } ], - "src": "0:534:8" + "src": "0:578:34" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.580Z" + "updatedAt": "2018-07-07T07:45:08.914Z" } \ No newline at end of file diff --git a/artifacts/ts/StandardTokenWithFeeMock.ts b/artifacts/ts/StandardTokenWithFeeMock.ts index 67268ca96..17e5a0958 100644 --- a/artifacts/ts/StandardTokenWithFeeMock.ts +++ b/artifacts/ts/StandardTokenWithFeeMock.ts @@ -324,51 +324,51 @@ export const StandardTokenWithFeeMock = "type": "function" } ], - "bytecode": "0x608060405260126003553480156200001657600080fd5b5060405162001562380380620015628339810180604052810190808051906020019092919080519060200190929190805182019291906020018051820192919060200180519060200190929190505050836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836006819055508260049080519060200190620000c8929190620000f4565b508160059080519060200190620000e1929190620000f4565b50806007819055505050505050620001a3565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013757805160ff191683800117855562000168565b8280016001018555821562000168579182015b82811115620001675782518255916020019190600101906200014a565b5b5090506200017791906200017b565b5090565b620001a091905b808211156200019c57600081600090555060010162000182565b5090565b90565b6113af80620001b36000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100ca578063095ea7b31461015a57806318160ddd146101bf57806323b872dd146101ea578063313ce5671461026f578063661884631461029a57806369fe0e2d146102ff57806370a082311461034457806395d89b411461039b578063a9059cbb1461042b578063d73dd62314610490578063dd62ed3e146104f5578063ddca3f431461056c575b600080fd5b3480156100d657600080fd5b506100df610597565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561011f578082015181840152602081019050610104565b50505050905090810190601f16801561014c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016657600080fd5b506101a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610635565b604051808215151515815260200191505060405180910390f35b3480156101cb57600080fd5b506101d4610727565b6040518082815260200191505060405180910390f35b3480156101f657600080fd5b50610255600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072d565b604051808215151515815260200191505060405180910390f35b34801561027b57600080fd5b50610284610b01565b6040518082815260200191505060405180910390f35b3480156102a657600080fd5b506102e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b07565b604051808215151515815260200191505060405180910390f35b34801561030b57600080fd5b5061032a60048036038101908080359060200190929190505050610d98565b604051808215151515815260200191505060405180910390f35b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da6565b6040518082815260200191505060405180910390f35b3480156103a757600080fd5b506103b0610dee565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103f05780820151818401526020810190506103d5565b50505050905090810190601f16801561041d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561043757600080fd5b50610476600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e8c565b604051808215151515815260200191505060405180910390f35b34801561049c57600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c5565b604051808215151515815260200191505060405180910390f35b34801561050157600080fd5b50610556600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c1565b6040518082815260200191505060405180910390f35b34801561057857600080fd5b50610581611348565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561062d5780601f106106025761010080835404028352916020019161062d565b820191906000526020600020905b81548152906001019060200180831161061057829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561076c57600080fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111515156107b957600080fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561084457600080fd5b6108596007548461134e90919063ffffffff16565b90506108ac836000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093f816000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a1083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610c18576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cac565b610c2b838261134e90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600081600781905550919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e845780601f10610e5957610100808354040283529160200191610e84565b820191906000526020600020905b815481529060010190602001808311610e6757829003601f168201915b505050505081565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610ecb57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610f1857600080fd5b610f2d6007548461136790919063ffffffff16565b9050610f80816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611013836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600061115682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b600082821115151561135c57fe5b818303905092915050565b6000818301905082811015151561137a57fe5b809050929150505600a165627a7a723058207cfda84d8c0638c7261de0474924deac21400fa7e9f833b2198d7d61927925150029", - "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100ca578063095ea7b31461015a57806318160ddd146101bf57806323b872dd146101ea578063313ce5671461026f578063661884631461029a57806369fe0e2d146102ff57806370a082311461034457806395d89b411461039b578063a9059cbb1461042b578063d73dd62314610490578063dd62ed3e146104f5578063ddca3f431461056c575b600080fd5b3480156100d657600080fd5b506100df610597565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561011f578082015181840152602081019050610104565b50505050905090810190601f16801561014c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016657600080fd5b506101a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610635565b604051808215151515815260200191505060405180910390f35b3480156101cb57600080fd5b506101d4610727565b6040518082815260200191505060405180910390f35b3480156101f657600080fd5b50610255600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072d565b604051808215151515815260200191505060405180910390f35b34801561027b57600080fd5b50610284610b01565b6040518082815260200191505060405180910390f35b3480156102a657600080fd5b506102e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b07565b604051808215151515815260200191505060405180910390f35b34801561030b57600080fd5b5061032a60048036038101908080359060200190929190505050610d98565b604051808215151515815260200191505060405180910390f35b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da6565b6040518082815260200191505060405180910390f35b3480156103a757600080fd5b506103b0610dee565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103f05780820151818401526020810190506103d5565b50505050905090810190601f16801561041d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561043757600080fd5b50610476600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e8c565b604051808215151515815260200191505060405180910390f35b34801561049c57600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c5565b604051808215151515815260200191505060405180910390f35b34801561050157600080fd5b50610556600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c1565b6040518082815260200191505060405180910390f35b34801561057857600080fd5b50610581611348565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561062d5780601f106106025761010080835404028352916020019161062d565b820191906000526020600020905b81548152906001019060200180831161061057829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561076c57600080fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111515156107b957600080fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561084457600080fd5b6108596007548461134e90919063ffffffff16565b90506108ac836000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093f816000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a1083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610c18576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cac565b610c2b838261134e90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600081600781905550919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e845780601f10610e5957610100808354040283529160200191610e84565b820191906000526020600020905b815481529060010190602001808311610e6757829003601f168201915b505050505081565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610ecb57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610f1857600080fd5b610f2d6007548461136790919063ffffffff16565b9050610f80816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611013836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600061115682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b600082821115151561135c57fe5b818303905092915050565b6000818301905082811015151561137a57fe5b809050929150505600a165627a7a723058207cfda84d8c0638c7261de0474924deac21400fa7e9f833b2198d7d61927925150029", - "sourceMap": "183:2001:9:-;;;295:2;269:28;;400:280;8:9:-1;5:2;;;30:1;27;20:12;5:2;400:280:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;571:14;544:8;:24;553:14;544:24;;;;;;;;;;;;;;;:41;;;;605:14;591:11;:28;;;;632:5;625:4;:12;;;;;;;;;;;;:::i;:::-;;652:7;643:6;:16;;;;;;;;;;;;:::i;:::-;;671:4;665:3;:10;;;;400:280;;;;;183:2001;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "183:2001:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;301:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;301:18:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;301:18:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;347:26:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;347:26:9;;;;;;;;;;;;;;;;;;;;;;;976:498;;8:9:-1;5:2;;;30:1;27;20:12;5:2;976:498:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;269:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;269:28:9;;;;;;;;;;;;;;;;;;;;;;;3701:425:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2109:73:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2109:73:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;323:20:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;323:20:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;323:20:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1669:436;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1669:436:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;377:18:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;377:18:9;;;;;;;;;;;;;;;;;;;;;;;301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:17:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;347:26:9:-;;;;:::o;976:498::-;1058:4;1194:24;1093:1;1078:17;;:3;:17;;;;1070:26;;;;;;;;1120:8;:15;1129:5;1120:15;;;;;;;;;;;;;;;;1110:6;:25;;1102:34;;;;;;;;1160:7;:14;1168:5;1160:14;;;;;;;;;;;;;;;:26;1175:10;1160:26;;;;;;;;;;;;;;;;1150:6;:36;;1142:45;;;;;;;;1221:15;1232:3;;1221:6;:10;;:15;;;;:::i;:::-;1194:42;;1261:27;1281:6;1261:8;:15;1270:5;1261:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;1243:8;:15;1252:5;1243:15;;;;;;;;;;;;;;;:45;;;;1310:35;1328:16;1310:8;:13;1319:3;1310:13;;;;;;;;;;;;;;;;:17;;:35;;;;:::i;:::-;1294:8;:13;1303:3;1294:13;;;;;;;;;;;;;;;:51;;;;1380:38;1411:6;1380:7;:14;1388:5;1380:14;;;;;;;;;;;;;;;:26;1395:10;1380:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1351:7;:14;1359:5;1351:14;;;;;;;;;;;;;;;:26;1366:10;1351:26;;;;;;;;;;;;;;;:67;;;;1440:3;1424:28;;1433:5;1424:28;;;1445:6;1424:28;;;;;;;;;;;;;;;;;;1465:4;1458:11;;976:498;;;;;;:::o;269:28::-;;;;:::o;3701:425:17:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;2109:73:9:-;2155:4;2173;2167:3;:10;;;;2109:73;;;:::o;1131:99:12:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;323:20:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1669:436::-;1732:4;1822:23;1767:1;1752:17;;:3;:17;;;;1744:26;;;;;;;;1794:8;:20;1803:10;1794:20;;;;;;;;;;;;;;;;1784:6;:30;;1776:39;;;;;;;;1848:15;1859:3;;1848:6;:10;;:15;;;;:::i;:::-;1822:41;;1956;1981:15;1956:8;:20;1965:10;1956:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;1933:8;:20;1942:10;1933:20;;;;;;;;;;;;;;;:64;;;;2019:25;2037:6;2019:8;:13;2028:3;2019:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;2003:8;:13;2012:3;2003:13;;;;;;;;;;;;;;;:41;;;;2071:3;2050:33;;2059:10;2050:33;;;2076:6;2050:33;;;;;;;;;;;;;;;;;;2096:4;2089:11;;1669:436;;;;;:::o;2946:293:17:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;377:18:9:-;;;;:::o;1042:110:10:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", - "source": "pragma solidity 0.4.23;\n\n\nimport \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\n\n\n// mock class using BasicToken\ncontract StandardTokenWithFeeMock is StandardToken {\n using SafeMath for uint256;\n\n uint256 public decimals = 18;\n string public name;\n string public symbol;\n uint256 public totalSupply;\n uint256 public fee;\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol,\n uint256 _fee)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n fee = _fee;\n }\n\n /**\n * @dev Transfer tokens from one address to another with a fee component\n * @param _from address The address which you want to send tokens from\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n require(_value <= balances[_from]);\n require(_value <= allowed[_from][msg.sender]);\n\n uint256 netValueMinusFee = _value.sub(fee);\n\n balances[_from] = balances[_from].sub(_value);\n balances[_to] = balances[_to].add(netValueMinusFee);\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n Transfer(_from, _to, _value);\n return true;\n }\n\n /**\n * @dev transfer token for a specified address with a fee component applied to the send\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n require(_value <= balances[msg.sender]);\n\n uint256 netValuePlusFee = _value.add(fee);\n\n // SafeMath.sub will throw if there is not enough balance.\n balances[msg.sender] = balances[msg.sender].sub(netValuePlusFee);\n balances[_to] = balances[_to].add(_value);\n Transfer(msg.sender, _to, _value);\n return true;\n }\n\n function setFee(uint256 _fee) public returns (bool) {\n fee = _fee;\n }\n}\n", - "sourcePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/StandardTokenWithFeeMock.sol", + "bytecode": "0x608060405260126003553480156200001657600080fd5b5060405162001562380380620015628339810180604052810190808051906020019092919080519060200190929190805182019291906020018051820192919060200180519060200190929190505050836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836006819055508260049080519060200190620000c8929190620000f4565b508160059080519060200190620000e1929190620000f4565b50806007819055505050505050620001a3565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013757805160ff191683800117855562000168565b8280016001018555821562000168579182015b82811115620001675782518255916020019190600101906200014a565b5b5090506200017791906200017b565b5090565b620001a091905b808211156200019c57600081600090555060010162000182565b5090565b90565b6113af80620001b36000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100ca578063095ea7b31461015a57806318160ddd146101bf57806323b872dd146101ea578063313ce5671461026f578063661884631461029a57806369fe0e2d146102ff57806370a082311461034457806395d89b411461039b578063a9059cbb1461042b578063d73dd62314610490578063dd62ed3e146104f5578063ddca3f431461056c575b600080fd5b3480156100d657600080fd5b506100df610597565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561011f578082015181840152602081019050610104565b50505050905090810190601f16801561014c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016657600080fd5b506101a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610635565b604051808215151515815260200191505060405180910390f35b3480156101cb57600080fd5b506101d4610727565b6040518082815260200191505060405180910390f35b3480156101f657600080fd5b50610255600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072d565b604051808215151515815260200191505060405180910390f35b34801561027b57600080fd5b50610284610b01565b6040518082815260200191505060405180910390f35b3480156102a657600080fd5b506102e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b07565b604051808215151515815260200191505060405180910390f35b34801561030b57600080fd5b5061032a60048036038101908080359060200190929190505050610d98565b604051808215151515815260200191505060405180910390f35b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da6565b6040518082815260200191505060405180910390f35b3480156103a757600080fd5b506103b0610dee565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103f05780820151818401526020810190506103d5565b50505050905090810190601f16801561041d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561043757600080fd5b50610476600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e8c565b604051808215151515815260200191505060405180910390f35b34801561049c57600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c5565b604051808215151515815260200191505060405180910390f35b34801561050157600080fd5b50610556600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c1565b6040518082815260200191505060405180910390f35b34801561057857600080fd5b50610581611348565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561062d5780601f106106025761010080835404028352916020019161062d565b820191906000526020600020905b81548152906001019060200180831161061057829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561076c57600080fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111515156107b957600080fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561084457600080fd5b6108596007548461134e90919063ffffffff16565b90506108ac836000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093f816000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a1083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610c18576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cac565b610c2b838261134e90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600081600781905550919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e845780601f10610e5957610100808354040283529160200191610e84565b820191906000526020600020905b815481529060010190602001808311610e6757829003601f168201915b505050505081565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610ecb57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610f1857600080fd5b610f2d6007548461136790919063ffffffff16565b9050610f80816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611013836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600061115682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b600082821115151561135c57fe5b818303905092915050565b6000818301905082811015151561137a57fe5b809050929150505600a165627a7a723058205e31bb65cafc0f2368a2d7be8cb3c97843f806fc3457ba2ce0de9efa3c1c8bd70029", + "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100ca578063095ea7b31461015a57806318160ddd146101bf57806323b872dd146101ea578063313ce5671461026f578063661884631461029a57806369fe0e2d146102ff57806370a082311461034457806395d89b411461039b578063a9059cbb1461042b578063d73dd62314610490578063dd62ed3e146104f5578063ddca3f431461056c575b600080fd5b3480156100d657600080fd5b506100df610597565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561011f578082015181840152602081019050610104565b50505050905090810190601f16801561014c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016657600080fd5b506101a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610635565b604051808215151515815260200191505060405180910390f35b3480156101cb57600080fd5b506101d4610727565b6040518082815260200191505060405180910390f35b3480156101f657600080fd5b50610255600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072d565b604051808215151515815260200191505060405180910390f35b34801561027b57600080fd5b50610284610b01565b6040518082815260200191505060405180910390f35b3480156102a657600080fd5b506102e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b07565b604051808215151515815260200191505060405180910390f35b34801561030b57600080fd5b5061032a60048036038101908080359060200190929190505050610d98565b604051808215151515815260200191505060405180910390f35b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da6565b6040518082815260200191505060405180910390f35b3480156103a757600080fd5b506103b0610dee565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103f05780820151818401526020810190506103d5565b50505050905090810190601f16801561041d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561043757600080fd5b50610476600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e8c565b604051808215151515815260200191505060405180910390f35b34801561049c57600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110c5565b604051808215151515815260200191505060405180910390f35b34801561050157600080fd5b50610556600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c1565b6040518082815260200191505060405180910390f35b34801561057857600080fd5b50610581611348565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561062d5780601f106106025761010080835404028352916020019161062d565b820191906000526020600020905b81548152906001019060200180831161061057829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60065481565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561076c57600080fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111515156107b957600080fd5b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561084457600080fd5b6108596007548461134e90919063ffffffff16565b90506108ac836000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093f816000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a1083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610c18576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cac565b610c2b838261134e90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600081600781905550919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e845780601f10610e5957610100808354040283529160200191610e84565b820191906000526020600020905b815481529060010190602001808311610e6757829003601f168201915b505050505081565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610ecb57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610f1857600080fd5b610f2d6007548461136790919063ffffffff16565b9050610f80816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611013836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600061115682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461136790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b600082821115151561135c57fe5b818303905092915050565b6000818301905082811015151561137a57fe5b809050929150505600a165627a7a723058205e31bb65cafc0f2368a2d7be8cb3c97843f806fc3457ba2ce0de9efa3c1c8bd70029", + "sourceMap": "183:2011:35:-;;;295:2;269:28;;400:280;8:9:-1;5:2;;;30:1;27;20:12;5:2;400:280:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;571:14;544:8;:24;553:14;544:24;;;;;;;;;;;;;;;:41;;;;605:14;591:11;:28;;;;632:5;625:4;:12;;;;;;;;;;;;:::i;:::-;;652:7;643:6;:16;;;;;;;;;;;;:::i;:::-;;671:4;665:3;:10;;;;400:280;;;;;183:2011;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "183:2011:35:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;301:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;301:18:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;301:18:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1829:188:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1829:188:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;347:26:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;347:26:35;;;;;;;;;;;;;;;;;;;;;;;976:503;;8:9:-1;5:2;;;30:1;27;20:12;5:2;976:503:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;269:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;269:28:35;;;;;;;;;;;;;;;;;;;;;;;3701:425:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:425:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2119:73:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2119:73:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1131:99:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:99:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;323:20:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;323:20:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;323:20:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1674:441;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1674:441:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2946:293:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2946:293:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2336:153:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;377:18:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;377:18:35;;;;;;;;;;;;;;;;;;;;;;;301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1829:188:45:-;1896:4;1940:6;1908:7;:19;1916:10;1908:19;;;;;;;;;;;;;;;:29;1928:8;1908:29;;;;;;;;;;;;;;;:38;;;;1978:8;1957:38;;1966:10;1957:38;;;1988:6;1957:38;;;;;;;;;;;;;;;;;;2008:4;2001:11;;1829:188;;;;:::o;347:26:35:-;;;;:::o;976:503::-;1058:4;1194:24;1093:1;1078:17;;:3;:17;;;;1070:26;;;;;;;;1120:8;:15;1129:5;1120:15;;;;;;;;;;;;;;;;1110:6;:25;;1102:34;;;;;;;;1160:7;:14;1168:5;1160:14;;;;;;;;;;;;;;;:26;1175:10;1160:26;;;;;;;;;;;;;;;;1150:6;:36;;1142:45;;;;;;;;1221:15;1232:3;;1221:6;:10;;:15;;;;:::i;:::-;1194:42;;1261:27;1281:6;1261:8;:15;1270:5;1261:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;1243:8;:15;1252:5;1243:15;;;;;;;;;;;;;;;:45;;;;1310:35;1328:16;1310:8;:13;1319:3;1310:13;;;;;;;;;;;;;;;;:17;;:35;;;;:::i;:::-;1294:8;:13;1303:3;1294:13;;;;;;;;;;;;;;;:51;;;;1380:38;1411:6;1380:7;:14;1388:5;1380:14;;;;;;;;;;;;;;;:26;1395:10;1380:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;1351:7;:14;1359:5;1351:14;;;;;;;;;;;;;;;:26;1366:10;1351:26;;;;;;;;;;;;;;;:67;;;;1445:3;1429:28;;1438:5;1429:28;;;1450:6;1429:28;;;;;;;;;;;;;;;;;;1470:4;1463:11;;976:503;;;;;;:::o;269:28::-;;;;:::o;3701:425:45:-;3804:4;3818:13;3834:7;:19;3842:10;3834:19;;;;;;;;;;;;;;;:29;3854:8;3834:29;;;;;;;;;;;;;;;;3818:45;;3892:8;3873:16;:27;3869:164;;;3942:1;3910:7;:19;3918:10;3910:19;;;;;;;;;;;;;;;:29;3930:8;3910:29;;;;;;;;;;;;;;;:33;;;;3869:164;;;3996:30;4009:16;3996:8;:12;;:30;;;;:::i;:::-;3964:7;:19;3972:10;3964:19;;;;;;;;;;;;;;;:29;3984:8;3964:29;;;;;;;;;;;;;;;:62;;;;3869:164;4064:8;4043:61;;4052:10;4043:61;;;4074:7;:19;4082:10;4074:19;;;;;;;;;;;;;;;:29;4094:8;4074:29;;;;;;;;;;;;;;;;4043:61;;;;;;;;;;;;;;;;;;4117:4;4110:11;;3701:425;;;;;:::o;2119:73:35:-;2165:4;2183;2177:3;:10;;;;2119:73;;;:::o;1131:99:40:-;1187:7;1209:8;:16;1218:6;1209:16;;;;;;;;;;;;;;;;1202:23;;1131:99;;;:::o;323:20:35:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1674:441::-;1737:4;1827:23;1772:1;1757:17;;:3;:17;;;;1749:26;;;;;;;;1799:8;:20;1808:10;1799:20;;;;;;;;;;;;;;;;1789:6;:30;;1781:39;;;;;;;;1853:15;1864:3;;1853:6;:10;;:15;;;;:::i;:::-;1827:41;;1961;1986:15;1961:8;:20;1970:10;1961:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;1938:8;:20;1947:10;1938:20;;;;;;;;;;;;;;;:64;;;;2024:25;2042:6;2024:8;:13;2033:3;2024:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;2008:8;:13;2017:3;2008:13;;;;;;;;;;;;;;;:41;;;;2081:3;2060:33;;2069:10;2060:33;;;2086:6;2060:33;;;;;;;;;;;;;;;;;;2106:4;2099:11;;1674:441;;;;;:::o;2946:293:45:-;3044:4;3098:46;3132:11;3098:7;:19;3106:10;3098:19;;;;;;;;;;;;;;;:29;3118:8;3098:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;:29;3078:8;3058:29;;;;;;;;;;;;;;;:87;;;;3177:8;3156:61;;3165:10;3156:61;;;3187:7;:19;3195:10;3187:19;;;;;;;;;;;;;;;:29;3207:8;3187:29;;;;;;;;;;;;;;;;3156:61;;;;;;;;;;;;;;;;;;3230:4;3223:11;;2946:293;;;;:::o;2336:153::-;2435:7;2459;:15;2467:6;2459:15;;;;;;;;;;;;;;;:25;2475:8;2459:25;;;;;;;;;;;;;;;;2452:32;;2336:153;;;;:::o;377:18:35:-;;;;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o", + "source": "pragma solidity 0.4.24;\n\n\nimport \"zeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\nimport \"zeppelin-solidity/contracts/math/SafeMath.sol\";\n\n\n// mock class using BasicToken\ncontract StandardTokenWithFeeMock is StandardToken {\n using SafeMath for uint256;\n\n uint256 public decimals = 18;\n string public name;\n string public symbol;\n uint256 public totalSupply;\n uint256 public fee;\n\n constructor(\n address initialAccount,\n uint256 initialBalance,\n string _name,\n string _symbol,\n uint256 _fee)\n public\n {\n balances[initialAccount] = initialBalance;\n totalSupply = initialBalance;\n name = _name;\n symbol = _symbol;\n fee = _fee;\n }\n\n /**\n * @dev Transfer tokens from one address to another with a fee component\n * @param _from address The address which you want to send tokens from\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n require(_value <= balances[_from]);\n require(_value <= allowed[_from][msg.sender]);\n\n uint256 netValueMinusFee = _value.sub(fee);\n\n balances[_from] = balances[_from].sub(_value);\n balances[_to] = balances[_to].add(netValueMinusFee);\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);\n emit Transfer(_from, _to, _value);\n return true;\n }\n\n /**\n * @dev transfer token for a specified address with a fee component applied to the send\n * @param _to The address to transfer to.\n * @param _value The amount to be transferred.\n */\n function transfer(address _to, uint256 _value) public returns (bool) {\n require(_to != address(0));\n require(_value <= balances[msg.sender]);\n\n uint256 netValuePlusFee = _value.add(fee);\n\n // SafeMath.sub will throw if there is not enough balance.\n balances[msg.sender] = balances[msg.sender].sub(netValuePlusFee);\n balances[_to] = balances[_to].add(_value);\n emit Transfer(msg.sender, _to, _value);\n return true;\n }\n\n function setFee(uint256 _fee) public returns (bool) {\n fee = _fee;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/StandardTokenWithFeeMock.sol", "ast": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/StandardTokenWithFeeMock.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/StandardTokenWithFeeMock.sol", "exportedSymbols": { "StandardTokenWithFeeMock": [ - 2061 + 4462 ] }, - "id": 2062, + "id": 4463, "nodeType": "SourceUnit", "nodes": [ { - "id": 1834, + "id": 4235, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:9" + "src": "0:23:35" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", - "id": 1835, + "id": 4236, "nodeType": "ImportDirective", - "scope": 2062, - "sourceUnit": 2800, - "src": "26:67:9", + "scope": 4463, + "sourceUnit": 5383, + "src": "26:67:35", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "zeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1836, + "id": 4237, "nodeType": "ImportDirective", - "scope": 2062, - "sourceUnit": 2156, - "src": "94:55:9", + "scope": 4463, + "sourceUnit": 4739, + "src": "94:55:35", "symbolAliases": [], "unitAlias": "" }, @@ -378,62 +378,62 @@ export const StandardTokenWithFeeMock = "arguments": null, "baseName": { "contractScope": null, - "id": 1837, + "id": 4238, "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "220:13:9", + "referencedDeclaration": 5382, + "src": "220:13:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", + "typeIdentifier": "t_contract$_StandardToken_$5382", "typeString": "contract StandardToken" } }, - "id": 1838, + "id": 4239, "nodeType": "InheritanceSpecifier", - "src": "220:13:9" + "src": "220:13:35" } ], "contractDependencies": [ - 2337, - 2414, - 2446, - 2799 + 4920, + 4997, + 5029, + 5382 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 2061, + "id": 4462, "linearizedBaseContracts": [ - 2061, - 2799, - 2337, - 2414, - 2446 + 4462, + 5382, + 4920, + 4997, + 5029 ], "name": "StandardTokenWithFeeMock", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1841, + "id": 4242, "libraryName": { "contractScope": null, - "id": 1839, + "id": 4240, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "244:8:9", + "referencedDeclaration": 4738, + "src": "244:8:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", + "typeIdentifier": "t_contract$_SafeMath_$4738", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "238:27:9", + "src": "238:27:35", "typeName": { - "id": 1840, + "id": 4241, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "257:7:9", + "src": "257:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -442,11 +442,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1844, + "id": 4245, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "269:28:9", + "scope": 4462, + "src": "269:28:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -454,10 +454,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1842, + "id": 4243, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "269:7:9", + "src": "269:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -466,14 +466,14 @@ export const StandardTokenWithFeeMock = "value": { "argumentTypes": null, "hexValue": "3138", - "id": 1843, + "id": 4244, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "295:2:9", + "src": "295:2:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -485,11 +485,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1846, + "id": 4247, "name": "name", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "301:18:9", + "scope": 4462, + "src": "301:18:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -497,10 +497,10 @@ export const StandardTokenWithFeeMock = "typeString": "string" }, "typeName": { - "id": 1845, + "id": 4246, "name": "string", "nodeType": "ElementaryTypeName", - "src": "301:6:9", + "src": "301:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -511,11 +511,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1848, + "id": 4249, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "323:20:9", + "scope": 4462, + "src": "323:20:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -523,10 +523,10 @@ export const StandardTokenWithFeeMock = "typeString": "string" }, "typeName": { - "id": 1847, + "id": 4248, "name": "string", "nodeType": "ElementaryTypeName", - "src": "323:6:9", + "src": "323:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -537,11 +537,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1850, + "id": 4251, "name": "totalSupply", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "347:26:9", + "scope": 4462, + "src": "347:26:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -549,10 +549,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1849, + "id": 4250, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "347:7:9", + "src": "347:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -563,11 +563,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1852, + "id": 4253, "name": "fee", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "377:18:9", + "scope": 4462, + "src": "377:18:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -575,10 +575,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1851, + "id": 4252, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "377:7:9", + "src": "377:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -589,14 +589,14 @@ export const StandardTokenWithFeeMock = }, { "body": { - "id": 1887, + "id": 4288, "nodeType": "Block", - "src": "538:142:9", + "src": "538:142:35", "statements": [ { "expression": { "argumentTypes": null, - "id": 1869, + "id": 4270, "isConstant": false, "isLValue": false, "isPure": false, @@ -605,26 +605,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1865, + "id": 4266, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "544:8:9", + "referencedDeclaration": 4837, + "src": "544:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1867, + "id": 4268, "indexExpression": { "argumentTypes": null, - "id": 1866, + "id": 4267, "name": "initialAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1854, - "src": "553:14:9", + "referencedDeclaration": 4255, + "src": "553:14:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -635,7 +635,7 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "544:24:9", + "src": "544:24:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -645,45 +645,45 @@ export const StandardTokenWithFeeMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1868, + "id": 4269, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1856, - "src": "571:14:9", + "referencedDeclaration": 4257, + "src": "571:14:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "544:41:9", + "src": "544:41:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1870, + "id": 4271, "nodeType": "ExpressionStatement", - "src": "544:41:9" + "src": "544:41:35" }, { "expression": { "argumentTypes": null, - "id": 1873, + "id": 4274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1871, + "id": 4272, "name": "totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [ - 1850 + 4251 ], - "referencedDeclaration": 1850, - "src": "591:11:9", + "referencedDeclaration": 4251, + "src": "591:11:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -693,43 +693,43 @@ export const StandardTokenWithFeeMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1872, + "id": 4273, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1856, - "src": "605:14:9", + "referencedDeclaration": 4257, + "src": "605:14:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "591:28:9", + "src": "591:28:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1874, + "id": 4275, "nodeType": "ExpressionStatement", - "src": "591:28:9" + "src": "591:28:35" }, { "expression": { "argumentTypes": null, - "id": 1877, + "id": 4278, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1875, + "id": 4276, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1846, - "src": "625:4:9", + "referencedDeclaration": 4247, + "src": "625:4:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -739,43 +739,43 @@ export const StandardTokenWithFeeMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1876, + "id": 4277, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, - "src": "632:5:9", + "referencedDeclaration": 4259, + "src": "632:5:35", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "625:12:9", + "src": "625:12:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1878, + "id": 4279, "nodeType": "ExpressionStatement", - "src": "625:12:9" + "src": "625:12:35" }, { "expression": { "argumentTypes": null, - "id": 1881, + "id": 4282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1879, + "id": 4280, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1848, - "src": "643:6:9", + "referencedDeclaration": 4249, + "src": "643:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -785,43 +785,43 @@ export const StandardTokenWithFeeMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1880, + "id": 4281, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1860, - "src": "652:7:9", + "referencedDeclaration": 4261, + "src": "652:7:35", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "643:16:9", + "src": "643:16:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1882, + "id": 4283, "nodeType": "ExpressionStatement", - "src": "643:16:9" + "src": "643:16:35" }, { "expression": { "argumentTypes": null, - "id": 1885, + "id": 4286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1883, + "id": 4284, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "665:3:9", + "referencedDeclaration": 4253, + "src": "665:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -831,31 +831,31 @@ export const StandardTokenWithFeeMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1884, + "id": 4285, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1862, - "src": "671:4:9", + "referencedDeclaration": 4263, + "src": "671:4:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "665:10:9", + "src": "665:10:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1886, + "id": 4287, "nodeType": "ExpressionStatement", - "src": "665:10:9" + "src": "665:10:35" } ] }, "documentation": null, - "id": 1888, + "id": 4289, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -863,16 +863,16 @@ export const StandardTokenWithFeeMock = "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1863, + "id": 4264, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1854, + "id": 4255, "name": "initialAccount", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "417:22:9", + "scope": 4289, + "src": "417:22:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -880,10 +880,10 @@ export const StandardTokenWithFeeMock = "typeString": "address" }, "typeName": { - "id": 1853, + "id": 4254, "name": "address", "nodeType": "ElementaryTypeName", - "src": "417:7:9", + "src": "417:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -894,11 +894,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1856, + "id": 4257, "name": "initialBalance", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "445:22:9", + "scope": 4289, + "src": "445:22:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -906,10 +906,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1855, + "id": 4256, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "445:7:9", + "src": "445:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -920,11 +920,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1858, + "id": 4259, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "473:12:9", + "scope": 4289, + "src": "473:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -932,10 +932,10 @@ export const StandardTokenWithFeeMock = "typeString": "string" }, "typeName": { - "id": 1857, + "id": 4258, "name": "string", "nodeType": "ElementaryTypeName", - "src": "473:6:9", + "src": "473:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -946,11 +946,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1860, + "id": 4261, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "491:14:9", + "scope": 4289, + "src": "491:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -958,10 +958,10 @@ export const StandardTokenWithFeeMock = "typeString": "string" }, "typeName": { - "id": 1859, + "id": 4260, "name": "string", "nodeType": "ElementaryTypeName", - "src": "491:6:9", + "src": "491:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -972,11 +972,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1862, + "id": 4263, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "511:12:9", + "scope": 4289, + "src": "511:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -984,10 +984,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1861, + "id": 4262, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "511:7:9", + "src": "511:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -997,26 +997,26 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "src": "411:113:9" + "src": "411:113:35" }, "payable": false, "returnParameters": { - "id": 1864, + "id": 4265, "nodeType": "ParameterList", "parameters": [], - "src": "538:0:9" + "src": "538:0:35" }, - "scope": 2061, - "src": "400:280:9", + "scope": 4462, + "src": "400:280:35", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1980, + "id": 4381, "nodeType": "Block", - "src": "1064:410:9", + "src": "1064:415:35", "statements": [ { "expression": { @@ -1028,19 +1028,19 @@ export const StandardTokenWithFeeMock = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1904, + "id": 4305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1900, + "id": 4301, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1078:3:9", + "referencedDeclaration": 4293, + "src": "1078:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1054,14 +1054,14 @@ export const StandardTokenWithFeeMock = { "argumentTypes": null, "hexValue": "30", - "id": 1902, + "id": 4303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1093:1:9", + "src": "1093:1:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1077,20 +1077,20 @@ export const StandardTokenWithFeeMock = "typeString": "int_const 0" } ], - "id": 1901, + "id": 4302, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1085:7:9", + "src": "1085:7:35", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1903, + "id": 4304, "isConstant": false, "isLValue": false, "isPure": true, @@ -1098,13 +1098,13 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1085:10:9", + "src": "1085:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1078:17:9", + "src": "1078:17:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1118,21 +1118,21 @@ export const StandardTokenWithFeeMock = "typeString": "bool" } ], - "id": 1899, + "id": 4300, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1070:7:9", + "referencedDeclaration": 5400, + "src": "1070:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1905, + "id": 4306, "isConstant": false, "isLValue": false, "isPure": false, @@ -1140,15 +1140,15 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1070:26:9", + "src": "1070:26:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1906, + "id": 4307, "nodeType": "ExpressionStatement", - "src": "1070:26:9" + "src": "1070:26:35" }, { "expression": { @@ -1160,19 +1160,19 @@ export const StandardTokenWithFeeMock = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1912, + "id": 4313, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1908, + "id": 4309, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1110:6:9", + "referencedDeclaration": 4295, + "src": "1110:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1184,26 +1184,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1909, + "id": 4310, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1120:8:9", + "referencedDeclaration": 4837, + "src": "1120:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1911, + "id": 4312, "indexExpression": { "argumentTypes": null, - "id": 1910, + "id": 4311, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1129:5:9", + "referencedDeclaration": 4291, + "src": "1129:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1214,13 +1214,13 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1120:15:9", + "src": "1120:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1110:25:9", + "src": "1110:25:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1234,21 +1234,21 @@ export const StandardTokenWithFeeMock = "typeString": "bool" } ], - "id": 1907, + "id": 4308, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1102:7:9", + "referencedDeclaration": 5400, + "src": "1102:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1913, + "id": 4314, "isConstant": false, "isLValue": false, "isPure": false, @@ -1256,15 +1256,15 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1102:34:9", + "src": "1102:34:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1914, + "id": 4315, "nodeType": "ExpressionStatement", - "src": "1102:34:9" + "src": "1102:34:35" }, { "expression": { @@ -1276,19 +1276,19 @@ export const StandardTokenWithFeeMock = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1923, + "id": 4324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1916, + "id": 4317, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1150:6:9", + "referencedDeclaration": 4295, + "src": "1150:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1302,26 +1302,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1917, + "id": 4318, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1160:7:9", + "referencedDeclaration": 5149, + "src": "1160:7:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1919, + "id": 4320, "indexExpression": { "argumentTypes": null, - "id": 1918, + "id": 4319, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1168:5:9", + "referencedDeclaration": 4291, + "src": "1168:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1332,29 +1332,29 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1160:14:9", + "src": "1160:14:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1922, + "id": 4323, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1920, + "id": 4321, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1175:3:9", + "referencedDeclaration": 5397, + "src": "1175:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1921, + "id": 4322, "isConstant": false, "isLValue": false, "isPure": false, @@ -1362,7 +1362,7 @@ export const StandardTokenWithFeeMock = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1175:10:9", + "src": "1175:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1373,13 +1373,13 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1160:26:9", + "src": "1160:26:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1150:36:9", + "src": "1150:36:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1393,21 +1393,21 @@ export const StandardTokenWithFeeMock = "typeString": "bool" } ], - "id": 1915, + "id": 4316, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1142:7:9", + "referencedDeclaration": 5400, + "src": "1142:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1924, + "id": 4325, "isConstant": false, "isLValue": false, "isPure": false, @@ -1415,28 +1415,28 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1142:45:9", + "src": "1142:45:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1925, + "id": 4326, "nodeType": "ExpressionStatement", - "src": "1142:45:9" + "src": "1142:45:35" }, { "assignments": [ - 1927 + 4328 ], "declarations": [ { "constant": false, - "id": 1927, + "id": 4328, "name": "netValueMinusFee", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1194:24:9", + "scope": 4382, + "src": "1194:24:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1444,10 +1444,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1926, + "id": 4327, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1194:7:9", + "src": "1194:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1457,18 +1457,18 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "id": 1932, + "id": 4333, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1930, + "id": 4331, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "1232:3:9", + "referencedDeclaration": 4253, + "src": "1232:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1484,32 +1484,32 @@ export const StandardTokenWithFeeMock = ], "expression": { "argumentTypes": null, - "id": 1928, + "id": 4329, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1221:6:9", + "referencedDeclaration": 4295, + "src": "1221:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1929, + "id": 4330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1221:10:9", + "referencedDeclaration": 4713, + "src": "1221:10:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1931, + "id": 4332, "isConstant": false, "isLValue": false, "isPure": false, @@ -1517,19 +1517,19 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1221:15:9", + "src": "1221:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1194:42:9" + "src": "1194:42:35" }, { "expression": { "argumentTypes": null, - "id": 1942, + "id": 4343, "isConstant": false, "isLValue": false, "isPure": false, @@ -1538,26 +1538,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1933, + "id": 4334, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1243:8:9", + "referencedDeclaration": 4837, + "src": "1243:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1935, + "id": 4336, "indexExpression": { "argumentTypes": null, - "id": 1934, + "id": 4335, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1252:5:9", + "referencedDeclaration": 4291, + "src": "1252:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1568,7 +1568,7 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1243:15:9", + "src": "1243:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1581,12 +1581,12 @@ export const StandardTokenWithFeeMock = "arguments": [ { "argumentTypes": null, - "id": 1940, + "id": 4341, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1281:6:9", + "referencedDeclaration": 4295, + "src": "1281:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1604,26 +1604,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1936, + "id": 4337, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1261:8:9", + "referencedDeclaration": 4837, + "src": "1261:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1938, + "id": 4339, "indexExpression": { "argumentTypes": null, - "id": 1937, + "id": 4338, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1270:5:9", + "referencedDeclaration": 4291, + "src": "1270:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1634,27 +1634,27 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1261:15:9", + "src": "1261:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1939, + "id": 4340, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1261:19:9", + "referencedDeclaration": 4713, + "src": "1261:19:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1941, + "id": 4342, "isConstant": false, "isLValue": false, "isPure": false, @@ -1662,26 +1662,26 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1261:27:9", + "src": "1261:27:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1243:45:9", + "src": "1243:45:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1943, + "id": 4344, "nodeType": "ExpressionStatement", - "src": "1243:45:9" + "src": "1243:45:35" }, { "expression": { "argumentTypes": null, - "id": 1953, + "id": 4354, "isConstant": false, "isLValue": false, "isPure": false, @@ -1690,26 +1690,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1944, + "id": 4345, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1294:8:9", + "referencedDeclaration": 4837, + "src": "1294:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1946, + "id": 4347, "indexExpression": { "argumentTypes": null, - "id": 1945, + "id": 4346, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1303:3:9", + "referencedDeclaration": 4293, + "src": "1303:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1720,7 +1720,7 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1294:13:9", + "src": "1294:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1733,12 +1733,12 @@ export const StandardTokenWithFeeMock = "arguments": [ { "argumentTypes": null, - "id": 1951, + "id": 4352, "name": "netValueMinusFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1927, - "src": "1328:16:9", + "referencedDeclaration": 4328, + "src": "1328:16:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1756,26 +1756,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1947, + "id": 4348, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1310:8:9", + "referencedDeclaration": 4837, + "src": "1310:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1949, + "id": 4350, "indexExpression": { "argumentTypes": null, - "id": 1948, + "id": 4349, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1319:3:9", + "referencedDeclaration": 4293, + "src": "1319:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1786,27 +1786,27 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1310:13:9", + "src": "1310:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1950, + "id": 4351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1310:17:9", + "referencedDeclaration": 4737, + "src": "1310:17:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1952, + "id": 4353, "isConstant": false, "isLValue": false, "isPure": false, @@ -1814,26 +1814,26 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1310:35:9", + "src": "1310:35:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1294:51:9", + "src": "1294:51:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1954, + "id": 4355, "nodeType": "ExpressionStatement", - "src": "1294:51:9" + "src": "1294:51:35" }, { "expression": { "argumentTypes": null, - "id": 1970, + "id": 4371, "isConstant": false, "isLValue": false, "isPure": false, @@ -1844,26 +1844,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1955, + "id": 4356, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1351:7:9", + "referencedDeclaration": 5149, + "src": "1351:7:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1959, + "id": 4360, "indexExpression": { "argumentTypes": null, - "id": 1956, + "id": 4357, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1359:5:9", + "referencedDeclaration": 4291, + "src": "1359:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1874,29 +1874,29 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1351:14:9", + "src": "1351:14:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1960, + "id": 4361, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1957, + "id": 4358, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1366:3:9", + "referencedDeclaration": 5397, + "src": "1366:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1958, + "id": 4359, "isConstant": false, "isLValue": false, "isPure": false, @@ -1904,7 +1904,7 @@ export const StandardTokenWithFeeMock = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1366:10:9", + "src": "1366:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1915,7 +1915,7 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1351:26:9", + "src": "1351:26:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1928,12 +1928,12 @@ export const StandardTokenWithFeeMock = "arguments": [ { "argumentTypes": null, - "id": 1968, + "id": 4369, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1411:6:9", + "referencedDeclaration": 4295, + "src": "1411:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1953,26 +1953,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1961, + "id": 4362, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1380:7:9", + "referencedDeclaration": 5149, + "src": "1380:7:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1963, + "id": 4364, "indexExpression": { "argumentTypes": null, - "id": 1962, + "id": 4363, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1388:5:9", + "referencedDeclaration": 4291, + "src": "1388:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1983,29 +1983,29 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1380:14:9", + "src": "1380:14:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1966, + "id": 4367, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1964, + "id": 4365, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1395:3:9", + "referencedDeclaration": 5397, + "src": "1395:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1965, + "id": 4366, "isConstant": false, "isLValue": false, "isPure": false, @@ -2013,7 +2013,7 @@ export const StandardTokenWithFeeMock = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1395:10:9", + "src": "1395:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2024,27 +2024,27 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1380:26:9", + "src": "1380:26:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1967, + "id": 4368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1380:30:9", + "referencedDeclaration": 4713, + "src": "1380:30:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1969, + "id": 4370, "isConstant": false, "isLValue": false, "isPure": false, @@ -2052,34 +2052,34 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1380:38:9", + "src": "1380:38:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1351:67:9", + "src": "1351:67:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1971, + "id": 4372, "nodeType": "ExpressionStatement", - "src": "1351:67:9" + "src": "1351:67:35" }, { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1973, + "id": 4374, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1433:5:9", + "referencedDeclaration": 4291, + "src": "1438:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2087,12 +2087,12 @@ export const StandardTokenWithFeeMock = }, { "argumentTypes": null, - "id": 1974, + "id": 4375, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1440:3:9", + "referencedDeclaration": 4293, + "src": "1445:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2100,12 +2100,12 @@ export const StandardTokenWithFeeMock = }, { "argumentTypes": null, - "id": 1975, + "id": 4376, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1445:6:9", + "referencedDeclaration": 4295, + "src": "1450:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2127,18 +2127,18 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" } ], - "id": 1972, + "id": 4373, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "1424:8:9", + "referencedDeclaration": 5028, + "src": "1429:8:35", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1976, + "id": 4377, "isConstant": false, "isLValue": false, "isPure": false, @@ -2146,28 +2146,28 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1424:28:9", + "src": "1429:28:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1977, - "nodeType": "ExpressionStatement", - "src": "1424:28:9" + "id": 4378, + "nodeType": "EmitStatement", + "src": "1424:33:35" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1978, + "id": 4379, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1465:4:9", + "src": "1470:4:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2175,15 +2175,15 @@ export const StandardTokenWithFeeMock = }, "value": "true" }, - "functionReturnParameters": 1898, - "id": 1979, + "functionReturnParameters": 4299, + "id": 4380, "nodeType": "Return", - "src": "1458:11:9" + "src": "1463:11:35" } ] }, "documentation": "@dev Transfer tokens from one address to another with a fee component\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", - "id": 1981, + "id": 4382, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2191,16 +2191,16 @@ export const StandardTokenWithFeeMock = "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1895, + "id": 4296, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1890, + "id": 4291, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "998:13:9", + "scope": 4382, + "src": "998:13:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2208,10 +2208,10 @@ export const StandardTokenWithFeeMock = "typeString": "address" }, "typeName": { - "id": 1889, + "id": 4290, "name": "address", "nodeType": "ElementaryTypeName", - "src": "998:7:9", + "src": "998:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2222,11 +2222,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1892, + "id": 4293, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1013:11:9", + "scope": 4382, + "src": "1013:11:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2234,10 +2234,10 @@ export const StandardTokenWithFeeMock = "typeString": "address" }, "typeName": { - "id": 1891, + "id": 4292, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1013:7:9", + "src": "1013:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2248,11 +2248,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1894, + "id": 4295, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1026:14:9", + "scope": 4382, + "src": "1026:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2260,10 +2260,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1893, + "id": 4294, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1026:7:9", + "src": "1026:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2273,20 +2273,20 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "src": "997:44:9" + "src": "997:44:35" }, "payable": false, "returnParameters": { - "id": 1898, + "id": 4299, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1897, + "id": 4298, "name": "", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1058:4:9", + "scope": 4382, + "src": "1058:4:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2294,10 +2294,10 @@ export const StandardTokenWithFeeMock = "typeString": "bool" }, "typeName": { - "id": 1896, + "id": 4297, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1058:4:9", + "src": "1058:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2307,19 +2307,19 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "src": "1057:6:9" + "src": "1057:6:35" }, - "scope": 2061, - "src": "976:498:9", + "scope": 4462, + "src": "976:503:35", "stateMutability": "nonpayable", - "superFunction": 2652, + "superFunction": 5235, "visibility": "public" }, { "body": { - "id": 2047, + "id": 4448, "nodeType": "Block", - "src": "1738:367:9", + "src": "1743:372:35", "statements": [ { "expression": { @@ -2331,19 +2331,19 @@ export const StandardTokenWithFeeMock = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1995, + "id": 4396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1991, + "id": 4392, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "1752:3:9", + "referencedDeclaration": 4384, + "src": "1757:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2357,14 +2357,14 @@ export const StandardTokenWithFeeMock = { "argumentTypes": null, "hexValue": "30", - "id": 1993, + "id": 4394, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1767:1:9", + "src": "1772:1:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2380,20 +2380,20 @@ export const StandardTokenWithFeeMock = "typeString": "int_const 0" } ], - "id": 1992, + "id": 4393, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1759:7:9", + "src": "1764:7:35", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1994, + "id": 4395, "isConstant": false, "isLValue": false, "isPure": true, @@ -2401,13 +2401,13 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1759:10:9", + "src": "1764:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1752:17:9", + "src": "1757:17:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2421,21 +2421,21 @@ export const StandardTokenWithFeeMock = "typeString": "bool" } ], - "id": 1990, + "id": 4391, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1744:7:9", + "referencedDeclaration": 5400, + "src": "1749:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1996, + "id": 4397, "isConstant": false, "isLValue": false, "isPure": false, @@ -2443,15 +2443,15 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1744:26:9", + "src": "1749:26:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1997, + "id": 4398, "nodeType": "ExpressionStatement", - "src": "1744:26:9" + "src": "1749:26:35" }, { "expression": { @@ -2463,19 +2463,19 @@ export const StandardTokenWithFeeMock = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2004, + "id": 4405, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1999, + "id": 4400, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "1784:6:9", + "referencedDeclaration": 4386, + "src": "1789:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2487,34 +2487,34 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2000, + "id": 4401, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1794:8:9", + "referencedDeclaration": 4837, + "src": "1799:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2003, + "id": 4404, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2001, + "id": 4402, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1803:3:9", + "referencedDeclaration": 5397, + "src": "1808:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2002, + "id": 4403, "isConstant": false, "isLValue": false, "isPure": false, @@ -2522,7 +2522,7 @@ export const StandardTokenWithFeeMock = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1803:10:9", + "src": "1808:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2533,13 +2533,13 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1794:20:9", + "src": "1799:20:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1784:30:9", + "src": "1789:30:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2553,21 +2553,21 @@ export const StandardTokenWithFeeMock = "typeString": "bool" } ], - "id": 1998, + "id": 4399, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1776:7:9", + "referencedDeclaration": 5400, + "src": "1781:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2005, + "id": 4406, "isConstant": false, "isLValue": false, "isPure": false, @@ -2575,28 +2575,28 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1776:39:9", + "src": "1781:39:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2006, + "id": 4407, "nodeType": "ExpressionStatement", - "src": "1776:39:9" + "src": "1781:39:35" }, { "assignments": [ - 2008 + 4409 ], "declarations": [ { "constant": false, - "id": 2008, + "id": 4409, "name": "netValuePlusFee", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1822:23:9", + "scope": 4449, + "src": "1827:23:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2604,10 +2604,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 2007, + "id": 4408, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1822:7:9", + "src": "1827:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2617,18 +2617,18 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "id": 2013, + "id": 4414, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2011, + "id": 4412, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "1859:3:9", + "referencedDeclaration": 4253, + "src": "1864:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2644,32 +2644,32 @@ export const StandardTokenWithFeeMock = ], "expression": { "argumentTypes": null, - "id": 2009, + "id": 4410, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "1848:6:9", + "referencedDeclaration": 4386, + "src": "1853:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2010, + "id": 4411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1848:10:9", + "referencedDeclaration": 4737, + "src": "1853:10:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2012, + "id": 4413, "isConstant": false, "isLValue": false, "isPure": false, @@ -2677,19 +2677,19 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1848:15:9", + "src": "1853:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1822:41:9" + "src": "1827:41:35" }, { "expression": { "argumentTypes": null, - "id": 2025, + "id": 4426, "isConstant": false, "isLValue": false, "isPure": false, @@ -2698,34 +2698,34 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2014, + "id": 4415, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1933:8:9", + "referencedDeclaration": 4837, + "src": "1938:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2017, + "id": 4418, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2015, + "id": 4416, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1942:3:9", + "referencedDeclaration": 5397, + "src": "1947:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2016, + "id": 4417, "isConstant": false, "isLValue": false, "isPure": false, @@ -2733,7 +2733,7 @@ export const StandardTokenWithFeeMock = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1942:10:9", + "src": "1947:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2744,7 +2744,7 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1933:20:9", + "src": "1938:20:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2757,12 +2757,12 @@ export const StandardTokenWithFeeMock = "arguments": [ { "argumentTypes": null, - "id": 2023, + "id": 4424, "name": "netValuePlusFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2008, - "src": "1981:15:9", + "referencedDeclaration": 4409, + "src": "1986:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2780,34 +2780,34 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2018, + "id": 4419, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1956:8:9", + "referencedDeclaration": 4837, + "src": "1961:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2021, + "id": 4422, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2019, + "id": 4420, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1965:3:9", + "referencedDeclaration": 5397, + "src": "1970:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2020, + "id": 4421, "isConstant": false, "isLValue": false, "isPure": false, @@ -2815,7 +2815,7 @@ export const StandardTokenWithFeeMock = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1965:10:9", + "src": "1970:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2826,27 +2826,27 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1956:20:9", + "src": "1961:20:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2022, + "id": 4423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1956:24:9", + "referencedDeclaration": 4713, + "src": "1961:24:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2024, + "id": 4425, "isConstant": false, "isLValue": false, "isPure": false, @@ -2854,26 +2854,26 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1956:41:9", + "src": "1961:41:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1933:64:9", + "src": "1938:64:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2026, + "id": 4427, "nodeType": "ExpressionStatement", - "src": "1933:64:9" + "src": "1938:64:35" }, { "expression": { "argumentTypes": null, - "id": 2036, + "id": 4437, "isConstant": false, "isLValue": false, "isPure": false, @@ -2882,26 +2882,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2027, + "id": 4428, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2003:8:9", + "referencedDeclaration": 4837, + "src": "2008:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2029, + "id": 4430, "indexExpression": { "argumentTypes": null, - "id": 2028, + "id": 4429, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "2012:3:9", + "referencedDeclaration": 4384, + "src": "2017:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2912,7 +2912,7 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2003:13:9", + "src": "2008:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2925,12 +2925,12 @@ export const StandardTokenWithFeeMock = "arguments": [ { "argumentTypes": null, - "id": 2034, + "id": 4435, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "2037:6:9", + "referencedDeclaration": 4386, + "src": "2042:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2948,26 +2948,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2030, + "id": 4431, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2019:8:9", + "referencedDeclaration": 4837, + "src": "2024:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2032, + "id": 4433, "indexExpression": { "argumentTypes": null, - "id": 2031, + "id": 4432, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "2028:3:9", + "referencedDeclaration": 4384, + "src": "2033:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2978,27 +2978,27 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2019:13:9", + "src": "2024:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2033, + "id": 4434, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "2019:17:9", + "referencedDeclaration": 4737, + "src": "2024:17:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2035, + "id": 4436, "isConstant": false, "isLValue": false, "isPure": false, @@ -3006,42 +3006,42 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2019:25:9", + "src": "2024:25:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2003:41:9", + "src": "2008:41:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2037, + "id": 4438, "nodeType": "ExpressionStatement", - "src": "2003:41:9" + "src": "2008:41:35" }, { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2039, + "id": 4440, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "2059:3:9", + "referencedDeclaration": 5397, + "src": "2069:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2040, + "id": 4441, "isConstant": false, "isLValue": false, "isPure": false, @@ -3049,7 +3049,7 @@ export const StandardTokenWithFeeMock = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2059:10:9", + "src": "2069:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3057,12 +3057,12 @@ export const StandardTokenWithFeeMock = }, { "argumentTypes": null, - "id": 2041, + "id": 4442, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "2071:3:9", + "referencedDeclaration": 4384, + "src": "2081:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3070,12 +3070,12 @@ export const StandardTokenWithFeeMock = }, { "argumentTypes": null, - "id": 2042, + "id": 4443, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "2076:6:9", + "referencedDeclaration": 4386, + "src": "2086:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3097,18 +3097,18 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" } ], - "id": 2038, + "id": 4439, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "2050:8:9", + "referencedDeclaration": 5028, + "src": "2060:8:35", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2043, + "id": 4444, "isConstant": false, "isLValue": false, "isPure": false, @@ -3116,28 +3116,28 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2050:33:9", + "src": "2060:33:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2044, - "nodeType": "ExpressionStatement", - "src": "2050:33:9" + "id": 4445, + "nodeType": "EmitStatement", + "src": "2055:38:35" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2045, + "id": 4446, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2096:4:9", + "src": "2106:4:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3145,15 +3145,15 @@ export const StandardTokenWithFeeMock = }, "value": "true" }, - "functionReturnParameters": 1989, - "id": 2046, + "functionReturnParameters": 4390, + "id": 4447, "nodeType": "Return", - "src": "2089:11:9" + "src": "2099:11:35" } ] }, "documentation": "@dev transfer token for a specified address with a fee component applied to the send\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", - "id": 2048, + "id": 4449, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3161,16 +3161,16 @@ export const StandardTokenWithFeeMock = "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1986, + "id": 4387, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1983, + "id": 4384, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1687:11:9", + "scope": 4449, + "src": "1692:11:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3178,10 +3178,10 @@ export const StandardTokenWithFeeMock = "typeString": "address" }, "typeName": { - "id": 1982, + "id": 4383, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:9", + "src": "1692:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3192,11 +3192,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1985, + "id": 4386, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1700:14:9", + "scope": 4449, + "src": "1705:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3204,10 +3204,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1984, + "id": 4385, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1700:7:9", + "src": "1705:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3217,20 +3217,20 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "src": "1686:29:9" + "src": "1691:29:35" }, "payable": false, "returnParameters": { - "id": 1989, + "id": 4390, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1988, + "id": 4389, "name": "", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1732:4:9", + "scope": 4449, + "src": "1737:4:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3238,10 +3238,10 @@ export const StandardTokenWithFeeMock = "typeString": "bool" }, "typeName": { - "id": 1987, + "id": 4388, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1732:4:9", + "src": "1737:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3251,36 +3251,36 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "src": "1731:6:9" + "src": "1736:6:35" }, - "scope": 2061, - "src": "1669:436:9", + "scope": 4462, + "src": "1674:441:35", "stateMutability": "nonpayable", - "superFunction": 2324, + "superFunction": 4907, "visibility": "public" }, { "body": { - "id": 2059, + "id": 4460, "nodeType": "Block", - "src": "2161:21:9", + "src": "2171:21:35", "statements": [ { "expression": { "argumentTypes": null, - "id": 2057, + "id": 4458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2055, + "id": 4456, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "2167:3:9", + "referencedDeclaration": 4253, + "src": "2177:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3290,31 +3290,31 @@ export const StandardTokenWithFeeMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2056, + "id": 4457, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "2173:4:9", + "referencedDeclaration": 4451, + "src": "2183:4:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2167:10:9", + "src": "2177:10:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2058, + "id": 4459, "nodeType": "ExpressionStatement", - "src": "2167:10:9" + "src": "2177:10:35" } ] }, "documentation": null, - "id": 2060, + "id": 4461, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3322,16 +3322,16 @@ export const StandardTokenWithFeeMock = "name": "setFee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2051, + "id": 4452, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2050, + "id": 4451, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 2060, - "src": "2125:12:9", + "scope": 4461, + "src": "2135:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3339,10 +3339,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 2049, + "id": 4450, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2125:7:9", + "src": "2135:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3352,20 +3352,20 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "src": "2124:14:9" + "src": "2134:14:35" }, "payable": false, "returnParameters": { - "id": 2054, + "id": 4455, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2053, + "id": 4454, "name": "", "nodeType": "VariableDeclaration", - "scope": 2060, - "src": "2155:4:9", + "scope": 4461, + "src": "2165:4:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3373,10 +3373,10 @@ export const StandardTokenWithFeeMock = "typeString": "bool" }, "typeName": { - "id": 2052, + "id": 4453, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2155:4:9", + "src": "2165:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3386,60 +3386,60 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "src": "2154:6:9" + "src": "2164:6:35" }, - "scope": 2061, - "src": "2109:73:9", + "scope": 4462, + "src": "2119:73:35", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2062, - "src": "183:2001:9" + "scope": 4463, + "src": "183:2011:35" } ], - "src": "0:2185:9" + "src": "0:2195:35" }, "legacyAST": { - "absolutePath": "/Users/alexsoong/Source/set-protocol/set-protocol-contracts/contracts/test/StandardTokenWithFeeMock.sol", + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/test/StandardTokenWithFeeMock.sol", "exportedSymbols": { "StandardTokenWithFeeMock": [ - 2061 + 4462 ] }, - "id": 2062, + "id": 4463, "nodeType": "SourceUnit", "nodes": [ { - "id": 1834, + "id": 4235, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:9" + "src": "0:23:35" }, { "absolutePath": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", "file": "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol", - "id": 1835, + "id": 4236, "nodeType": "ImportDirective", - "scope": 2062, - "sourceUnit": 2800, - "src": "26:67:9", + "scope": 4463, + "sourceUnit": 5383, + "src": "26:67:35", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", "file": "zeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1836, + "id": 4237, "nodeType": "ImportDirective", - "scope": 2062, - "sourceUnit": 2156, - "src": "94:55:9", + "scope": 4463, + "sourceUnit": 4739, + "src": "94:55:35", "symbolAliases": [], "unitAlias": "" }, @@ -3449,62 +3449,62 @@ export const StandardTokenWithFeeMock = "arguments": null, "baseName": { "contractScope": null, - "id": 1837, + "id": 4238, "name": "StandardToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2799, - "src": "220:13:9", + "referencedDeclaration": 5382, + "src": "220:13:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardToken_$2799", + "typeIdentifier": "t_contract$_StandardToken_$5382", "typeString": "contract StandardToken" } }, - "id": 1838, + "id": 4239, "nodeType": "InheritanceSpecifier", - "src": "220:13:9" + "src": "220:13:35" } ], "contractDependencies": [ - 2337, - 2414, - 2446, - 2799 + 4920, + 4997, + 5029, + 5382 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 2061, + "id": 4462, "linearizedBaseContracts": [ - 2061, - 2799, - 2337, - 2414, - 2446 + 4462, + 5382, + 4920, + 4997, + 5029 ], "name": "StandardTokenWithFeeMock", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1841, + "id": 4242, "libraryName": { "contractScope": null, - "id": 1839, + "id": 4240, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2155, - "src": "244:8:9", + "referencedDeclaration": 4738, + "src": "244:8:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2155", + "typeIdentifier": "t_contract$_SafeMath_$4738", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "238:27:9", + "src": "238:27:35", "typeName": { - "id": 1840, + "id": 4241, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "257:7:9", + "src": "257:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3513,11 +3513,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1844, + "id": 4245, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "269:28:9", + "scope": 4462, + "src": "269:28:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3525,10 +3525,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1842, + "id": 4243, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "269:7:9", + "src": "269:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3537,14 +3537,14 @@ export const StandardTokenWithFeeMock = "value": { "argumentTypes": null, "hexValue": "3138", - "id": 1843, + "id": 4244, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "295:2:9", + "src": "295:2:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -3556,11 +3556,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1846, + "id": 4247, "name": "name", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "301:18:9", + "scope": 4462, + "src": "301:18:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3568,10 +3568,10 @@ export const StandardTokenWithFeeMock = "typeString": "string" }, "typeName": { - "id": 1845, + "id": 4246, "name": "string", "nodeType": "ElementaryTypeName", - "src": "301:6:9", + "src": "301:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3582,11 +3582,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1848, + "id": 4249, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "323:20:9", + "scope": 4462, + "src": "323:20:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3594,10 +3594,10 @@ export const StandardTokenWithFeeMock = "typeString": "string" }, "typeName": { - "id": 1847, + "id": 4248, "name": "string", "nodeType": "ElementaryTypeName", - "src": "323:6:9", + "src": "323:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3608,11 +3608,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1850, + "id": 4251, "name": "totalSupply", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "347:26:9", + "scope": 4462, + "src": "347:26:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3620,10 +3620,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1849, + "id": 4250, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "347:7:9", + "src": "347:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3634,11 +3634,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1852, + "id": 4253, "name": "fee", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "377:18:9", + "scope": 4462, + "src": "377:18:35", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3646,10 +3646,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1851, + "id": 4252, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "377:7:9", + "src": "377:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3660,14 +3660,14 @@ export const StandardTokenWithFeeMock = }, { "body": { - "id": 1887, + "id": 4288, "nodeType": "Block", - "src": "538:142:9", + "src": "538:142:35", "statements": [ { "expression": { "argumentTypes": null, - "id": 1869, + "id": 4270, "isConstant": false, "isLValue": false, "isPure": false, @@ -3676,26 +3676,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1865, + "id": 4266, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "544:8:9", + "referencedDeclaration": 4837, + "src": "544:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1867, + "id": 4268, "indexExpression": { "argumentTypes": null, - "id": 1866, + "id": 4267, "name": "initialAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1854, - "src": "553:14:9", + "referencedDeclaration": 4255, + "src": "553:14:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3706,7 +3706,7 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "544:24:9", + "src": "544:24:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3716,45 +3716,45 @@ export const StandardTokenWithFeeMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1868, + "id": 4269, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1856, - "src": "571:14:9", + "referencedDeclaration": 4257, + "src": "571:14:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "544:41:9", + "src": "544:41:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1870, + "id": 4271, "nodeType": "ExpressionStatement", - "src": "544:41:9" + "src": "544:41:35" }, { "expression": { "argumentTypes": null, - "id": 1873, + "id": 4274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1871, + "id": 4272, "name": "totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [ - 1850 + 4251 ], - "referencedDeclaration": 1850, - "src": "591:11:9", + "referencedDeclaration": 4251, + "src": "591:11:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3764,43 +3764,43 @@ export const StandardTokenWithFeeMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1872, + "id": 4273, "name": "initialBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1856, - "src": "605:14:9", + "referencedDeclaration": 4257, + "src": "605:14:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "591:28:9", + "src": "591:28:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1874, + "id": 4275, "nodeType": "ExpressionStatement", - "src": "591:28:9" + "src": "591:28:35" }, { "expression": { "argumentTypes": null, - "id": 1877, + "id": 4278, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1875, + "id": 4276, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1846, - "src": "625:4:9", + "referencedDeclaration": 4247, + "src": "625:4:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3810,43 +3810,43 @@ export const StandardTokenWithFeeMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1876, + "id": 4277, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, - "src": "632:5:9", + "referencedDeclaration": 4259, + "src": "632:5:35", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "625:12:9", + "src": "625:12:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1878, + "id": 4279, "nodeType": "ExpressionStatement", - "src": "625:12:9" + "src": "625:12:35" }, { "expression": { "argumentTypes": null, - "id": 1881, + "id": 4282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1879, + "id": 4280, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1848, - "src": "643:6:9", + "referencedDeclaration": 4249, + "src": "643:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -3856,43 +3856,43 @@ export const StandardTokenWithFeeMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1880, + "id": 4281, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1860, - "src": "652:7:9", + "referencedDeclaration": 4261, + "src": "652:7:35", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "643:16:9", + "src": "643:16:35", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1882, + "id": 4283, "nodeType": "ExpressionStatement", - "src": "643:16:9" + "src": "643:16:35" }, { "expression": { "argumentTypes": null, - "id": 1885, + "id": 4286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1883, + "id": 4284, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "665:3:9", + "referencedDeclaration": 4253, + "src": "665:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3902,31 +3902,31 @@ export const StandardTokenWithFeeMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1884, + "id": 4285, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1862, - "src": "671:4:9", + "referencedDeclaration": 4263, + "src": "671:4:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "665:10:9", + "src": "665:10:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1886, + "id": 4287, "nodeType": "ExpressionStatement", - "src": "665:10:9" + "src": "665:10:35" } ] }, "documentation": null, - "id": 1888, + "id": 4289, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -3934,16 +3934,16 @@ export const StandardTokenWithFeeMock = "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1863, + "id": 4264, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1854, + "id": 4255, "name": "initialAccount", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "417:22:9", + "scope": 4289, + "src": "417:22:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3951,10 +3951,10 @@ export const StandardTokenWithFeeMock = "typeString": "address" }, "typeName": { - "id": 1853, + "id": 4254, "name": "address", "nodeType": "ElementaryTypeName", - "src": "417:7:9", + "src": "417:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3965,11 +3965,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1856, + "id": 4257, "name": "initialBalance", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "445:22:9", + "scope": 4289, + "src": "445:22:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3977,10 +3977,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1855, + "id": 4256, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "445:7:9", + "src": "445:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3991,11 +3991,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1858, + "id": 4259, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "473:12:9", + "scope": 4289, + "src": "473:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4003,10 +4003,10 @@ export const StandardTokenWithFeeMock = "typeString": "string" }, "typeName": { - "id": 1857, + "id": 4258, "name": "string", "nodeType": "ElementaryTypeName", - "src": "473:6:9", + "src": "473:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4017,11 +4017,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1860, + "id": 4261, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "491:14:9", + "scope": 4289, + "src": "491:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4029,10 +4029,10 @@ export const StandardTokenWithFeeMock = "typeString": "string" }, "typeName": { - "id": 1859, + "id": 4260, "name": "string", "nodeType": "ElementaryTypeName", - "src": "491:6:9", + "src": "491:6:35", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4043,11 +4043,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1862, + "id": 4263, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 1888, - "src": "511:12:9", + "scope": 4289, + "src": "511:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4055,10 +4055,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1861, + "id": 4262, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "511:7:9", + "src": "511:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4068,26 +4068,26 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "src": "411:113:9" + "src": "411:113:35" }, "payable": false, "returnParameters": { - "id": 1864, + "id": 4265, "nodeType": "ParameterList", "parameters": [], - "src": "538:0:9" + "src": "538:0:35" }, - "scope": 2061, - "src": "400:280:9", + "scope": 4462, + "src": "400:280:35", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1980, + "id": 4381, "nodeType": "Block", - "src": "1064:410:9", + "src": "1064:415:35", "statements": [ { "expression": { @@ -4099,19 +4099,19 @@ export const StandardTokenWithFeeMock = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1904, + "id": 4305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1900, + "id": 4301, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1078:3:9", + "referencedDeclaration": 4293, + "src": "1078:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4125,14 +4125,14 @@ export const StandardTokenWithFeeMock = { "argumentTypes": null, "hexValue": "30", - "id": 1902, + "id": 4303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1093:1:9", + "src": "1093:1:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4148,20 +4148,20 @@ export const StandardTokenWithFeeMock = "typeString": "int_const 0" } ], - "id": 1901, + "id": 4302, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1085:7:9", + "src": "1085:7:35", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1903, + "id": 4304, "isConstant": false, "isLValue": false, "isPure": true, @@ -4169,13 +4169,13 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1085:10:9", + "src": "1085:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1078:17:9", + "src": "1078:17:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4189,21 +4189,21 @@ export const StandardTokenWithFeeMock = "typeString": "bool" } ], - "id": 1899, + "id": 4300, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1070:7:9", + "referencedDeclaration": 5400, + "src": "1070:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1905, + "id": 4306, "isConstant": false, "isLValue": false, "isPure": false, @@ -4211,15 +4211,15 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1070:26:9", + "src": "1070:26:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1906, + "id": 4307, "nodeType": "ExpressionStatement", - "src": "1070:26:9" + "src": "1070:26:35" }, { "expression": { @@ -4231,19 +4231,19 @@ export const StandardTokenWithFeeMock = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1912, + "id": 4313, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1908, + "id": 4309, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1110:6:9", + "referencedDeclaration": 4295, + "src": "1110:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4255,26 +4255,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1909, + "id": 4310, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1120:8:9", + "referencedDeclaration": 4837, + "src": "1120:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1911, + "id": 4312, "indexExpression": { "argumentTypes": null, - "id": 1910, + "id": 4311, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1129:5:9", + "referencedDeclaration": 4291, + "src": "1129:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4285,13 +4285,13 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1120:15:9", + "src": "1120:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1110:25:9", + "src": "1110:25:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4305,21 +4305,21 @@ export const StandardTokenWithFeeMock = "typeString": "bool" } ], - "id": 1907, + "id": 4308, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1102:7:9", + "referencedDeclaration": 5400, + "src": "1102:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1913, + "id": 4314, "isConstant": false, "isLValue": false, "isPure": false, @@ -4327,15 +4327,15 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1102:34:9", + "src": "1102:34:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1914, + "id": 4315, "nodeType": "ExpressionStatement", - "src": "1102:34:9" + "src": "1102:34:35" }, { "expression": { @@ -4347,19 +4347,19 @@ export const StandardTokenWithFeeMock = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1923, + "id": 4324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1916, + "id": 4317, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1150:6:9", + "referencedDeclaration": 4295, + "src": "1150:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4373,26 +4373,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1917, + "id": 4318, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1160:7:9", + "referencedDeclaration": 5149, + "src": "1160:7:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1919, + "id": 4320, "indexExpression": { "argumentTypes": null, - "id": 1918, + "id": 4319, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1168:5:9", + "referencedDeclaration": 4291, + "src": "1168:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4403,29 +4403,29 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1160:14:9", + "src": "1160:14:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1922, + "id": 4323, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1920, + "id": 4321, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1175:3:9", + "referencedDeclaration": 5397, + "src": "1175:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1921, + "id": 4322, "isConstant": false, "isLValue": false, "isPure": false, @@ -4433,7 +4433,7 @@ export const StandardTokenWithFeeMock = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1175:10:9", + "src": "1175:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4444,13 +4444,13 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1160:26:9", + "src": "1160:26:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1150:36:9", + "src": "1150:36:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4464,21 +4464,21 @@ export const StandardTokenWithFeeMock = "typeString": "bool" } ], - "id": 1915, + "id": 4316, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1142:7:9", + "referencedDeclaration": 5400, + "src": "1142:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1924, + "id": 4325, "isConstant": false, "isLValue": false, "isPure": false, @@ -4486,28 +4486,28 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1142:45:9", + "src": "1142:45:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1925, + "id": 4326, "nodeType": "ExpressionStatement", - "src": "1142:45:9" + "src": "1142:45:35" }, { "assignments": [ - 1927 + 4328 ], "declarations": [ { "constant": false, - "id": 1927, + "id": 4328, "name": "netValueMinusFee", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1194:24:9", + "scope": 4382, + "src": "1194:24:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4515,10 +4515,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1926, + "id": 4327, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1194:7:9", + "src": "1194:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4528,18 +4528,18 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "id": 1932, + "id": 4333, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1930, + "id": 4331, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "1232:3:9", + "referencedDeclaration": 4253, + "src": "1232:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4555,32 +4555,32 @@ export const StandardTokenWithFeeMock = ], "expression": { "argumentTypes": null, - "id": 1928, + "id": 4329, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1221:6:9", + "referencedDeclaration": 4295, + "src": "1221:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1929, + "id": 4330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1221:10:9", + "referencedDeclaration": 4713, + "src": "1221:10:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1931, + "id": 4332, "isConstant": false, "isLValue": false, "isPure": false, @@ -4588,19 +4588,19 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1221:15:9", + "src": "1221:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1194:42:9" + "src": "1194:42:35" }, { "expression": { "argumentTypes": null, - "id": 1942, + "id": 4343, "isConstant": false, "isLValue": false, "isPure": false, @@ -4609,26 +4609,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1933, + "id": 4334, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1243:8:9", + "referencedDeclaration": 4837, + "src": "1243:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1935, + "id": 4336, "indexExpression": { "argumentTypes": null, - "id": 1934, + "id": 4335, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1252:5:9", + "referencedDeclaration": 4291, + "src": "1252:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4639,7 +4639,7 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1243:15:9", + "src": "1243:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4652,12 +4652,12 @@ export const StandardTokenWithFeeMock = "arguments": [ { "argumentTypes": null, - "id": 1940, + "id": 4341, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1281:6:9", + "referencedDeclaration": 4295, + "src": "1281:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4675,26 +4675,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1936, + "id": 4337, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1261:8:9", + "referencedDeclaration": 4837, + "src": "1261:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1938, + "id": 4339, "indexExpression": { "argumentTypes": null, - "id": 1937, + "id": 4338, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1270:5:9", + "referencedDeclaration": 4291, + "src": "1270:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4705,27 +4705,27 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1261:15:9", + "src": "1261:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1939, + "id": 4340, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1261:19:9", + "referencedDeclaration": 4713, + "src": "1261:19:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1941, + "id": 4342, "isConstant": false, "isLValue": false, "isPure": false, @@ -4733,26 +4733,26 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1261:27:9", + "src": "1261:27:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1243:45:9", + "src": "1243:45:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1943, + "id": 4344, "nodeType": "ExpressionStatement", - "src": "1243:45:9" + "src": "1243:45:35" }, { "expression": { "argumentTypes": null, - "id": 1953, + "id": 4354, "isConstant": false, "isLValue": false, "isPure": false, @@ -4761,26 +4761,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1944, + "id": 4345, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1294:8:9", + "referencedDeclaration": 4837, + "src": "1294:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1946, + "id": 4347, "indexExpression": { "argumentTypes": null, - "id": 1945, + "id": 4346, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1303:3:9", + "referencedDeclaration": 4293, + "src": "1303:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4791,7 +4791,7 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1294:13:9", + "src": "1294:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4804,12 +4804,12 @@ export const StandardTokenWithFeeMock = "arguments": [ { "argumentTypes": null, - "id": 1951, + "id": 4352, "name": "netValueMinusFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1927, - "src": "1328:16:9", + "referencedDeclaration": 4328, + "src": "1328:16:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4827,26 +4827,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1947, + "id": 4348, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1310:8:9", + "referencedDeclaration": 4837, + "src": "1310:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1949, + "id": 4350, "indexExpression": { "argumentTypes": null, - "id": 1948, + "id": 4349, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1319:3:9", + "referencedDeclaration": 4293, + "src": "1319:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4857,27 +4857,27 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1310:13:9", + "src": "1310:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1950, + "id": 4351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1310:17:9", + "referencedDeclaration": 4737, + "src": "1310:17:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1952, + "id": 4353, "isConstant": false, "isLValue": false, "isPure": false, @@ -4885,26 +4885,26 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1310:35:9", + "src": "1310:35:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1294:51:9", + "src": "1294:51:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1954, + "id": 4355, "nodeType": "ExpressionStatement", - "src": "1294:51:9" + "src": "1294:51:35" }, { "expression": { "argumentTypes": null, - "id": 1970, + "id": 4371, "isConstant": false, "isLValue": false, "isPure": false, @@ -4915,26 +4915,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1955, + "id": 4356, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1351:7:9", + "referencedDeclaration": 5149, + "src": "1351:7:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1959, + "id": 4360, "indexExpression": { "argumentTypes": null, - "id": 1956, + "id": 4357, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1359:5:9", + "referencedDeclaration": 4291, + "src": "1359:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4945,29 +4945,29 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1351:14:9", + "src": "1351:14:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1960, + "id": 4361, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1957, + "id": 4358, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1366:3:9", + "referencedDeclaration": 5397, + "src": "1366:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1958, + "id": 4359, "isConstant": false, "isLValue": false, "isPure": false, @@ -4975,7 +4975,7 @@ export const StandardTokenWithFeeMock = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1366:10:9", + "src": "1366:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4986,7 +4986,7 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1351:26:9", + "src": "1351:26:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4999,12 +4999,12 @@ export const StandardTokenWithFeeMock = "arguments": [ { "argumentTypes": null, - "id": 1968, + "id": 4369, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1411:6:9", + "referencedDeclaration": 4295, + "src": "1411:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5024,26 +5024,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1961, + "id": 4362, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "1380:7:9", + "referencedDeclaration": 5149, + "src": "1380:7:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1963, + "id": 4364, "indexExpression": { "argumentTypes": null, - "id": 1962, + "id": 4363, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1388:5:9", + "referencedDeclaration": 4291, + "src": "1388:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5054,29 +5054,29 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1380:14:9", + "src": "1380:14:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1966, + "id": 4367, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1964, + "id": 4365, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1395:3:9", + "referencedDeclaration": 5397, + "src": "1395:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1965, + "id": 4366, "isConstant": false, "isLValue": false, "isPure": false, @@ -5084,7 +5084,7 @@ export const StandardTokenWithFeeMock = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1395:10:9", + "src": "1395:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5095,27 +5095,27 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1380:26:9", + "src": "1380:26:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1967, + "id": 4368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1380:30:9", + "referencedDeclaration": 4713, + "src": "1380:30:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1969, + "id": 4370, "isConstant": false, "isLValue": false, "isPure": false, @@ -5123,34 +5123,34 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1380:38:9", + "src": "1380:38:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1351:67:9", + "src": "1351:67:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1971, + "id": 4372, "nodeType": "ExpressionStatement", - "src": "1351:67:9" + "src": "1351:67:35" }, { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1973, + "id": 4374, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1890, - "src": "1433:5:9", + "referencedDeclaration": 4291, + "src": "1438:5:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5158,12 +5158,12 @@ export const StandardTokenWithFeeMock = }, { "argumentTypes": null, - "id": 1974, + "id": 4375, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "1440:3:9", + "referencedDeclaration": 4293, + "src": "1445:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5171,12 +5171,12 @@ export const StandardTokenWithFeeMock = }, { "argumentTypes": null, - "id": 1975, + "id": 4376, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "1445:6:9", + "referencedDeclaration": 4295, + "src": "1450:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5198,18 +5198,18 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" } ], - "id": 1972, + "id": 4373, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "1424:8:9", + "referencedDeclaration": 5028, + "src": "1429:8:35", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1976, + "id": 4377, "isConstant": false, "isLValue": false, "isPure": false, @@ -5217,28 +5217,28 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1424:28:9", + "src": "1429:28:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1977, - "nodeType": "ExpressionStatement", - "src": "1424:28:9" + "id": 4378, + "nodeType": "EmitStatement", + "src": "1424:33:35" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1978, + "id": 4379, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1465:4:9", + "src": "1470:4:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5246,15 +5246,15 @@ export const StandardTokenWithFeeMock = }, "value": "true" }, - "functionReturnParameters": 1898, - "id": 1979, + "functionReturnParameters": 4299, + "id": 4380, "nodeType": "Return", - "src": "1458:11:9" + "src": "1463:11:35" } ] }, "documentation": "@dev Transfer tokens from one address to another with a fee component\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred", - "id": 1981, + "id": 4382, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5262,16 +5262,16 @@ export const StandardTokenWithFeeMock = "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1895, + "id": 4296, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1890, + "id": 4291, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "998:13:9", + "scope": 4382, + "src": "998:13:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5279,10 +5279,10 @@ export const StandardTokenWithFeeMock = "typeString": "address" }, "typeName": { - "id": 1889, + "id": 4290, "name": "address", "nodeType": "ElementaryTypeName", - "src": "998:7:9", + "src": "998:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5293,11 +5293,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1892, + "id": 4293, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1013:11:9", + "scope": 4382, + "src": "1013:11:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5305,10 +5305,10 @@ export const StandardTokenWithFeeMock = "typeString": "address" }, "typeName": { - "id": 1891, + "id": 4292, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1013:7:9", + "src": "1013:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5319,11 +5319,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1894, + "id": 4295, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1026:14:9", + "scope": 4382, + "src": "1026:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5331,10 +5331,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1893, + "id": 4294, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1026:7:9", + "src": "1026:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5344,20 +5344,20 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "src": "997:44:9" + "src": "997:44:35" }, "payable": false, "returnParameters": { - "id": 1898, + "id": 4299, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1897, + "id": 4298, "name": "", "nodeType": "VariableDeclaration", - "scope": 1981, - "src": "1058:4:9", + "scope": 4382, + "src": "1058:4:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5365,10 +5365,10 @@ export const StandardTokenWithFeeMock = "typeString": "bool" }, "typeName": { - "id": 1896, + "id": 4297, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1058:4:9", + "src": "1058:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5378,19 +5378,19 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "src": "1057:6:9" + "src": "1057:6:35" }, - "scope": 2061, - "src": "976:498:9", + "scope": 4462, + "src": "976:503:35", "stateMutability": "nonpayable", - "superFunction": 2652, + "superFunction": 5235, "visibility": "public" }, { "body": { - "id": 2047, + "id": 4448, "nodeType": "Block", - "src": "1738:367:9", + "src": "1743:372:35", "statements": [ { "expression": { @@ -5402,19 +5402,19 @@ export const StandardTokenWithFeeMock = "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1995, + "id": 4396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1991, + "id": 4392, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "1752:3:9", + "referencedDeclaration": 4384, + "src": "1757:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5428,14 +5428,14 @@ export const StandardTokenWithFeeMock = { "argumentTypes": null, "hexValue": "30", - "id": 1993, + "id": 4394, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1767:1:9", + "src": "1772:1:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5451,20 +5451,20 @@ export const StandardTokenWithFeeMock = "typeString": "int_const 0" } ], - "id": 1992, + "id": 4393, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1759:7:9", + "src": "1764:7:35", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1994, + "id": 4395, "isConstant": false, "isLValue": false, "isPure": true, @@ -5472,13 +5472,13 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1759:10:9", + "src": "1764:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1752:17:9", + "src": "1757:17:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5492,21 +5492,21 @@ export const StandardTokenWithFeeMock = "typeString": "bool" } ], - "id": 1990, + "id": 4391, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1744:7:9", + "referencedDeclaration": 5400, + "src": "1749:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1996, + "id": 4397, "isConstant": false, "isLValue": false, "isPure": false, @@ -5514,15 +5514,15 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1744:26:9", + "src": "1749:26:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1997, + "id": 4398, "nodeType": "ExpressionStatement", - "src": "1744:26:9" + "src": "1749:26:35" }, { "expression": { @@ -5534,19 +5534,19 @@ export const StandardTokenWithFeeMock = "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2004, + "id": 4405, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1999, + "id": 4400, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "1784:6:9", + "referencedDeclaration": 4386, + "src": "1789:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5558,34 +5558,34 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2000, + "id": 4401, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1794:8:9", + "referencedDeclaration": 4837, + "src": "1799:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2003, + "id": 4404, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2001, + "id": 4402, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1803:3:9", + "referencedDeclaration": 5397, + "src": "1808:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2002, + "id": 4403, "isConstant": false, "isLValue": false, "isPure": false, @@ -5593,7 +5593,7 @@ export const StandardTokenWithFeeMock = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1803:10:9", + "src": "1808:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5604,13 +5604,13 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1794:20:9", + "src": "1799:20:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1784:30:9", + "src": "1789:30:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5624,21 +5624,21 @@ export const StandardTokenWithFeeMock = "typeString": "bool" } ], - "id": 1998, + "id": 4399, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2817, - 2818 + 5400, + 5401 ], - "referencedDeclaration": 2817, - "src": "1776:7:9", + "referencedDeclaration": 5400, + "src": "1781:7:35", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2005, + "id": 4406, "isConstant": false, "isLValue": false, "isPure": false, @@ -5646,28 +5646,28 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1776:39:9", + "src": "1781:39:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2006, + "id": 4407, "nodeType": "ExpressionStatement", - "src": "1776:39:9" + "src": "1781:39:35" }, { "assignments": [ - 2008 + 4409 ], "declarations": [ { "constant": false, - "id": 2008, + "id": 4409, "name": "netValuePlusFee", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1822:23:9", + "scope": 4449, + "src": "1827:23:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5675,10 +5675,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 2007, + "id": 4408, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1822:7:9", + "src": "1827:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5688,18 +5688,18 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "id": 2013, + "id": 4414, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2011, + "id": 4412, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "1859:3:9", + "referencedDeclaration": 4253, + "src": "1864:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5715,32 +5715,32 @@ export const StandardTokenWithFeeMock = ], "expression": { "argumentTypes": null, - "id": 2009, + "id": 4410, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "1848:6:9", + "referencedDeclaration": 4386, + "src": "1853:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2010, + "id": 4411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "1848:10:9", + "referencedDeclaration": 4737, + "src": "1853:10:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2012, + "id": 4413, "isConstant": false, "isLValue": false, "isPure": false, @@ -5748,19 +5748,19 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1848:15:9", + "src": "1853:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1822:41:9" + "src": "1827:41:35" }, { "expression": { "argumentTypes": null, - "id": 2025, + "id": 4426, "isConstant": false, "isLValue": false, "isPure": false, @@ -5769,34 +5769,34 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2014, + "id": 4415, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1933:8:9", + "referencedDeclaration": 4837, + "src": "1938:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2017, + "id": 4418, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2015, + "id": 4416, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1942:3:9", + "referencedDeclaration": 5397, + "src": "1947:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2016, + "id": 4417, "isConstant": false, "isLValue": false, "isPure": false, @@ -5804,7 +5804,7 @@ export const StandardTokenWithFeeMock = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1942:10:9", + "src": "1947:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5815,7 +5815,7 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1933:20:9", + "src": "1938:20:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5828,12 +5828,12 @@ export const StandardTokenWithFeeMock = "arguments": [ { "argumentTypes": null, - "id": 2023, + "id": 4424, "name": "netValuePlusFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2008, - "src": "1981:15:9", + "referencedDeclaration": 4409, + "src": "1986:15:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5851,34 +5851,34 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2018, + "id": 4419, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1956:8:9", + "referencedDeclaration": 4837, + "src": "1961:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2021, + "id": 4422, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2019, + "id": 4420, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "1965:3:9", + "referencedDeclaration": 5397, + "src": "1970:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2020, + "id": 4421, "isConstant": false, "isLValue": false, "isPure": false, @@ -5886,7 +5886,7 @@ export const StandardTokenWithFeeMock = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1965:10:9", + "src": "1970:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5897,27 +5897,27 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1956:20:9", + "src": "1961:20:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2022, + "id": 4423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 2130, - "src": "1956:24:9", + "referencedDeclaration": 4713, + "src": "1961:24:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2024, + "id": 4425, "isConstant": false, "isLValue": false, "isPure": false, @@ -5925,26 +5925,26 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1956:41:9", + "src": "1961:41:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1933:64:9", + "src": "1938:64:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2026, + "id": 4427, "nodeType": "ExpressionStatement", - "src": "1933:64:9" + "src": "1938:64:35" }, { "expression": { "argumentTypes": null, - "id": 2036, + "id": 4437, "isConstant": false, "isLValue": false, "isPure": false, @@ -5953,26 +5953,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2027, + "id": 4428, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2003:8:9", + "referencedDeclaration": 4837, + "src": "2008:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2029, + "id": 4430, "indexExpression": { "argumentTypes": null, - "id": 2028, + "id": 4429, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "2012:3:9", + "referencedDeclaration": 4384, + "src": "2017:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5983,7 +5983,7 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2003:13:9", + "src": "2008:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5996,12 +5996,12 @@ export const StandardTokenWithFeeMock = "arguments": [ { "argumentTypes": null, - "id": 2034, + "id": 4435, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "2037:6:9", + "referencedDeclaration": 4386, + "src": "2042:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6019,26 +6019,26 @@ export const StandardTokenWithFeeMock = "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2030, + "id": 4431, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2019:8:9", + "referencedDeclaration": 4837, + "src": "2024:8:35", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 2032, + "id": 4433, "indexExpression": { "argumentTypes": null, - "id": 2031, + "id": 4432, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "2028:3:9", + "referencedDeclaration": 4384, + "src": "2033:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6049,27 +6049,27 @@ export const StandardTokenWithFeeMock = "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2019:13:9", + "src": "2024:13:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2033, + "id": 4434, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2154, - "src": "2019:17:9", + "referencedDeclaration": 4737, + "src": "2024:17:35", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2035, + "id": 4436, "isConstant": false, "isLValue": false, "isPure": false, @@ -6077,42 +6077,42 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2019:25:9", + "src": "2024:25:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2003:41:9", + "src": "2008:41:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2037, + "id": 4438, "nodeType": "ExpressionStatement", - "src": "2003:41:9" + "src": "2008:41:35" }, { - "expression": { + "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2039, + "id": 4440, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "2059:3:9", + "referencedDeclaration": 5397, + "src": "2069:3:35", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2040, + "id": 4441, "isConstant": false, "isLValue": false, "isPure": false, @@ -6120,7 +6120,7 @@ export const StandardTokenWithFeeMock = "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2059:10:9", + "src": "2069:10:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6128,12 +6128,12 @@ export const StandardTokenWithFeeMock = }, { "argumentTypes": null, - "id": 2041, + "id": 4442, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "2071:3:9", + "referencedDeclaration": 4384, + "src": "2081:3:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6141,12 +6141,12 @@ export const StandardTokenWithFeeMock = }, { "argumentTypes": null, - "id": 2042, + "id": 4443, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "2076:6:9", + "referencedDeclaration": 4386, + "src": "2086:6:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6168,18 +6168,18 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" } ], - "id": 2038, + "id": 4439, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "2050:8:9", + "referencedDeclaration": 5028, + "src": "2060:8:35", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 2043, + "id": 4444, "isConstant": false, "isLValue": false, "isPure": false, @@ -6187,28 +6187,28 @@ export const StandardTokenWithFeeMock = "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2050:33:9", + "src": "2060:33:35", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2044, - "nodeType": "ExpressionStatement", - "src": "2050:33:9" + "id": 4445, + "nodeType": "EmitStatement", + "src": "2055:38:35" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2045, + "id": 4446, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2096:4:9", + "src": "2106:4:35", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6216,15 +6216,15 @@ export const StandardTokenWithFeeMock = }, "value": "true" }, - "functionReturnParameters": 1989, - "id": 2046, + "functionReturnParameters": 4390, + "id": 4447, "nodeType": "Return", - "src": "2089:11:9" + "src": "2099:11:35" } ] }, "documentation": "@dev transfer token for a specified address with a fee component applied to the send\n@param _to The address to transfer to.\n@param _value The amount to be transferred.", - "id": 2048, + "id": 4449, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6232,16 +6232,16 @@ export const StandardTokenWithFeeMock = "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1986, + "id": 4387, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1983, + "id": 4384, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1687:11:9", + "scope": 4449, + "src": "1692:11:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6249,10 +6249,10 @@ export const StandardTokenWithFeeMock = "typeString": "address" }, "typeName": { - "id": 1982, + "id": 4383, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1687:7:9", + "src": "1692:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6263,11 +6263,11 @@ export const StandardTokenWithFeeMock = }, { "constant": false, - "id": 1985, + "id": 4386, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1700:14:9", + "scope": 4449, + "src": "1705:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6275,10 +6275,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 1984, + "id": 4385, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1700:7:9", + "src": "1705:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6288,20 +6288,20 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "src": "1686:29:9" + "src": "1691:29:35" }, "payable": false, "returnParameters": { - "id": 1989, + "id": 4390, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1988, + "id": 4389, "name": "", "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "1732:4:9", + "scope": 4449, + "src": "1737:4:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6309,10 +6309,10 @@ export const StandardTokenWithFeeMock = "typeString": "bool" }, "typeName": { - "id": 1987, + "id": 4388, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1732:4:9", + "src": "1737:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6322,36 +6322,36 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "src": "1731:6:9" + "src": "1736:6:35" }, - "scope": 2061, - "src": "1669:436:9", + "scope": 4462, + "src": "1674:441:35", "stateMutability": "nonpayable", - "superFunction": 2324, + "superFunction": 4907, "visibility": "public" }, { "body": { - "id": 2059, + "id": 4460, "nodeType": "Block", - "src": "2161:21:9", + "src": "2171:21:35", "statements": [ { "expression": { "argumentTypes": null, - "id": 2057, + "id": 4458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2055, + "id": 4456, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "2167:3:9", + "referencedDeclaration": 4253, + "src": "2177:3:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6361,31 +6361,31 @@ export const StandardTokenWithFeeMock = "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2056, + "id": 4457, "name": "_fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "2173:4:9", + "referencedDeclaration": 4451, + "src": "2183:4:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2167:10:9", + "src": "2177:10:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2058, + "id": 4459, "nodeType": "ExpressionStatement", - "src": "2167:10:9" + "src": "2177:10:35" } ] }, "documentation": null, - "id": 2060, + "id": 4461, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6393,16 +6393,16 @@ export const StandardTokenWithFeeMock = "name": "setFee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2051, + "id": 4452, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2050, + "id": 4451, "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 2060, - "src": "2125:12:9", + "scope": 4461, + "src": "2135:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6410,10 +6410,10 @@ export const StandardTokenWithFeeMock = "typeString": "uint256" }, "typeName": { - "id": 2049, + "id": 4450, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2125:7:9", + "src": "2135:7:35", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6423,20 +6423,20 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "src": "2124:14:9" + "src": "2134:14:35" }, "payable": false, "returnParameters": { - "id": 2054, + "id": 4455, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2053, + "id": 4454, "name": "", "nodeType": "VariableDeclaration", - "scope": 2060, - "src": "2155:4:9", + "scope": 4461, + "src": "2165:4:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6444,10 +6444,10 @@ export const StandardTokenWithFeeMock = "typeString": "bool" }, "typeName": { - "id": 2052, + "id": 4453, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2155:4:9", + "src": "2165:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6457,26 +6457,26 @@ export const StandardTokenWithFeeMock = "visibility": "internal" } ], - "src": "2154:6:9" + "src": "2164:6:35" }, - "scope": 2061, - "src": "2109:73:9", + "scope": 4462, + "src": "2119:73:35", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2062, - "src": "183:2001:9" + "scope": 4463, + "src": "183:2011:35" } ], - "src": "0:2185:9" + "src": "0:2195:35" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-06-06T22:54:27.585Z" + "updatedAt": "2018-07-07T07:45:08.914Z" } \ No newline at end of file diff --git a/artifacts/ts/TransferProxy.ts b/artifacts/ts/TransferProxy.ts new file mode 100644 index 000000000..f81810be1 --- /dev/null +++ b/artifacts/ts/TransferProxy.ts @@ -0,0 +1,2117 @@ +export const TransferProxy = +{ + "contractName": "TransferProxy", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + } + ], + "name": "addAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vaultAddress", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "authorities", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + } + ], + "name": "removeAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "removeAuthorizedAddressAtIndex", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "authorized", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAuthorizedAddresses", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "authAddress", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AddressAuthorized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "addressRemoved", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AuthorizedAddressRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_vaultAddress", + "type": "address" + } + ], + "name": "setVaultAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "transferToVault", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061199c806100536000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303ee2295146100bf57806342f1181e1461012c578063430bf08a1461016f578063494503d4146101c65780637071293914610233578063715018a61461027657806385535cc51461028d5780638da5cb5b146102d05780639ad2674414610327578063b918161114610374578063d39de6e9146103cf578063f2fde38b1461043b575b600080fd5b3480156100cb57600080fd5b5061012a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061047e565b005b34801561013857600080fd5b5061016d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610685565b005b34801561017b57600080fd5b5061018461096e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101d257600080fd5b506101f160048036038101908080359060200190929190505050610994565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023f57600080fd5b50610274600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109d2565b005b34801561028257600080fd5b5061028b610d92565b005b34801561029957600080fd5b506102ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e94565b005b3480156102dc57600080fd5b506102e5610f33565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561033357600080fd5b50610372600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f58565b005b34801561038057600080fd5b506103b5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ae565b604051808215151515815260200191505060405180910390f35b3480156103db57600080fd5b506103e46113ce565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561042757808201518184015260208101905061040c565b505050509050019250505060405180910390f35b34801561044757600080fd5b5061047c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061145c565b005b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e000000000000000000000000000000000000000000008152509015156105d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561059857808201518184015260208101905061057d565b50505050905090810190601f1680156105c55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061060084600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114c3565b91506106308486600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866115a3565b61065c84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114c3565b905061067183836117cc90919063ffffffff16565b8114151561067e57600080fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106e057600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e0000000000000000000000000000000000000000000000000000815250901515610833576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107f85780820151818401526020810190506107dd565b50505050905090810190601f1680156108255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002818154811015156109a357fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a2f57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e000000000000000000000000000000000000000000000000000000000000815250901515610b81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b46578082015181840152602081019050610b2b565b50505050905090810190601f168015610b735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b600280549050811015610d8e578173ffffffffffffffffffffffffffffffffffffffff16600282815481101515610c0957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d81576002600160028054905003815481101515610c6757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282815481101515610ca157fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610d01919061191f565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2610d8e565b8080600101915050610bd6565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ded57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610eef57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb357600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e000000000000000000000000000000000000000000000000008152509015156110c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561108557808201518184015260208101905061106a565b50505050905090810190601f1680156110b25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff166002828154811015156110e757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e0000000000000000000000000000000000000081525090151561122e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111f35780820151818401526020810190506111d8565b50505050905090810190601f1680156112205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600260016002805490500381548110151561129557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002828154811015156112cf57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160028181805490500391508161132f919061191f565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561145257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611408575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114b757600080fd5b6114c0816117e8565b50565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561156057600080fd5b505af1158015611574573d6000803e3d6000fd5b505050506040513d602081101561158a57600080fd5b8101908080519060200190929190505050905092915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561167a57600080fd5b505af115801561168e573d6000803e3d6000fd5b5050505061169a6118e2565b608060405190810160405280604a81526020017f5472616e7366657272656420746f6b656e20646f6573206e6f7420726574757281526020017f6e206e756c6c206f722074727565206f6e207375636365737366756c2074726181526020017f6e7366657246726f6d2e000000000000000000000000000000000000000000008152509015156117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561178a57808201518184015260208101905061176f565b50505050905090810190601f1680156117b75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b600081830190508281101515156117df57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561182457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090503d600081146118ff576020811461190857611914565b60019150611914565b60206000803e60005191505b506001811491505090565b81548183558181111561194657818360005260206000209182019101611945919061194b565b5b505050565b61196d91905b80821115611969576000816000905550600101611951565b5090565b905600a165627a7a723058202769ebb3c20c59f05e40ac3f2f3f66699450db16edbbb14831b60b460e57ae960029", + "deployedBytecode": "0x6080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303ee2295146100bf57806342f1181e1461012c578063430bf08a1461016f578063494503d4146101c65780637071293914610233578063715018a61461027657806385535cc51461028d5780638da5cb5b146102d05780639ad2674414610327578063b918161114610374578063d39de6e9146103cf578063f2fde38b1461043b575b600080fd5b3480156100cb57600080fd5b5061012a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061047e565b005b34801561013857600080fd5b5061016d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610685565b005b34801561017b57600080fd5b5061018461096e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101d257600080fd5b506101f160048036038101908080359060200190929190505050610994565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023f57600080fd5b50610274600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109d2565b005b34801561028257600080fd5b5061028b610d92565b005b34801561029957600080fd5b506102ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e94565b005b3480156102dc57600080fd5b506102e5610f33565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561033357600080fd5b50610372600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f58565b005b34801561038057600080fd5b506103b5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ae565b604051808215151515815260200191505060405180910390f35b3480156103db57600080fd5b506103e46113ce565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561042757808201518184015260208101905061040c565b505050509050019250505060405180910390f35b34801561044757600080fd5b5061047c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061145c565b005b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e000000000000000000000000000000000000000000008152509015156105d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561059857808201518184015260208101905061057d565b50505050905090810190601f1680156105c55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061060084600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114c3565b91506106308486600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866115a3565b61065c84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114c3565b905061067183836117cc90919063ffffffff16565b8114151561067e57600080fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106e057600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e0000000000000000000000000000000000000000000000000000815250901515610833576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107f85780820151818401526020810190506107dd565b50505050905090810190601f1680156108255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002818154811015156109a357fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a2f57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e000000000000000000000000000000000000000000000000000000000000815250901515610b81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b46578082015181840152602081019050610b2b565b50505050905090810190601f168015610b735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b600280549050811015610d8e578173ffffffffffffffffffffffffffffffffffffffff16600282815481101515610c0957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d81576002600160028054905003815481101515610c6757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282815481101515610ca157fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610d01919061191f565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2610d8e565b8080600101915050610bd6565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ded57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610eef57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb357600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e000000000000000000000000000000000000000000000000008152509015156110c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561108557808201518184015260208101905061106a565b50505050905090810190601f1680156110b25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff166002828154811015156110e757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e0000000000000000000000000000000000000081525090151561122e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111f35780820151818401526020810190506111d8565b50505050905090810190601f1680156112205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600260016002805490500381548110151561129557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002828154811015156112cf57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160028181805490500391508161132f919061191f565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b6060600280548060200260200160405190810160405280929190818152602001828054801561145257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611408575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114b757600080fd5b6114c0816117e8565b50565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561156057600080fd5b505af1158015611574573d6000803e3d6000fd5b505050506040513d602081101561158a57600080fd5b8101908080519060200190929190505050905092915050565b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561167a57600080fd5b505af115801561168e573d6000803e3d6000fd5b5050505061169a6118e2565b608060405190810160405280604a81526020017f5472616e7366657272656420746f6b656e20646f6573206e6f7420726574757281526020017f6e206e756c6c206f722074727565206f6e207375636365737366756c2074726181526020017f6e7366657246726f6d2e000000000000000000000000000000000000000000008152509015156117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561178a57808201518184015260208101905061176f565b50505050905090810190601f1680156117b75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b600081830190508281101515156117df57fe5b80905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561182457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090503d600081146118ff576020811461190857611914565b60019150611914565b60206000803e60005191505b506001811491505090565b81548183558181111561194657818360005260206000209182019101611945919061194b565b5b505050565b61196d91905b80821115611969576000816000905550600101611951565b5090565b905600a165627a7a723058202769ebb3c20c59f05e40ac3f2f3f66699450db16edbbb14831b60b460e57ae960029", + "sourceMap": "1099:1979:4:-;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;1099:1979:4;;;;;;", + "deployedSourceMap": "1099:1979:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2248:828;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2248:828:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2599:558:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2599:558:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;1326:27:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1326:27:4;;;;;;;;;;;;;;;;;;;;;;;;;;;1721:28:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1721:28:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3324:980;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3324:980:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:39;;;;;;1614:210:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1614:210:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;4571:939:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4571:939:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1634:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1634:43:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5620:186:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5620:186:27;;;;;;;;;;;;;;;;;1100:103:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;2248:828:4;2470:25;2888:20;1932:10:27;:22;1943:10;1932:22;;;;;;;;;;;;;;;;;;;;;;;;;1968:21;;;;;;;;;;;;;;;;;;;;;;;1911:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1911:88:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2498:85:4;2534:13;2561:12;;;;;;;;;;;2498:22;:85::i;:::-;2470:113;;2687:130;2726:13;2753:5;2772:12;;;;;;;;;;;2798:9;2687:25;:130::i;:::-;2911:85;2947:13;2974:12;;;;;;;;;;;2911:22;:85::i;:::-;2888:108;;3033:35;3058:9;3033:20;:24;;:35;;;;:::i;:::-;3014:15;:54;3006:63;;;;;;;;2248:828;;;;;:::o;2599:558:27:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2779:10:27;:23;2790:11;2779:23;;;;;;;;;;;;;;;;;;;;;;;;;2778:24;2816:25;;;;;;;;;;;;;;;;;;;;;;;2757:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2757:94:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2929:4;2903:10;:23;2914:11;2903:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;2988:11;3005;2988:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2988:29:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3105:11;3074:76;;;3130:10;3074:76;;;;;;;;;;;;;;;;;;;;;;2599:558;:::o;1326:27:4:-;;;;;;;;;;;;;:::o;1721:28:27:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3324:980::-;3664:6;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;3489:10:27;:23;3500:11;3489:23;;;;;;;;;;;;;;;;;;;;;;;;;3526:21;;;;;;;;;;;;;;;;;;;;;;;3468:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3468:89:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3625:10;:23;3636:11;3625:23;;;;;;;;;;;;;;;;3618:30;;;;;;;;;;;3673:1;3664:10;;3659:639;3680:11;:18;;;;3676:1;:22;3659:639;;;3812:11;3794:29;;:11;3806:1;3794:14;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;3790:498;;;3938:11;3971:1;3950:11;:18;;;;:22;3938:35;;;;;;;;;;;;;;;;;;;;;;;;;;;3921:11;3933:1;3921:14;;;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;4062:1;4040:11;:23;;;;;;;;;;;;;;:::i;:::-;;4189:11;4143:107;;;4222:10;4143:107;;;;;;;;;;;;;;;;;;;;;;4268:5;;3790:498;3700:3;;;;;;;3659:639;;;3324:980;;:::o;827:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;1614:210:4:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1804:13:4;1789:12;;:28;;;;;;;;;;;;;;;;;;1614:210;:::o;238:20:39:-;;;;;;;;;;;;;:::o;4571:939:27:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;4809:11:27;:18;;;;4800:6;:27;4841:19;;;;;;;;;;;;;;;;;;;;;;;4779:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4779:91:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4999:11;4976:34;;:11;4988:6;4976:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;5024:22;;;;;;;;;;;;;;;;;;;;;;;4955:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4955:101:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5124:10;:23;5135:11;5124:23;;;;;;;;;;;;;;;;5117:30;;;;;;;;;;;5245:11;5278:1;5257:11;:18;;;;:22;5245:35;;;;;;;;;;;;;;;;;;;;;;;;;;;5223:11;5235:6;5223:19;;;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;5355:1;5333:11;:23;;;;;;;;;;;;;;:::i;:::-;;5458:11;5420:83;;;5483:10;5420:83;;;;;;;;;;;;;;;;;;;;;;4571:939;;:::o;1634:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;5620:186::-;5701:9;5788:11;5781:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186;:::o;1100:103:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1343:217:23:-;1477:7;1514:13;1507:31;;;1539:13;1507:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1507:46:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1507:46:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1507:46:23;;;;;;;;;;;;;;;;1500:53;;1343:217;;;;:::o;1852:322::-;2020:13;2013:34;;;2048:5;2055:3;2060:9;2013:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2013:57:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2013:57:23;;;;2102:14;:12;:14::i;:::-;2130:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;2081:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2081:86:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1852:322;;;;:::o;1214:123:38:-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;1338:171:39:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o;2388:852:23:-;2463:4;2513:19;2535:1;2513:23;;2647:14;2729:3;2724:57;;;;2833:4;2828:220;;;;2640:497;;2724:57;2766:1;2751:16;;2724:57;;2828:220;2933:4;2928:3;2923;2908:30;3030:3;3024:10;3009:25;;2640:497;;3232:1;3217:11;:16;3210:23;;2388:852;;:::o;1099:1979:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\nimport { Authorizable } from \"../lib/Authorizable.sol\";\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { ERC20Wrapper } from \"./lib/ERC20Wrapper.sol\";\n\n\n/**\n * @title TransferProxy\n * @author Set Protocol\n *\n * The proxy contract is responsible for transferring funds from the user to the vault during Set issuance.\n * The contract is separated to allow for upgrades, particularly if new token standards emerge or upgrades are required.\n */\n\ncontract TransferProxy is\n Authorizable\n{\n // Use SafeMath library for all uint256 arithmetic\n using SafeMath for uint256;\n\n /* ============ State Variables ============ */\n\n // Address of the Vault contract\n address public vaultAddress;\n\n /* ============ No Constructor ============ */\n\n /* ============ Setter Functions ============ */\n\n /**\n * Set vaultAddress. Can only be set by owner of TransferProxy.\n *\n * @param _vaultAddress The address of the Vault\n */\n\n function setVaultAddress(\n address _vaultAddress\n )\n external\n onlyOwner\n {\n // Commit passed address to vaultAddress state variable\n vaultAddress = _vaultAddress;\n }\n\n /* ============ Public Functions ============ */\n\n /**\n * Transfers tokens from an address (that has set allowance on the proxy) to the vault.\n * Can only be called by authorized core contracts.\n *\n * @param _from The address to transfer tokens from\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to transfer\n */\n function transferToVault(\n address _from,\n address _tokenAddress,\n uint _quantity\n )\n external\n onlyAuthorized\n {\n // Retrieve current balance of token for the vault\n uint existingVaultBalance = ERC20Wrapper.balanceOf(\n _tokenAddress,\n vaultAddress\n );\n\n // Call specified ERC20 contract to transfer tokens from user to Vault (via proxy).\n\n ERC20Wrapper.transferFrom(\n _tokenAddress,\n _from,\n vaultAddress,\n _quantity\n );\n\n // Verify transfer quantity is reflected in balance\n uint newVaultBalance = ERC20Wrapper.balanceOf(\n _tokenAddress,\n vaultAddress\n );\n require(newVaultBalance == existingVaultBalance.add(_quantity));\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/TransferProxy.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/TransferProxy.sol", + "exportedSymbols": { + "TransferProxy": [ + 730 + ] + }, + "id": 731, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 658, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:4" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "file": "../lib/Authorizable.sol", + "id": 660, + "nodeType": "ImportDirective", + "scope": 731, + "sourceUnit": 3323, + "src": "623:55:4", + "symbolAliases": [ + { + "foreign": 659, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 662, + "nodeType": "ImportDirective", + "scope": 731, + "sourceUnit": 4739, + "src": "679:73:4", + "symbolAliases": [ + { + "foreign": 661, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ERC20Wrapper.sol", + "file": "./lib/ERC20Wrapper.sol", + "id": 664, + "nodeType": "ImportDirective", + "scope": 731, + "sourceUnit": 2846, + "src": "753:54:4", + "symbolAliases": [ + { + "foreign": 663, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 665, + "name": "Authorizable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3322, + "src": "1129:12:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Authorizable_$3322", + "typeString": "contract Authorizable" + } + }, + "id": 666, + "nodeType": "InheritanceSpecifier", + "src": "1129:12:4" + } + ], + "contractDependencies": [ + 3322, + 4824 + ], + "contractKind": "contract", + "documentation": "@title TransferProxy\n@author Set Protocol\n * The proxy contract is responsible for transferring funds from the user to the vault during Set issuance.\nThe contract is separated to allow for upgrades, particularly if new token standards emerge or upgrades are required.", + "fullyImplemented": true, + "id": 730, + "linearizedBaseContracts": [ + 730, + 3322, + 4824 + ], + "name": "TransferProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 669, + "libraryName": { + "contractScope": null, + "id": 667, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1209:8:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1203:27:4", + "typeName": { + "id": 668, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1222:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 671, + "name": "vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 730, + "src": "1326:27:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1326:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 682, + "nodeType": "Block", + "src": "1715:109:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 678, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "1789:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 679, + "name": "_vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 673, + "src": "1804:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1789:28:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 681, + "nodeType": "ExpressionStatement", + "src": "1789:28:4" + } + ] + }, + "documentation": "Set vaultAddress. Can only be set by owner of TransferProxy.\n * @param _vaultAddress The address of the Vault", + "id": 683, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 676, + "modifierName": { + "argumentTypes": null, + "id": 675, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1701:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1701:9:4" + } + ], + "name": "setVaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 673, + "name": "_vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "1648:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1648:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1638:37:4" + }, + "payable": false, + "returnParameters": { + "id": 677, + "nodeType": "ParameterList", + "parameters": [], + "src": "1715:0:4" + }, + "scope": 730, + "src": "1614:210:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 728, + "nodeType": "Block", + "src": "2401:675:4", + "statements": [ + { + "assignments": [ + 695 + ], + "declarations": [ + { + "constant": false, + "id": 695, + "name": "existingVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2470:25:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2470:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 701, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 698, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "2534:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 699, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "2561:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 696, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2498:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "2498:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2498:85:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2470:113:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 705, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "2726:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 685, + "src": "2753:5:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 707, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "2772:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 708, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "2798:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 702, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2687:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 2829, + "src": "2687:25:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256)" + } + }, + "id": 709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2687:130:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 710, + "nodeType": "ExpressionStatement", + "src": "2687:130:4" + }, + { + "assignments": [ + 712 + ], + "declarations": [ + { + "constant": false, + "id": 712, + "name": "newVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2888:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 711, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2888:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 718, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 715, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "2947:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 716, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "2974:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 713, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2911:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "2911:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2911:85:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2888:108:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 720, + "name": "newVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 712, + "src": "3014:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 723, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "3058:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 721, + "name": "existingVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 695, + "src": "3033:20:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "3033:24:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3033:35:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3014:54:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 719, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "3006:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3006:63:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 727, + "nodeType": "ExpressionStatement", + "src": "3006:63:4" + } + ] + }, + "documentation": "Transfers tokens from an address (that has set allowance on the proxy) to the vault.\nCan only be called by authorized core contracts.\n * @param _from The address to transfer tokens from\n@param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to transfer", + "id": 729, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 692, + "modifierName": { + "argumentTypes": null, + "id": 691, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "2382:14:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2382:14:4" + } + ], + "name": "transferToVault", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 685, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2282:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2282:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 687, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2305:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 686, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 689, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2336:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 688, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2336:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2272:84:4" + }, + "payable": false, + "returnParameters": { + "id": 693, + "nodeType": "ParameterList", + "parameters": [], + "src": "2401:0:4" + }, + "scope": 730, + "src": "2248:828:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 731, + "src": "1099:1979:4" + } + ], + "src": "597:2482:4" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/TransferProxy.sol", + "exportedSymbols": { + "TransferProxy": [ + 730 + ] + }, + "id": 731, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 658, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:4" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "file": "../lib/Authorizable.sol", + "id": 660, + "nodeType": "ImportDirective", + "scope": 731, + "sourceUnit": 3323, + "src": "623:55:4", + "symbolAliases": [ + { + "foreign": 659, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 662, + "nodeType": "ImportDirective", + "scope": 731, + "sourceUnit": 4739, + "src": "679:73:4", + "symbolAliases": [ + { + "foreign": 661, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ERC20Wrapper.sol", + "file": "./lib/ERC20Wrapper.sol", + "id": 664, + "nodeType": "ImportDirective", + "scope": 731, + "sourceUnit": 2846, + "src": "753:54:4", + "symbolAliases": [ + { + "foreign": 663, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 665, + "name": "Authorizable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3322, + "src": "1129:12:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Authorizable_$3322", + "typeString": "contract Authorizable" + } + }, + "id": 666, + "nodeType": "InheritanceSpecifier", + "src": "1129:12:4" + } + ], + "contractDependencies": [ + 3322, + 4824 + ], + "contractKind": "contract", + "documentation": "@title TransferProxy\n@author Set Protocol\n * The proxy contract is responsible for transferring funds from the user to the vault during Set issuance.\nThe contract is separated to allow for upgrades, particularly if new token standards emerge or upgrades are required.", + "fullyImplemented": true, + "id": 730, + "linearizedBaseContracts": [ + 730, + 3322, + 4824 + ], + "name": "TransferProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 669, + "libraryName": { + "contractScope": null, + "id": 667, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1209:8:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1203:27:4", + "typeName": { + "id": 668, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1222:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 671, + "name": "vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 730, + "src": "1326:27:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1326:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 682, + "nodeType": "Block", + "src": "1715:109:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 678, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "1789:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 679, + "name": "_vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 673, + "src": "1804:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1789:28:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 681, + "nodeType": "ExpressionStatement", + "src": "1789:28:4" + } + ] + }, + "documentation": "Set vaultAddress. Can only be set by owner of TransferProxy.\n * @param _vaultAddress The address of the Vault", + "id": 683, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 676, + "modifierName": { + "argumentTypes": null, + "id": 675, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "1701:9:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1701:9:4" + } + ], + "name": "setVaultAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 673, + "name": "_vaultAddress", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "1648:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1648:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1638:37:4" + }, + "payable": false, + "returnParameters": { + "id": 677, + "nodeType": "ParameterList", + "parameters": [], + "src": "1715:0:4" + }, + "scope": 730, + "src": "1614:210:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 728, + "nodeType": "Block", + "src": "2401:675:4", + "statements": [ + { + "assignments": [ + 695 + ], + "declarations": [ + { + "constant": false, + "id": 695, + "name": "existingVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2470:25:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2470:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 701, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 698, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "2534:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 699, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "2561:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 696, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2498:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "2498:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2498:85:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2470:113:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 705, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "2726:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 685, + "src": "2753:5:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 707, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "2772:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 708, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "2798:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 702, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2687:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 2829, + "src": "2687:25:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256)" + } + }, + "id": 709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2687:130:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 710, + "nodeType": "ExpressionStatement", + "src": "2687:130:4" + }, + { + "assignments": [ + 712 + ], + "declarations": [ + { + "constant": false, + "id": 712, + "name": "newVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2888:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 711, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2888:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 718, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 715, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "2947:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 716, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "2974:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 713, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2911:12:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "2911:22:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2911:85:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2888:108:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 720, + "name": "newVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 712, + "src": "3014:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 723, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "3058:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 721, + "name": "existingVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 695, + "src": "3033:20:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "3033:24:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3033:35:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3014:54:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 719, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "3006:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3006:63:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 727, + "nodeType": "ExpressionStatement", + "src": "3006:63:4" + } + ] + }, + "documentation": "Transfers tokens from an address (that has set allowance on the proxy) to the vault.\nCan only be called by authorized core contracts.\n * @param _from The address to transfer tokens from\n@param _tokenAddress The address of the ERC20 token\n@param _quantity The number of tokens to transfer", + "id": 729, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 692, + "modifierName": { + "argumentTypes": null, + "id": 691, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "2382:14:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2382:14:4" + } + ], + "name": "transferToVault", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 685, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2282:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2282:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 687, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2305:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 686, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 689, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "2336:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 688, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2336:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2272:84:4" + }, + "payable": false, + "returnParameters": { + "id": 693, + "nodeType": "ParameterList", + "parameters": [], + "src": "2401:0:4" + }, + "scope": 730, + "src": "2248:828:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 731, + "src": "1099:1979:4" + } + ], + "src": "597:2482:4" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.892Z" +} \ No newline at end of file diff --git a/artifacts/ts/Vault.ts b/artifacts/ts/Vault.ts new file mode 100644 index 000000000..72d07c938 --- /dev/null +++ b/artifacts/ts/Vault.ts @@ -0,0 +1,5289 @@ +export const Vault = +{ + "contractName": "Vault", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + } + ], + "name": "addAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "authorities", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + } + ], + "name": "removeAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_authTarget", + "type": "address" + }, + { + "name": "_index", + "type": "uint256" + } + ], + "name": "removeAuthorizedAddressAtIndex", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "authorized", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "address" + } + ], + "name": "balances", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAuthorizedAddresses", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "authAddress", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AddressAuthorized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "addressRemoved", + "type": "address" + }, + { + "indexed": false, + "name": "authorizedBy", + "type": "address" + } + ], + "name": "AuthorizedAddressRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "withdrawTo", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "incrementTokenOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + }, + { + "name": "_quantity", + "type": "uint256" + } + ], + "name": "decrementTokenOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + } + ], + "name": "getOwnerBalance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612144806100536000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631f98ade3146100d557806342f1181e1461014c578063494503d41461018f57806370712939146101fc578063715018a61461023f57806380ddda30146102565780638da5cb5b146102c35780639ad267441461031a578063b918161114610367578063bada5726146103c2578063c23f001f1461042f578063c3b35a7e146104a6578063d39de6e914610513578063f2fde38b1461057f575b600080fd5b3480156100e157600080fd5b50610136600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105c2565b6040518082815260200191505060405180910390f35b34801561015857600080fd5b5061018d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610649565b005b34801561019b57600080fd5b506101ba60048036038101908080359060200190929190505050610932565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020857600080fd5b5061023d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610970565b005b34801561024b57600080fd5b50610254610d30565b005b34801561026257600080fd5b506102c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e32565b005b3480156102cf57600080fd5b506102d8611230565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032657600080fd5b50610365600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611255565b005b34801561037357600080fd5b506103a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116ab565b604051808215151515815260200191505060405180910390f35b3480156103ce57600080fd5b5061042d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116cb565b005b34801561043b57600080fd5b50610490600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611943565b6040518082815260200191505060405180910390f35b3480156104b257600080fd5b50610511600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611968565b005b34801561051f57600080fd5b50610528611b92565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561056b578082015181840152602081019050610550565b505050509050019250505060405180910390f35b34801561058b57600080fd5b506105c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c20565b005b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106a457600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e00000000000000000000000000000000000000000000000000008152509015156107f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107bc5780820151818401526020810190506107a1565b50505050905090810190601f1680156107e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b60028181548110151561094157fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109cd57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e000000000000000000000000000000000000000000000000000000000000815250901515610b1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ae4578082015181840152602081019050610ac9565b50505050905090810190601f168015610b115780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b600280549050811015610d2c578173ffffffffffffffffffffffffffffffffffffffff16600282815481101515610ba757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d1f576002600160028054905003815481101515610c0557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282815481101515610c3f57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610c9f91906120c7565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2610d2c565b8080600101915050610b74565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d8b57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e00000000000000000000000000000000000000000000815250901515610f84576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f49578082015181840152602081019050610f2e565b50505050905090810190601f168015610f765780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5080600081111515610f9557600080fd5b81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015606060405190810160405280602681526020017f5573657220646f6573206e6f7420686176652073756666696369656e7420626181526020017f6c616e63652e000000000000000000000000000000000000000000000000000081525090151561111a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110df5780820151818401526020810190506110c4565b50505050905090810190601f16801561110c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506111aa82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8790919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b057600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e000000000000000000000000000000000000000000000000008152509015156113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611382578082015181840152602081019050611367565b50505050905090810190601f1680156113af5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff166002828154811015156113e457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e0000000000000000000000000000000000000081525090151561152b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156114f05780820151818401526020810190506114d5565b50505050905090810190601f16801561151d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600260016002805490500381548110151561159257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002828154811015156115cc57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160028181805490500391508161162c91906120c7565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e0000000000000000000000000000000000000000000081525090151561181d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156117e25780820151818401526020810190506117c7565b50505050905090810190601f16801561180f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508060008111151561182e57600080fd5b6118bd82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca090919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b6003602052816000526040600020602052806000526040600020600091509150505481565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e00000000000000000000000000000000000000000000815250901515611abd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a82578082015181840152602081019050611a67565b50505050905090810190601f168015611aaf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082600081111515611ace57600080fd5b84600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b0b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b4657600080fd5b611b508730611cbc565b9350611b5d878787611d9c565b611b678730611cbc565b9250611b7c8585611c8790919063ffffffff16565b83141515611b8957600080fd5b50505050505050565b60606002805480602002602001604051908101604052809291908181526020018280548015611c1657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611bcc575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7b57600080fd5b611c8481611f90565b50565b6000828211151515611c9557fe5b818303905092915050565b60008183019050828110151515611cb357fe5b80905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611d5957600080fd5b505af1158015611d6d573d6000803e3d6000fd5b505050506040513d6020811015611d8357600080fd5b8101908080519060200190929190505050905092915050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611e3f57600080fd5b505af1158015611e53573d6000803e3d6000fd5b50505050611e5f61208a565b608060405190810160405280604681526020017f5472616e7366657272656420746f6b656e20646f6573206e6f7420726574757281526020017f6e206e756c6c206f722074727565206f6e207375636365737366756c2074726181526020017f6e736665722e0000000000000000000000000000000000000000000000000000815250901515611f8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f4f578082015181840152602081019050611f34565b50505050905090810190601f168015611f7c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fcc57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090503d600081146120a757602081146120b0576120bc565b600191506120bc565b60206000803e60005191505b506001811491505090565b8154818355818111156120ee578183600052602060002091820191016120ed91906120f3565b5b505050565b61211591905b808211156121115760008160009055506001016120f9565b5090565b905600a165627a7a72305820c90b35e96726f9549adf2cfe9a6abafe36f4e0392f5049603589720bfec723680029", + "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631f98ade3146100d557806342f1181e1461014c578063494503d41461018f57806370712939146101fc578063715018a61461023f57806380ddda30146102565780638da5cb5b146102c35780639ad267441461031a578063b918161114610367578063bada5726146103c2578063c23f001f1461042f578063c3b35a7e146104a6578063d39de6e914610513578063f2fde38b1461057f575b600080fd5b3480156100e157600080fd5b50610136600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105c2565b6040518082815260200191505060405180910390f35b34801561015857600080fd5b5061018d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610649565b005b34801561019b57600080fd5b506101ba60048036038101908080359060200190929190505050610932565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020857600080fd5b5061023d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610970565b005b34801561024b57600080fd5b50610254610d30565b005b34801561026257600080fd5b506102c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e32565b005b3480156102cf57600080fd5b506102d8611230565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032657600080fd5b50610365600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611255565b005b34801561037357600080fd5b506103a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116ab565b604051808215151515815260200191505060405180910390f35b3480156103ce57600080fd5b5061042d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116cb565b005b34801561043b57600080fd5b50610490600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611943565b6040518082815260200191505060405180910390f35b3480156104b257600080fd5b50610511600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611968565b005b34801561051f57600080fd5b50610528611b92565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561056b578082015181840152602081019050610550565b505050509050019250505060405180910390f35b34801561058b57600080fd5b506105c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c20565b005b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106a457600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615606060405190810160405280602681526020017f546172676574206d757374206e6f7420616c726561647920626520617574686f81526020017f72697a65642e00000000000000000000000000000000000000000000000000008152509015156107f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107bc5780820151818401526020810190506107a1565b50505050905090810190601f1680156107e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508073ffffffffffffffffffffffffffffffffffffffff167f8918da6429714f0e9c40ae7f270773e27fc8caf7a256e19807f859563b7514de33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b60028181548110151561094157fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109cd57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602281526020017f5461726765742061646472657373206d75737420626520617574686f72697a6581526020017f642e000000000000000000000000000000000000000000000000000000000000815250901515610b1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ae4578082015181840152602081019050610ac9565b50505050905090810190601f168015610b115780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600090505b600280549050811015610d2c578173ffffffffffffffffffffffffffffffffffffffff16600282815481101515610ba757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d1f576002600160028054905003815481101515610c0557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600282815481101515610c3f57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600281818054905003915081610c9f91906120c7565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2610d2c565b8080600101915050610b74565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d8b57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e00000000000000000000000000000000000000000000815250901515610f84576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f49578082015181840152602081019050610f2e565b50505050905090810190601f168015610f765780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5080600081111515610f9557600080fd5b81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015606060405190810160405280602681526020017f5573657220646f6573206e6f7420686176652073756666696369656e7420626181526020017f6c616e63652e000000000000000000000000000000000000000000000000000081525090151561111a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110df5780820151818401526020810190506110c4565b50505050905090810190601f16801561110c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506111aa82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8790919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b057600080fd5b6002805490508110606060405190810160405280602781526020017f53706563696669656420617272617920696e646578206973206f7574206f662081526020017f626f756e64732e000000000000000000000000000000000000000000000000008152509015156113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611382578082015181840152602081019050611367565b50505050905090810190601f1680156113af5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508173ffffffffffffffffffffffffffffffffffffffff166002828154811015156113e457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602d81526020017f4164647265737320666f756e6420617420696e64657820646f6573206e6f742081526020017f6d61746368207461726765742e0000000000000000000000000000000000000081525090151561152b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156114f05780820151818401526020810190506114d5565b50505050905090810190601f16801561151d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600260016002805490500381548110151561159257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002828154811015156115cc57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160028181805490500391508161162c91906120c7565b508173ffffffffffffffffffffffffffffffffffffffff167f1f32c1b084e2de0713b8fb16bd46bb9df710a3dbeae2f3ca93af46e016dcc6b033604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b60016020528060005260406000206000915054906101000a900460ff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e0000000000000000000000000000000000000000000081525090151561181d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156117e25780820151818401526020810190506117c7565b50505050905090810190601f16801561180f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508060008111151561182e57600080fd5b6118bd82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca090919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b6003602052816000526040600020602052806000526040600020600091509150505481565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16606060405190810160405280602a81526020017f53656e646572206e6f7420617574686f72697a656420746f2063616c6c20746881526020017f6973206d6574686f642e00000000000000000000000000000000000000000000815250901515611abd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a82578082015181840152602081019050611a67565b50505050905090810190601f168015611aaf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082600081111515611ace57600080fd5b84600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b0b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b4657600080fd5b611b508730611cbc565b9350611b5d878787611d9c565b611b678730611cbc565b9250611b7c8585611c8790919063ffffffff16565b83141515611b8957600080fd5b50505050505050565b60606002805480602002602001604051908101604052809291908181526020018280548015611c1657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611bcc575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7b57600080fd5b611c8481611f90565b50565b6000828211151515611c9557fe5b818303905092915050565b60008183019050828110151515611cb357fe5b80905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611d5957600080fd5b505af1158015611d6d573d6000803e3d6000fd5b505050506040513d6020811015611d8357600080fd5b8101908080519060200190929190505050905092915050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611e3f57600080fd5b505af1158015611e53573d6000803e3d6000fd5b50505050611e5f61208a565b608060405190810160405280604681526020017f5472616e7366657272656420746f6b656e20646f6573206e6f7420726574757281526020017f6e206e756c6c206f722074727565206f6e207375636365737366756c2074726181526020017f6e736665722e0000000000000000000000000000000000000000000000000000815250901515611f8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f4f578082015181840152602081019050611f34565b50505050905090810190601f168015611f7c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fcc57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090503d600081146120a757602081146120b0576120bc565b600191506120bc565b60206000803e60005191505b506001811491505090565b8154818355818111156120ee578183600052602060002091820191016120ed91906120f3565b5b505050565b61211591905b808211156121115760008160009055506001016120f9565b5090565b905600a165627a7a72305820c90b35e96726f9549adf2cfe9a6abafe36f4e0392f5049603589720bfec723680029", + "sourceMap": "995:4503:5:-;;;575:10:39;567:5;;:18;;;;;;;;;;;;;;;;;;995:4503:5;;;;;;", + "deployedSourceMap": "995:4503:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5256:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5256:240:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2599:558:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2599:558:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;1721:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1721:28:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3324:980;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3324:980:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:39;;;;;;4409:586:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4409:586:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:39;;;;;;;;;;;;;;;;;;;;;;;;;;;4571:939:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4571:939:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1634:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1634:43:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3689:369:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3689:369:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1400:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1400:65:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2514:826;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2514:826:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5620:186:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5620:186:27;;;;;;;;;;;;;;;;;1100:103:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;5256:240:5;5389:7;5458:8;:23;5467:13;5458:23;;;;;;;;;;;;;;;:31;5482:6;5458:31;;;;;;;;;;;;;;;;5451:38;;5256:240;;;;:::o;2599:558:27:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2779:10:27;:23;2790:11;2779:23;;;;;;;;;;;;;;;;;;;;;;;;;2778:24;2816:25;;;;;;;;;;;;;;;;;;;;;;;2757:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2757:94:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2929:4;2903:10;:23;2914:11;2903:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;2988:11;3005;2988:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2988:29:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3105:11;3074:76;;;3130:10;3074:76;;;;;;;;;;;;;;;;;;;;;;2599:558;:::o;1721:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3324:980::-;3664:6;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;3489:10:27;:23;3500:11;3489:23;;;;;;;;;;;;;;;;;;;;;;;;;3526:21;;;;;;;;;;;;;;;;;;;;;;;3468:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3468:89:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3625:10;:23;3636:11;3625:23;;;;;;;;;;;;;;;;3618:30;;;;;;;;;;;3673:1;3664:10;;3659:639;3680:11;:18;;;;3676:1;:22;3659:639;;;3812:11;3794:29;;:11;3806:1;3794:14;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;3790:498;;;3938:11;3971:1;3950:11;:18;;;;:22;3938:35;;;;;;;;;;;;;;;;;;;;;;;;;;;3921:11;3933:1;3921:14;;;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;4062:1;4040:11;:23;;;;;;;;;;;;;;:::i;:::-;;4189:11;4143:107;;;4222:10;4143:107;;;;;;;;;;;;;;;;;;;;;;4268:5;;3790:498;3700:3;;;;;;;3659:639;;;3324:980;;:::o;827:111:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;4409:586:5:-;1932:10:27;:22;1943:10;1932:22;;;;;;;;;;;;;;;;;;;;;;;;;1968:21;;;;;;;;;;;;;;;;;;;;;;;1911:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1911:88:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4581:9:5;2053:1;2041:9;:13;2033:22;;;;;;;;4754:9;4719:8;:23;4728:13;4719:23;;;;;;;;;;;;;;;:31;4743:6;4719:31;;;;;;;;;;;;;;;;:44;;4777:20;;;;;;;;;;;;;;;;;;;;;;;4698:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4698:109:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4942:46;4978:9;4942:8;:23;4951:13;4942:23;;;;;;;;;;;;;;;:31;4966:6;4942:31;;;;;;;;;;;;;;;;:35;;:46;;;;:::i;:::-;4908:8;:23;4917:13;4908:23;;;;;;;;;;;;;;;:31;4932:6;4908:31;;;;;;;;;;;;;;;:80;;;;2009:1:27;4409:586:5;;;:::o;238:20:39:-;;;;;;;;;;;;;:::o;4571:939:27:-;719:5:39;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;4809:11:27;:18;;;;4800:6;:27;4841:19;;;;;;;;;;;;;;;;;;;;;;;4779:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4779:91:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4999:11;4976:34;;:11;4988:6;4976:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;5024:22;;;;;;;;;;;;;;;;;;;;;;;4955:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4955:101:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5124:10;:23;5135:11;5124:23;;;;;;;;;;;;;;;;5117:30;;;;;;;;;;;5245:11;5278:1;5257:11;:18;;;;:22;5245:35;;;;;;;;;;;;;;;;;;;;;;;;;;;5223:11;5235:6;5223:19;;;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;5355:1;5333:11;:23;;;;;;;;;;;;;;:::i;:::-;;5458:11;5420:83;;;5483:10;5420:83;;;;;;;;;;;;;;;;;;;;;;4571:939;;:::o;1634:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;3689:369:5:-;1932:10:27;:22;1943:10;1932:22;;;;;;;;;;;;;;;;;;;;;;;;;1968:21;;;;;;;;;;;;;;;;;;;;;;;1911:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1911:88:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3861:9:5;2053:1;2041:9;:13;2033:22;;;;;;;;4005:46;4041:9;4005:8;:23;4014:13;4005:23;;;;;;;;;;;;;;;:31;4029:6;4005:31;;;;;;;;;;;;;;;;:35;;:46;;;;:::i;:::-;3971:8;:23;3980:13;3971:23;;;;;;;;;;;;;;;:31;3995:6;3971:31;;;;;;;;;;;;;;;:80;;;;2009:1:27;3689:369:5;;;:::o;1400:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2514:826::-;2790:25;3160:20;1932:10:27;:22;1943:10;1932:22;;;;;;;;;;;;;;;;;;;;;;;;;1968:21;;;;;;;;;;;;;;;;;;;;;;;1911:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1911:88:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2674:9:5;2053:1;2041:9;:13;2033:22;;;;;;;;2712:3;1700:1;1685:17;;:3;:17;;;;1677:26;;;;;;;;1784:4;1769:20;;:3;:20;;;;1761:29;;;;;;;;2818:77;2854:13;2881:4;2818:22;:77::i;:::-;2790:105;;2991:98;3026:13;3053:3;3070:9;2991:21;:98::i;:::-;3183:77;3219:13;3246:4;3183:22;:77::i;:::-;3160:100;;3297:35;3322:9;3297:20;:24;;:35;;;;:::i;:::-;3278:15;:54;3270:63;;;;;;;;2065:1;2009::27;2514:826:5;;;;;:::o;5620:186:27:-;5701:9;5788:11;5781:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5620:186;:::o;1100:103:39:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1042:110:38:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;1214:123::-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;1343:217:23:-;1477:7;1514:13;1507:31;;;1539:13;1507:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1507:46:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1507:46:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1507:46:23;;;;;;;;;;;;;;;;1500:53;;1343:217;;;;:::o;1566:280::-;1707:13;1700:30;;;1731:3;1736:9;1700:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1700:46:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1700:46:23;;;;1778:14;:12;:14::i;:::-;1806:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;1757:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1757:82:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1566:280;;;:::o;1338:171:39:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o;2388:852:23:-;2463:4;2513:19;2535:1;2513:23;;2647:14;2729:3;2724:57;;;;2833:4;2828:220;;;;2640:497;;2724:57;2766:1;2751:16;;2724:57;;2828:220;2933:4;2928:3;2923;2908:30;3030:3;3024:10;3009:25;;2640:497;;3232:1;3217:11;:16;3210:23;;2388:852;;:::o;995:4503:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\n\n\nimport { Authorizable } from \"../lib/Authorizable.sol\";\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { ERC20Wrapper } from \"./lib/ERC20Wrapper.sol\";\n\n\n/**\n * @title Vault\n * @author Set Protocol\n *\n * The vault contract is responsible for holding all funds and keeping track of the\n * fund state and which Sets own which funds.\n *\n */\n\ncontract Vault is\n Authorizable\n{\n // Use SafeMath library for all uint256 arithmetic\n using SafeMath for uint256;\n\n /* ============ Constants ============ */\n\n // Error messages\n string constant INSUFFICIENT_BALANCE = \"User does not have sufficient balance.\";\n\n /* ============ State Variables ============ */\n\n // Mapping of token address to map of owner address to balance.\n mapping (address => mapping (address => uint256)) public balances;\n\n\n /* ============ Modifiers ============ */\n\n // Checks to make sure a valid account to withdrawTo is given.\n modifier isValidDestination(address _to) {\n // Confirm address is not null\n require(_to != address(0));\n // Confirm address is not Vault address\n require(_to != address(this));\n _;\n }\n\n /*\n * Checks to make sure a positive quantity of tokens is being withdrawn\n * or decremented/incremented\n */\n modifier isNonZero(uint _quantity) {\n // Confirm quantity is greater than zero\n require(_quantity > 0);\n _;\n }\n\n /* ============ No Constructor ============ */\n\n /* ============ Public Functions ============ */\n\n /*\n * Withdraws user's unassociated tokens to user account. Can only be\n * called by authorized core contracts.\n *\n * @param _tokenAddress The address of the ERC20 token\n * @param _to The address to transfer token to\n * @param _quantity The number of tokens to transfer\n */\n function withdrawTo(\n address _tokenAddress,\n address _to,\n uint _quantity\n )\n external\n onlyAuthorized\n isNonZero(_quantity)\n isValidDestination(_to)\n {\n // Retrieve current balance of token for the vault\n uint existingVaultBalance = ERC20Wrapper.balanceOf(\n _tokenAddress,\n this\n );\n\n // Call specified ERC20 token contract to transfer tokens from Vault to user\n ERC20Wrapper.transfer(\n _tokenAddress,\n _to,\n _quantity\n );\n\n // Verify transfer quantity is reflected in balance\n uint newVaultBalance = ERC20Wrapper.balanceOf(\n _tokenAddress,\n this\n );\n require(newVaultBalance == existingVaultBalance.sub(_quantity));\n }\n\n /*\n * Increment quantity owned of a token for a given address. Can\n * only be called by authorized core contracts.\n *\n * @param _owner The address of the token owner\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to attribute to owner\n */\n function incrementTokenOwner(\n address _owner,\n address _tokenAddress,\n uint _quantity\n )\n external\n onlyAuthorized\n isNonZero(_quantity)\n {\n // Increment balances state variable adding _quantity to user's token amount\n balances[_tokenAddress][_owner] = balances[_tokenAddress][_owner].add(_quantity);\n }\n\n /*\n * Decrement quantity owned of a token for a given address. Can only\n * be called by authorized core contracts.\n *\n * @param _owner The address of the token owner\n * @param _tokenAddress The address of the ERC20 token\n * @param _quantity The number of tokens to deattribute to owner\n */\n function decrementTokenOwner(\n address _owner,\n address _tokenAddress,\n uint _quantity\n )\n external\n onlyAuthorized\n isNonZero(_quantity)\n {\n // Require that user has enough unassociated tokens to withdraw tokens or issue Set\n require(\n balances[_tokenAddress][_owner] >= _quantity,\n INSUFFICIENT_BALANCE\n );\n\n // Decrement balances state variable subtracting _quantity to user's token amount\n balances[_tokenAddress][_owner] = balances[_tokenAddress][_owner].sub(_quantity);\n }\n\n /* ============ Getter Functions ============ */\n\n /*\n * Get balance of particular contract for owner.\n *\n * @param _owner The address of the token owner\n * @param _tokenAddress The address of the ERC20 token\n */\n function getOwnerBalance(\n address _owner,\n address _tokenAddress\n )\n external\n view\n returns (uint256)\n {\n // Return owners token balance\n return balances[_tokenAddress][_owner];\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/Vault.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/Vault.sol", + "exportedSymbols": { + "Vault": [ + 925 + ] + }, + "id": 926, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 732, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:5" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "file": "../lib/Authorizable.sol", + "id": 734, + "nodeType": "ImportDirective", + "scope": 926, + "sourceUnit": 3323, + "src": "623:55:5", + "symbolAliases": [ + { + "foreign": 733, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 736, + "nodeType": "ImportDirective", + "scope": 926, + "sourceUnit": 4739, + "src": "679:73:5", + "symbolAliases": [ + { + "foreign": 735, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ERC20Wrapper.sol", + "file": "./lib/ERC20Wrapper.sol", + "id": 738, + "nodeType": "ImportDirective", + "scope": 926, + "sourceUnit": 2846, + "src": "753:54:5", + "symbolAliases": [ + { + "foreign": 737, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 739, + "name": "Authorizable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3322, + "src": "1017:12:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Authorizable_$3322", + "typeString": "contract Authorizable" + } + }, + "id": 740, + "nodeType": "InheritanceSpecifier", + "src": "1017:12:5" + } + ], + "contractDependencies": [ + 3322, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Vault\n@author Set Protocol\n * The vault contract is responsible for holding all funds and keeping track of the\nfund state and which Sets own which funds.\n ", + "fullyImplemented": true, + "id": 925, + "linearizedBaseContracts": [ + 925, + 3322, + 4824 + ], + "name": "Vault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 743, + "libraryName": { + "contractScope": null, + "id": 741, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1097:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1091:27:5", + "typeName": { + "id": 742, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1110:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 746, + "name": "INSUFFICIENT_BALANCE", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "1193:79:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1193:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5573657220646f6573206e6f7420686176652073756666696369656e742062616c616e63652e", + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1232:40:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9e045c08446df5c7607123c87ba2467001aac5f9593306a331b663952a9056f8", + "typeString": "literal_string \"User does not have sufficient balance.\"" + }, + "value": "User does not have sufficient balance." + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 752, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "1400:65:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 751, + "keyType": { + "id": 747, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1409:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1400:49:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 750, + "keyType": { + "id": 748, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1429:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1420:28:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1440:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 773, + "nodeType": "Block", + "src": "1628:180:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 757, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 754, + "src": "1685:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1700:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1692:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1692:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1685:17:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 756, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1677:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1677:26:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 763, + "nodeType": "ExpressionStatement", + "src": "1677:26:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 765, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 754, + "src": "1769:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 767, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5472, + "src": "1784:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + ], + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1776:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1776:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1769:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 764, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1761:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1761:29:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 771, + "nodeType": "ExpressionStatement", + "src": "1761:29:5" + }, + { + "id": 772, + "nodeType": "PlaceholderStatement", + "src": "1800:1:5" + } + ] + }, + "documentation": null, + "id": 774, + "name": "isValidDestination", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 754, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 774, + "src": "1615:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 753, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1615:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1614:13:5" + }, + "src": "1587:221:5", + "visibility": "internal" + }, + { + "body": { + "id": 785, + "nodeType": "Block", + "src": "1974:99:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 779, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 776, + "src": "2041:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2053:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2041:13:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 778, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2033:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2033:22:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 783, + "nodeType": "ExpressionStatement", + "src": "2033:22:5" + }, + { + "id": 784, + "nodeType": "PlaceholderStatement", + "src": "2065:1:5" + } + ] + }, + "documentation": null, + "id": 786, + "name": "isNonZero", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 776, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "1958:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 775, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1958:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1957:16:5" + }, + "src": "1939:134:5", + "visibility": "internal" + }, + { + "body": { + "id": 836, + "nodeType": "Block", + "src": "2721:619:5", + "statements": [ + { + "assignments": [ + 804 + ], + "declarations": [ + { + "constant": false, + "id": 804, + "name": "existingVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2790:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 803, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2790:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 810, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 807, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "2854:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 808, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5472, + "src": "2881:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + ], + "expression": { + "argumentTypes": null, + "id": 805, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2818:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "2818:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2818:77:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2790:105:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 814, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "3026:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 815, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "3053:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 816, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3070:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 811, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2991:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 2802, + "src": "2991:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2991:98:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 818, + "nodeType": "ExpressionStatement", + "src": "2991:98:5" + }, + { + "assignments": [ + 820 + ], + "declarations": [ + { + "constant": false, + "id": 820, + "name": "newVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "3160:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 819, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3160:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 826, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 823, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "3219:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 824, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5472, + "src": "3246:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + ], + "expression": { + "argumentTypes": null, + "id": 821, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "3183:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "3183:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3183:77:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3160:100:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 828, + "name": "newVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 820, + "src": "3278:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 831, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3322:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 829, + "name": "existingVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 804, + "src": "3297:20:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "3297:24:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3297:35:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3278:54:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 827, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "3270:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3270:63:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 835, + "nodeType": "ExpressionStatement", + "src": "3270:63:5" + } + ] + }, + "documentation": null, + "id": 837, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 795, + "modifierName": { + "argumentTypes": null, + "id": 794, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "2641:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2641:14:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 797, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "2674:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 798, + "modifierName": { + "argumentTypes": null, + "id": 796, + "name": "isNonZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "2664:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2664:20:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 800, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "2712:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 801, + "modifierName": { + "argumentTypes": null, + "id": 799, + "name": "isValidDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 774, + "src": "2693:18:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2693:23:5" + } + ], + "name": "withdrawTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 788, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2543:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 787, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2543:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 790, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2574:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 789, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2574:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 792, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2595:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 791, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2595:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2533:82:5" + }, + "payable": false, + "returnParameters": { + "id": 802, + "nodeType": "ParameterList", + "parameters": [], + "src": "2721:0:5" + }, + "scope": 925, + "src": "2514:826:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 866, + "nodeType": "Block", + "src": "3876:182:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 851, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "3971:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 854, + "indexExpression": { + "argumentTypes": null, + "id": 852, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "3980:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3971:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 855, + "indexExpression": { + "argumentTypes": null, + "id": 853, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "3995:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3971:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 862, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "4041:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 856, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4005:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 858, + "indexExpression": { + "argumentTypes": null, + "id": 857, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "4014:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4005:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 860, + "indexExpression": { + "argumentTypes": null, + "id": 859, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "4029:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4005:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4005:35:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4005:46:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3971:80:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 865, + "nodeType": "ExpressionStatement", + "src": "3971:80:5" + } + ] + }, + "documentation": null, + "id": 867, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 846, + "modifierName": { + "argumentTypes": null, + "id": 845, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "3828:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3828:14:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 848, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "3861:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 849, + "modifierName": { + "argumentTypes": null, + "id": 847, + "name": "isNonZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "3851:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3851:20:5" + } + ], + "name": "incrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 844, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 839, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 867, + "src": "3727:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3727:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 841, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 867, + "src": "3751:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3751:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 843, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 867, + "src": "3782:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 842, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3782:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3717:85:5" + }, + "payable": false, + "returnParameters": { + "id": 850, + "nodeType": "ParameterList", + "parameters": [], + "src": "3876:0:5" + }, + "scope": 925, + "src": "3689:369:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 907, + "nodeType": "Block", + "src": "4596:399:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 882, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4719:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 884, + "indexExpression": { + "argumentTypes": null, + "id": 883, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "4728:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4719:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 886, + "indexExpression": { + "argumentTypes": null, + "id": 885, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "4743:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4719:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 887, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "4754:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4719:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 889, + "name": "INSUFFICIENT_BALANCE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "4777:20:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 881, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "4698:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4698:109:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 891, + "nodeType": "ExpressionStatement", + "src": "4698:109:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 892, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4908:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 895, + "indexExpression": { + "argumentTypes": null, + "id": 893, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "4917:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4908:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 896, + "indexExpression": { + "argumentTypes": null, + "id": 894, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "4932:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4908:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 903, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "4978:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 897, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4942:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 899, + "indexExpression": { + "argumentTypes": null, + "id": 898, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "4951:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4942:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 901, + "indexExpression": { + "argumentTypes": null, + "id": 900, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "4966:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4942:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "4942:35:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4942:46:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4908:80:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 906, + "nodeType": "ExpressionStatement", + "src": "4908:80:5" + } + ] + }, + "documentation": null, + "id": 908, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 876, + "modifierName": { + "argumentTypes": null, + "id": 875, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "4548:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4548:14:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 878, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "4581:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "modifierName": { + "argumentTypes": null, + "id": 877, + "name": "isNonZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "4571:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4571:20:5" + } + ], + "name": "decrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 869, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 908, + "src": "4447:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 868, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4447:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 871, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 908, + "src": "4471:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 870, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4471:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 873, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 908, + "src": "4502:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 872, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4502:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4437:85:5" + }, + "payable": false, + "returnParameters": { + "id": 880, + "nodeType": "ParameterList", + "parameters": [], + "src": "4596:0:5" + }, + "scope": 925, + "src": "4409:586:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 923, + "nodeType": "Block", + "src": "5402:94:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 917, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "5458:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 919, + "indexExpression": { + "argumentTypes": null, + "id": 918, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "5467:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 921, + "indexExpression": { + "argumentTypes": null, + "id": 920, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 910, + "src": "5482:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 916, + "id": 922, + "nodeType": "Return", + "src": "5451:38:5" + } + ] + }, + "documentation": null, + "id": 924, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getOwnerBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 913, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 910, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "5290:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 909, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5290:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 912, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "5314:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 911, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5314:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5280:61:5" + }, + "payable": false, + "returnParameters": { + "id": 916, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 915, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "5389:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 914, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5389:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5388:9:5" + }, + "scope": 925, + "src": "5256:240:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 926, + "src": "995:4503:5" + } + ], + "src": "597:4902:5" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/Vault.sol", + "exportedSymbols": { + "Vault": [ + 925 + ] + }, + "id": 926, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 732, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:5" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/lib/Authorizable.sol", + "file": "../lib/Authorizable.sol", + "id": 734, + "nodeType": "ImportDirective", + "scope": 926, + "sourceUnit": 3323, + "src": "623:55:5", + "symbolAliases": [ + { + "foreign": 733, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 736, + "nodeType": "ImportDirective", + "scope": 926, + "sourceUnit": 4739, + "src": "679:73:5", + "symbolAliases": [ + { + "foreign": 735, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/lib/ERC20Wrapper.sol", + "file": "./lib/ERC20Wrapper.sol", + "id": 738, + "nodeType": "ImportDirective", + "scope": 926, + "sourceUnit": 2846, + "src": "753:54:5", + "symbolAliases": [ + { + "foreign": 737, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 739, + "name": "Authorizable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3322, + "src": "1017:12:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Authorizable_$3322", + "typeString": "contract Authorizable" + } + }, + "id": 740, + "nodeType": "InheritanceSpecifier", + "src": "1017:12:5" + } + ], + "contractDependencies": [ + 3322, + 4824 + ], + "contractKind": "contract", + "documentation": "@title Vault\n@author Set Protocol\n * The vault contract is responsible for holding all funds and keeping track of the\nfund state and which Sets own which funds.\n ", + "fullyImplemented": true, + "id": 925, + "linearizedBaseContracts": [ + 925, + 3322, + 4824 + ], + "name": "Vault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 743, + "libraryName": { + "contractScope": null, + "id": 741, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1097:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1091:27:5", + "typeName": { + "id": 742, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1110:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 746, + "name": "INSUFFICIENT_BALANCE", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "1193:79:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string" + }, + "typeName": { + "id": 744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1193:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "5573657220646f6573206e6f7420686176652073756666696369656e742062616c616e63652e", + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1232:40:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9e045c08446df5c7607123c87ba2467001aac5f9593306a331b663952a9056f8", + "typeString": "literal_string \"User does not have sufficient balance.\"" + }, + "value": "User does not have sufficient balance." + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 752, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "1400:65:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 751, + "keyType": { + "id": 747, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1409:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1400:49:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 750, + "keyType": { + "id": 748, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1429:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1420:28:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1440:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 773, + "nodeType": "Block", + "src": "1628:180:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 757, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 754, + "src": "1685:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1700:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1692:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1692:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1685:17:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 756, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1677:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1677:26:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 763, + "nodeType": "ExpressionStatement", + "src": "1677:26:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 765, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 754, + "src": "1769:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 767, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5472, + "src": "1784:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + ], + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1776:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1776:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1769:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 764, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "1761:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1761:29:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 771, + "nodeType": "ExpressionStatement", + "src": "1761:29:5" + }, + { + "id": 772, + "nodeType": "PlaceholderStatement", + "src": "1800:1:5" + } + ] + }, + "documentation": null, + "id": 774, + "name": "isValidDestination", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 754, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 774, + "src": "1615:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 753, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1615:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1614:13:5" + }, + "src": "1587:221:5", + "visibility": "internal" + }, + { + "body": { + "id": 785, + "nodeType": "Block", + "src": "1974:99:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 779, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 776, + "src": "2041:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2053:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2041:13:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 778, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "2033:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2033:22:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 783, + "nodeType": "ExpressionStatement", + "src": "2033:22:5" + }, + { + "id": 784, + "nodeType": "PlaceholderStatement", + "src": "2065:1:5" + } + ] + }, + "documentation": null, + "id": 786, + "name": "isNonZero", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 776, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 786, + "src": "1958:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 775, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1958:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1957:16:5" + }, + "src": "1939:134:5", + "visibility": "internal" + }, + { + "body": { + "id": 836, + "nodeType": "Block", + "src": "2721:619:5", + "statements": [ + { + "assignments": [ + 804 + ], + "declarations": [ + { + "constant": false, + "id": 804, + "name": "existingVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2790:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 803, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2790:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 810, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 807, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "2854:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 808, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5472, + "src": "2881:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + ], + "expression": { + "argumentTypes": null, + "id": 805, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2818:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "2818:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2818:77:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2790:105:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 814, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "3026:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 815, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "3053:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 816, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3070:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 811, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "2991:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 2802, + "src": "2991:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2991:98:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 818, + "nodeType": "ExpressionStatement", + "src": "2991:98:5" + }, + { + "assignments": [ + 820 + ], + "declarations": [ + { + "constant": false, + "id": 820, + "name": "newVaultBalance", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "3160:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 819, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3160:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 826, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 823, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "3219:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 824, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5472, + "src": "3246:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_contract$_Vault_$925", + "typeString": "contract Vault" + } + ], + "expression": { + "argumentTypes": null, + "id": 821, + "name": "ERC20Wrapper", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2845, + "src": "3183:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Wrapper_$2845_$", + "typeString": "type(library ERC20Wrapper)" + } + }, + "id": 822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2778, + "src": "3183:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3183:77:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3160:100:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 828, + "name": "newVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 820, + "src": "3278:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 831, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "3322:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 829, + "name": "existingVaultBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 804, + "src": "3297:20:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "3297:24:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3297:35:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3278:54:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 827, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5400, + "src": "3270:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3270:63:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 835, + "nodeType": "ExpressionStatement", + "src": "3270:63:5" + } + ] + }, + "documentation": null, + "id": 837, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 795, + "modifierName": { + "argumentTypes": null, + "id": 794, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "2641:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2641:14:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 797, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "2674:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 798, + "modifierName": { + "argumentTypes": null, + "id": 796, + "name": "isNonZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "2664:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2664:20:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 800, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "2712:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 801, + "modifierName": { + "argumentTypes": null, + "id": 799, + "name": "isValidDestination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 774, + "src": "2693:18:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2693:23:5" + } + ], + "name": "withdrawTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 788, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2543:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 787, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2543:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 790, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2574:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 789, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2574:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 792, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "2595:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 791, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2595:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2533:82:5" + }, + "payable": false, + "returnParameters": { + "id": 802, + "nodeType": "ParameterList", + "parameters": [], + "src": "2721:0:5" + }, + "scope": 925, + "src": "2514:826:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 866, + "nodeType": "Block", + "src": "3876:182:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 851, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "3971:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 854, + "indexExpression": { + "argumentTypes": null, + "id": 852, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "3980:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3971:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 855, + "indexExpression": { + "argumentTypes": null, + "id": 853, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "3995:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3971:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 862, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "4041:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 856, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4005:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 858, + "indexExpression": { + "argumentTypes": null, + "id": 857, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "4014:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4005:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 860, + "indexExpression": { + "argumentTypes": null, + "id": 859, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "4029:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4005:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4005:35:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4005:46:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3971:80:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 865, + "nodeType": "ExpressionStatement", + "src": "3971:80:5" + } + ] + }, + "documentation": null, + "id": 867, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 846, + "modifierName": { + "argumentTypes": null, + "id": 845, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "3828:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3828:14:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 848, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "3861:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 849, + "modifierName": { + "argumentTypes": null, + "id": 847, + "name": "isNonZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "3851:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3851:20:5" + } + ], + "name": "incrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 844, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 839, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 867, + "src": "3727:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3727:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 841, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 867, + "src": "3751:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3751:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 843, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 867, + "src": "3782:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 842, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3782:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3717:85:5" + }, + "payable": false, + "returnParameters": { + "id": 850, + "nodeType": "ParameterList", + "parameters": [], + "src": "3876:0:5" + }, + "scope": 925, + "src": "3689:369:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 907, + "nodeType": "Block", + "src": "4596:399:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 882, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4719:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 884, + "indexExpression": { + "argumentTypes": null, + "id": 883, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "4728:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4719:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 886, + "indexExpression": { + "argumentTypes": null, + "id": 885, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "4743:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4719:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 887, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "4754:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4719:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 889, + "name": "INSUFFICIENT_BALANCE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "4777:20:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 881, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5400, + 5401 + ], + "referencedDeclaration": 5401, + "src": "4698:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4698:109:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 891, + "nodeType": "ExpressionStatement", + "src": "4698:109:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 892, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4908:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 895, + "indexExpression": { + "argumentTypes": null, + "id": 893, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "4917:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4908:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 896, + "indexExpression": { + "argumentTypes": null, + "id": 894, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "4932:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4908:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 903, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "4978:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 897, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "4942:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 899, + "indexExpression": { + "argumentTypes": null, + "id": 898, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 871, + "src": "4951:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4942:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 901, + "indexExpression": { + "argumentTypes": null, + "id": 900, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "4966:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4942:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4713, + "src": "4942:35:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4942:46:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4908:80:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 906, + "nodeType": "ExpressionStatement", + "src": "4908:80:5" + } + ] + }, + "documentation": null, + "id": 908, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 876, + "modifierName": { + "argumentTypes": null, + "id": 875, + "name": "onlyAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "4548:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4548:14:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 878, + "name": "_quantity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "4581:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "modifierName": { + "argumentTypes": null, + "id": 877, + "name": "isNonZero", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "4571:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4571:20:5" + } + ], + "name": "decrementTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 869, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 908, + "src": "4447:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 868, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4447:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 871, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 908, + "src": "4471:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 870, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4471:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 873, + "name": "_quantity", + "nodeType": "VariableDeclaration", + "scope": 908, + "src": "4502:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 872, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4502:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4437:85:5" + }, + "payable": false, + "returnParameters": { + "id": 880, + "nodeType": "ParameterList", + "parameters": [], + "src": "4596:0:5" + }, + "scope": 925, + "src": "4409:586:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 923, + "nodeType": "Block", + "src": "5402:94:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 917, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "5458:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 919, + "indexExpression": { + "argumentTypes": null, + "id": 918, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "5467:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 921, + "indexExpression": { + "argumentTypes": null, + "id": 920, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 910, + "src": "5482:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5458:31:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 916, + "id": 922, + "nodeType": "Return", + "src": "5451:38:5" + } + ] + }, + "documentation": null, + "id": 924, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getOwnerBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 913, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 910, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "5290:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 909, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5290:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 912, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "5314:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 911, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5314:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5280:61:5" + }, + "payable": false, + "returnParameters": { + "id": 916, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 915, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "5389:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 914, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5389:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5388:9:5" + }, + "scope": 925, + "src": "5256:240:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 926, + "src": "995:4503:5" + } + ], + "src": "597:4902:5" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.892Z" +} \ No newline at end of file diff --git a/artifacts/ts/ZeroExExchangeWrapper.ts b/artifacts/ts/ZeroExExchangeWrapper.ts new file mode 100644 index 000000000..0b0489c74 --- /dev/null +++ b/artifacts/ts/ZeroExExchangeWrapper.ts @@ -0,0 +1,665 @@ +export const ZeroExExchangeWrapper = +{ + "contractName": "ZeroExExchangeWrapper", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "ZERO_EX_EXCHANGE", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ZERO_EX_PROXY", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": false, + "inputs": [ + { + "name": "tradeOriginator", + "type": "address" + }, + { + "name": "orderData", + "type": "bytes" + } + ], + "name": "exchange", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610287806100206000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680635da270fc1461005c578063881e142e14610087578063b6c8e453146100b0575b600080fd5b34801561006857600080fd5b506100716100db565b60405161007e91906101f2565b60405180910390f35b34801561009357600080fd5b506100ae60048036036100a9919081019061018b565b610100565b005b3480156100bc57600080fd5b506100c5610105565b6040516100d291906101f2565b60405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610137823561022d565b905092915050565b60008083601f840112151561015357600080fd5b8235905067ffffffffffffffff81111561016c57600080fd5b60208301915083600182028301111561018457600080fd5b9250929050565b6000806000604084860312156101a057600080fd5b60006101ae8682870161012b565b935050602084013567ffffffffffffffff8111156101cb57600080fd5b6101d78682870161013f565b92509250509250925092565b6101ec8161020d565b82525050565b600060208201905061020760008301846101e3565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff821690509190505600a265627a7a7230582044caa55fc1c15e7799632f2263d942805e5a3aa3cd31cc0ba034cd9976c6bc966c6578706572696d656e74616cf50037", + "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680635da270fc1461005c578063881e142e14610087578063b6c8e453146100b0575b600080fd5b34801561006857600080fd5b506100716100db565b60405161007e91906101f2565b60405180910390f35b34801561009357600080fd5b506100ae60048036036100a9919081019061018b565b610100565b005b3480156100bc57600080fd5b506100c5610105565b6040516100d291906101f2565b60405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610137823561022d565b905092915050565b60008083601f840112151561015357600080fd5b8235905067ffffffffffffffff81111561016c57600080fd5b60208301915083600182028301111561018457600080fd5b9250929050565b6000806000604084860312156101a057600080fd5b60006101ae8682870161012b565b935050602084013567ffffffffffffffff8111156101cb57600080fd5b6101d78682870161013f565b92509250509250925092565b6101ec8161020d565b82525050565b600060208201905061020760008301846101e3565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff821690509190505600a265627a7a7230582044caa55fc1c15e7799632f2263d942805e5a3aa3cd31cc0ba034cd9976c6bc966c6578706572696d656e74616cf50037", + "sourceMap": "1012:1106:12:-;;;1257:202;8:9:-1;5:2;;;30:1;27;20:12;5:2;1257:202:12;1012:1106;;;;;;", + "deployedSourceMap": "1012:1106:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1135:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1135:31:12;;;;;;;;;;;;;;;;;;;;1520:506;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1520:506:12;;;;;;;;;;;;;;;;;;;1172:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1172:28:12;;;;;;;;;;;;;;;;;;;;1135:31;;;;;;;;;;;;;:::o;1520:506::-;;;;:::o;1172:28::-;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;;57:66;;;;;144:335;;;258:3;251:4;243:6;239:17;235:27;228:35;225:2;;;276:1;273;266:12;225:2;309:6;296:20;286:30;;336:18;328:6;325:30;322:2;;;368:1;365;358:12;322:2;402:4;394:6;390:17;378:29;;452:3;445;437:6;433:16;423:8;419:31;416:40;413:2;;;469:1;466;459:12;413:2;218:261;;;;;;487:490;;;;627:2;615:9;606:7;602:23;598:32;595:2;;;643:1;640;633:12;595:2;678:1;695:53;740:7;731:6;720:9;716:22;695:53;;;685:63;;657:97;813:2;802:9;798:18;785:32;837:18;829:6;826:30;823:2;;;869:1;866;859:12;823:2;897:64;953:7;944:6;933:9;929:22;897:64;;;879:82;;;;764:203;589:388;;;;;;984:110;1057:31;1082:5;1057:31;;;1052:3;1045:44;1039:55;;;1101:193;;1209:2;1198:9;1194:18;1186:26;;1223:61;1281:1;1270:9;1266:17;1257:6;1223:61;;;1180:114;;;;;1301:128;;1381:42;1374:5;1370:54;1359:65;;1353:76;;;;1436:128;;1516:42;1509:5;1505:54;1494:65;;1488:76;;;", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\npragma experimental \"ABIEncoderV2\";\n\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { LibBytes } from \"../../external/LibBytes.sol\";\nimport { ZeroExOrderDataHandler as ZeroEx } from \"./lib/ZeroExOrderDataHandler.sol\";\n\n\n/**\n * @title ZeroExExchangeWrapper\n * @author Set Protocol\n *\n * The ZeroExExchangeWrapper contract wrapper to interface with 0x V2\n */\ncontract ZeroExExchangeWrapper\n{\n using SafeMath for uint256;\n\n /* ============ State Variables ============ */\n\n address public ZERO_EX_EXCHANGE;\n address public ZERO_EX_PROXY;\n\n\n /* ============ Constructor ============ */\n\n constructor(\n // address _zeroExExchange,\n // address _zeroExProxy,\n )\n public\n {\n // ZERO_EX_EXCHANGE = _zeroExExchange;\n // ZERO_EX_PROXY = _zeroExProxy;\n }\n\n\n /* ============ Public Functions ============ */\n\n function exchange(\n address tradeOriginator,\n bytes orderData\n )\n external\n // returns (uint256)\n {\n \n // Parse fill Amount\n // uint256 fillAmount = parseFillAmount(_orderData);\n\n // Slice the signature out.\n\n // Slice the Order\n\n // Construct the order\n // Order memory order = parseZeroExOrder(orderData);\n\n // Move the required takerToken into the wrapper\n\n // Ensure allowance\n\n\n // return 1;\n }\n\n /* ============ Getters ============ */\n\n /* ============ Private ============ */\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/ZeroExExchangeWrapper.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/ZeroExExchangeWrapper.sol", + "exportedSymbols": { + "ZeroExExchangeWrapper": [ + 2093 + ] + }, + "id": 2094, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2066, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:12" + }, + { + "id": 2067, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:12" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 2069, + "nodeType": "ImportDirective", + "scope": 2094, + "sourceUnit": 4739, + "src": "658:73:12", + "symbolAliases": [ + { + "foreign": 2068, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "file": "../../external/LibBytes.sol", + "id": 2071, + "nodeType": "ImportDirective", + "scope": 2094, + "sourceUnit": 3108, + "src": "732:55:12", + "symbolAliases": [ + { + "foreign": 2070, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/lib/ZeroExOrderDataHandler.sol", + "file": "./lib/ZeroExOrderDataHandler.sol", + "id": 2073, + "nodeType": "ImportDirective", + "scope": 2094, + "sourceUnit": 2331, + "src": "788:84:12", + "symbolAliases": [ + { + "foreign": 2072, + "local": "ZeroEx" + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ZeroExExchangeWrapper\n@author Set Protocol\n * The ZeroExExchangeWrapper contract wrapper to interface with 0x V2", + "fullyImplemented": true, + "id": 2093, + "linearizedBaseContracts": [ + 2093 + ], + "name": "ZeroExExchangeWrapper", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2076, + "libraryName": { + "contractScope": null, + "id": 2074, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1055:8:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1049:27:12", + "typeName": { + "id": 2075, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1068:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 2078, + "name": "ZERO_EX_EXCHANGE", + "nodeType": "VariableDeclaration", + "scope": 2093, + "src": "1135:31:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1135:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2080, + "name": "ZERO_EX_PROXY", + "nodeType": "VariableDeclaration", + "scope": 2093, + "src": "1172:28:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1172:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2083, + "nodeType": "Block", + "src": "1364:95:12", + "statements": [] + }, + "documentation": null, + "id": 2084, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2081, + "nodeType": "ParameterList", + "parameters": [], + "src": "1268:76:12" + }, + "payable": false, + "returnParameters": { + "id": 2082, + "nodeType": "ParameterList", + "parameters": [], + "src": "1364:0:12" + }, + "scope": 2093, + "src": "1257:202:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2091, + "nodeType": "Block", + "src": "1652:374:12", + "statements": [] + }, + "documentation": null, + "id": 2092, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "exchange", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2086, + "name": "tradeOriginator", + "nodeType": "VariableDeclaration", + "scope": 2092, + "src": "1547:23:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1547:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2088, + "name": "orderData", + "nodeType": "VariableDeclaration", + "scope": 2092, + "src": "1580:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2087, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1580:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1537:64:12" + }, + "payable": false, + "returnParameters": { + "id": 2090, + "nodeType": "ParameterList", + "parameters": [], + "src": "1652:0:12" + }, + "scope": 2093, + "src": "1520:506:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2094, + "src": "1012:1106:12" + } + ], + "src": "597:1522:12" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/ZeroExExchangeWrapper.sol", + "exportedSymbols": { + "ZeroExExchangeWrapper": [ + 2093 + ] + }, + "id": 2094, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2066, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:12" + }, + { + "id": 2067, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:12" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 2069, + "nodeType": "ImportDirective", + "scope": 2094, + "sourceUnit": 4739, + "src": "658:73:12", + "symbolAliases": [ + { + "foreign": 2068, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "file": "../../external/LibBytes.sol", + "id": 2071, + "nodeType": "ImportDirective", + "scope": 2094, + "sourceUnit": 3108, + "src": "732:55:12", + "symbolAliases": [ + { + "foreign": 2070, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/lib/ZeroExOrderDataHandler.sol", + "file": "./lib/ZeroExOrderDataHandler.sol", + "id": 2073, + "nodeType": "ImportDirective", + "scope": 2094, + "sourceUnit": 2331, + "src": "788:84:12", + "symbolAliases": [ + { + "foreign": 2072, + "local": "ZeroEx" + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ZeroExExchangeWrapper\n@author Set Protocol\n * The ZeroExExchangeWrapper contract wrapper to interface with 0x V2", + "fullyImplemented": true, + "id": 2093, + "linearizedBaseContracts": [ + 2093 + ], + "name": "ZeroExExchangeWrapper", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2076, + "libraryName": { + "contractScope": null, + "id": 2074, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "1055:8:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1049:27:12", + "typeName": { + "id": 2075, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1068:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 2078, + "name": "ZERO_EX_EXCHANGE", + "nodeType": "VariableDeclaration", + "scope": 2093, + "src": "1135:31:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1135:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2080, + "name": "ZERO_EX_PROXY", + "nodeType": "VariableDeclaration", + "scope": 2093, + "src": "1172:28:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1172:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2083, + "nodeType": "Block", + "src": "1364:95:12", + "statements": [] + }, + "documentation": null, + "id": 2084, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2081, + "nodeType": "ParameterList", + "parameters": [], + "src": "1268:76:12" + }, + "payable": false, + "returnParameters": { + "id": 2082, + "nodeType": "ParameterList", + "parameters": [], + "src": "1364:0:12" + }, + "scope": 2093, + "src": "1257:202:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2091, + "nodeType": "Block", + "src": "1652:374:12", + "statements": [] + }, + "documentation": null, + "id": 2092, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "exchange", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2086, + "name": "tradeOriginator", + "nodeType": "VariableDeclaration", + "scope": 2092, + "src": "1547:23:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1547:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2088, + "name": "orderData", + "nodeType": "VariableDeclaration", + "scope": 2092, + "src": "1580:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2087, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1580:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1537:64:12" + }, + "payable": false, + "returnParameters": { + "id": 2090, + "nodeType": "ParameterList", + "parameters": [], + "src": "1652:0:12" + }, + "scope": 2093, + "src": "1520:506:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 2094, + "src": "1012:1106:12" + } + ], + "src": "597:1522:12" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.902Z" +} \ No newline at end of file diff --git a/artifacts/ts/ZeroExOrderDataHandler.ts b/artifacts/ts/ZeroExOrderDataHandler.ts new file mode 100644 index 000000000..b3db038cd --- /dev/null +++ b/artifacts/ts/ZeroExOrderDataHandler.ts @@ -0,0 +1,6760 @@ +export const ZeroExOrderDataHandler = +{ + "contractName": "ZeroExOrderDataHandler", + "abi": [], + "bytecode": "0x605a602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a265627a7a72305820813a43b32ba1377f9205b041ad4f4b0e8254867e61bca27a0d1a700a6682e6bf6c6578706572696d656e74616cf50037", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a265627a7a72305820813a43b32ba1377f9205b041ad4f4b0e8254867e61bca27a0d1a700a6682e6bf6c6578706572696d656e74616cf50037", + "sourceMap": "952:7273:13:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "952:7273:13:-;;;;;;;;", + "source": "/*\n Copyright 2018 Set Labs Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npragma solidity 0.4.24;\npragma experimental \"ABIEncoderV2\";\n\nimport { SafeMath } from \"zeppelin-solidity/contracts/math/SafeMath.sol\";\nimport { LibBytes } from \"../../../external/LibBytes.sol\";\n\n\n/**\n * @title ZeroExOrderDataHandler\n * @author Set Protocol\n *\n * This library contains functions and structs to assist with parsing exchange orders data\n */\nlibrary ZeroExOrderDataHandler {\n using SafeMath for uint256;\n using LibBytes for bytes;\n\n // ============ Structs ============\n\n struct Order {\n address makerAddress; // Address that created the order.\n address takerAddress; // Address that is allowed to fill the order.\n address feeRecipientAddress; // Address that will recieve fees when order is filled.\n address senderAddress; // Address that is allowed to call Exchange contract.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker.\n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker.\n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires.\n uint256 salt; // Number to facilitate uniqueness of the order's hash.\n bytes makerAssetData; // Encoded data when transferring makerAsset.\n bytes takerAssetData; // Encoded data when transferring takerAsset.\n }\n\n struct ZeroExHeader {\n uint256 signatureLength;\n uint256 orderLength;\n uint256 makerAssetDataLength;\n uint256 takerAssetDataLength;\n }\n\n // ============ Internal Functions ============\n\n // We construct the following to allow calling fillOrder on ZeroEx V2 Exchange\n // The layout of this orderData is in the table below.\n // \n // | Section | Data | Offset | Length | Contents |\n // |---------|-----------------------|---------------------|-----------------|-------------------------------|\n // | Header | signatureLength | 0 | 32 | Num Bytes of 0x Signature |\n // | | orderLength | 32 | 32 | Num Bytes of 0x Order |\n // | | makerAssetDataLength | 64 | 32 | Num Bytes of maker asset data |\n // | | takerAssetDataLength | 96 | 32 | Num Bytes of taker asset data |\n // | Body | fillAmount | 128 | 32 | taker asset fill amouint |\n // | | signature | 160 | signatureLength | signature in bytes |\n // | | order | 160+signatureLength | orderLength | ZeroEx Order |\n\n /*\n * Parses the header of the orderData\n * Can only be called by authorized contracts.\n *\n * @param _orderData \n * @return ZeroExHeader\n */\n function parseOrderHeader(bytes _orderData)\n internal\n pure\n returns (ZeroExHeader)\n {\n ZeroExHeader memory header;\n\n uint256 orderDataAddr = _orderData.contentAddress();\n\n assembly {\n mstore(header, mload(orderDataAddr)) // signatureLength\n mstore(add(header, 32), mload(add(orderDataAddr, 32))) // orderLength\n mstore(add(header, 64), mload(add(orderDataAddr, 64))) // makerAssetDataLength\n mstore(add(header, 96), mload(add(orderDataAddr, 96))) // takerAssetDataLength\n }\n\n return header;\n }\n\n function parseFillAmount(bytes _orderData)\n internal\n pure\n returns (uint256)\n {\n uint256 orderDataAddr = _orderData.contentAddress();\n uint256 fillAmount;\n\n assembly {\n fillAmount := mload(add(orderDataAddr, 128))\n }\n\n return fillAmount;\n }\n\n function sliceSignature(bytes _orderData, uint _signatureLength)\n internal\n pure\n returns (bytes)\n {\n bytes memory signature = _orderData.slice(160, _signatureLength.add(160));\n return signature;\n }\n\n function sliceZeroExOrder(bytes _orderData, uint _signatureLength, uint _orderLength)\n internal\n pure\n returns (bytes)\n {\n uint256 orderDataAddr = _orderData.contentAddress();\n uint256 orderStartAddress = orderDataAddr.add(_signatureLength);\n bytes memory order = _orderData.slice(\n orderStartAddress,\n orderStartAddress.add(_orderLength)\n );\n return order;\n }\n\n function parseZeroExOrder(\n bytes _zeroExOrder,\n uint _makerAssetDataLength,\n uint _takerAssetDataLength\n )\n internal\n pure\n returns (Order memory)\n {\n Order memory order;\n uint256 orderDataAddr = _zeroExOrder.contentAddress();\n\n // | Data | Location | Length |\n // |----------------------------|----------|--------|\n // | maker | 0 | |\n // | taker | 32 | |\n // | feeRecipient | 64 | |\n // | senderAddress | 96 | |\n // | makerAssetAmount | 128 | |\n // | takerAssetAmount | 160 | |\n // | makerFee | 192 | |\n // | takerFee | 224 | |\n // | expirationUnixTimeStampSec | 256 | |\n // | salt | 288 | |\n // | makerAssetData | 320 | ** |\n // | takerAssetData | 320 + ** | *** |\n // ** - Maker Asset Data Length\n // *** - Taker Asset Data Length\n assembly {\n mstore(order, mload(orderDataAddr)) // maker\n mstore(add(order, 32), mload(add(orderDataAddr, 32))) // taker\n mstore(add(order, 64), mload(add(orderDataAddr, 64))) // feeRecipient\n mstore(add(order, 96), mload(add(orderDataAddr, 96))) // senderAddress\n mstore(add(order, 128), mload(add(orderDataAddr, 128))) // makerAssetAmount\n mstore(add(order, 160), mload(add(orderDataAddr, 160))) // takerAssetAmount\n mstore(add(order, 192), mload(add(orderDataAddr, 192))) // makerFee\n mstore(add(order, 224), mload(add(orderDataAddr, 224))) // takerFee\n mstore(add(order, 256), mload(add(orderDataAddr, 256))) // expirationUnixTimestampSec\n mstore(add(order, 288), mload(add(orderDataAddr, 288))) // salt\n }\n\n order.makerAssetData = _zeroExOrder.slice(320, _makerAssetDataLength.add(320));\n order.takerAssetData = _zeroExOrder.slice(\n _makerAssetDataLength.add(320),\n _makerAssetDataLength.add(320).add(_takerAssetDataLength)\n );\n\n return order; \n }\n\n function parseZeroExOrderData(bytes _orderData)\n internal\n pure\n returns(Order memory)\n {\n ZeroExHeader memory header = parseOrderHeader(_orderData);\n\n Order memory order = parseZeroExOrder(\n sliceZeroExOrder(_orderData, header.signatureLength, header.orderLength),\n header.makerAssetDataLength,\n header.takerAssetDataLength\n );\n\n return order;\n }\n}\n", + "sourcePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/lib/ZeroExOrderDataHandler.sol", + "ast": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/lib/ZeroExOrderDataHandler.sol", + "exportedSymbols": { + "ZeroExOrderDataHandler": [ + 2330 + ] + }, + "id": 2331, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2095, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:13" + }, + { + "id": 2096, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:13" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 2098, + "nodeType": "ImportDirective", + "scope": 2331, + "sourceUnit": 4739, + "src": "658:73:13", + "symbolAliases": [ + { + "foreign": 2097, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "file": "../../../external/LibBytes.sol", + "id": 2100, + "nodeType": "ImportDirective", + "scope": 2331, + "sourceUnit": 3108, + "src": "732:58:13", + "symbolAliases": [ + { + "foreign": 2099, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title ZeroExOrderDataHandler\n@author Set Protocol\n * This library contains functions and structs to assist with parsing exchange orders data", + "fullyImplemented": true, + "id": 2330, + "linearizedBaseContracts": [ + 2330 + ], + "name": "ZeroExOrderDataHandler", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2103, + "libraryName": { + "contractScope": null, + "id": 2101, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "995:8:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "989:27:13", + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1008:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2106, + "libraryName": { + "contractScope": null, + "id": 2104, + "name": "LibBytes", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3107, + "src": "1027:8:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LibBytes_$3107", + "typeString": "library LibBytes" + } + }, + "nodeType": "UsingForDirective", + "src": "1021:25:13", + "typeName": { + "id": 2105, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1040:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + { + "canonicalName": "ZeroExOrderDataHandler.Order", + "id": 2131, + "members": [ + { + "constant": false, + "id": 2108, + "name": "makerAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1117:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1117:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2110, + "name": "takerAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1192:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1192:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2112, + "name": "feeRecipientAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1278:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1278:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2114, + "name": "senderAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1374:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1374:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2116, + "name": "makerAssetAmount", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1468:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1468:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "name": "takerAssetAmount", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1556:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2117, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1556:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "name": "makerFee", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1643:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1643:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2122, + "name": "takerFee", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1730:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1730:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2124, + "name": "expirationTimeSeconds", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1817:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2123, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1817:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2126, + "name": "salt", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1905:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2125, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1905:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2128, + "name": "makerAssetData", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "2001:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2127, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2001:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2130, + "name": "takerAssetData", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "2087:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2129, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2087:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Order", + "nodeType": "StructDefinition", + "scope": 2330, + "src": "1094:1076:13", + "visibility": "public" + }, + { + "canonicalName": "ZeroExOrderDataHandler.ZeroExHeader", + "id": 2140, + "members": [ + { + "constant": false, + "id": 2133, + "name": "signatureLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2206:23:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2206:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2135, + "name": "orderLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2239:19:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2239:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2137, + "name": "makerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2268:28:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2136, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2268:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2139, + "name": "takerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2306:28:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2138, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2306:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "ZeroExHeader", + "nodeType": "StructDefinition", + "scope": 2330, + "src": "2176:165:13", + "visibility": "public" + }, + { + "body": { + "id": 2159, + "nodeType": "Block", + "src": "3867:500:13", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2148, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3877:26:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 2147, + "name": "ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "3877:12:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2149, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3877:26:13" + }, + { + "assignments": [ + 2151 + ], + "declarations": [ + { + "constant": false, + "id": 2151, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3914:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2150, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3914:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2155, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2152, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2142, + "src": "3938:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "3938:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3938:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3914:51:13" + }, + { + "externalReferences": [ + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4006:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4029:13:13", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4087:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4110:13:13", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4169:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4192:13:13", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4260:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4283:13:13", + "valueSize": 1 + } + } + ], + "id": 2156, + "nodeType": "InlineAssembly", + "operations": "{\n mstore(header, mload(orderDataAddr))\n mstore(add(header, 32), mload(add(orderDataAddr, 32)))\n mstore(add(header, 64), mload(add(orderDataAddr, 64)))\n mstore(add(header, 96), mload(add(orderDataAddr, 96)))\n}", + "src": "3976:377:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2157, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "4354:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "functionReturnParameters": 2146, + "id": 2158, + "nodeType": "Return", + "src": "4347:13:13" + } + ] + }, + "documentation": null, + "id": 2160, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseOrderHeader", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2142, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3784:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2141, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3784:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3783:18:13" + }, + "payable": false, + "returnParameters": { + "id": 2146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2145, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3849:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 2144, + "name": "ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "3849:12:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3848:14:13" + }, + "scope": 2330, + "src": "3758:609:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2179, + "nodeType": "Block", + "src": "4476:211:13", + "statements": [ + { + "assignments": [ + 2168 + ], + "declarations": [ + { + "constant": false, + "id": 2168, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4486:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4486:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2172, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2169, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2162, + "src": "4510:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "4510:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4510:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4486:51:13" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2174, + "name": "fillAmount", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4547:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4547:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2175, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "4547:18:13" + }, + { + "externalReferences": [ + { + "fillAmount": { + "declaration": 2174, + "isOffset": false, + "isSlot": false, + "src": "4599:10:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2168, + "isOffset": false, + "isSlot": false, + "src": "4623:13:13", + "valueSize": 1 + } + } + ], + "id": 2176, + "nodeType": "InlineAssembly", + "operations": "{\n fillAmount := mload(add(orderDataAddr, 128))\n}", + "src": "4576:93:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2177, + "name": "fillAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2174, + "src": "4670:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2166, + "id": 2178, + "nodeType": "Return", + "src": "4663:17:13" + } + ] + }, + "documentation": null, + "id": 2180, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseFillAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2162, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4398:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2161, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4398:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4397:18:13" + }, + "payable": false, + "returnParameters": { + "id": 2166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2165, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4463:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2164, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4463:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4462:9:13" + }, + "scope": 2330, + "src": "4373:314:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2202, + "nodeType": "Block", + "src": "4816:116:13", + "statements": [ + { + "assignments": [ + 2190 + ], + "declarations": [ + { + "constant": false, + "id": 2190, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4826:22:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2189, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4826:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "313630", + "id": 2193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4868:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "313630", + "id": 2196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4894:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + } + ], + "expression": { + "argumentTypes": null, + "id": 2194, + "name": "_signatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2184, + "src": "4873:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4873:20:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4873:25:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2191, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2182, + "src": "4851:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "4851:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4851:48:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4826:73:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2200, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2190, + "src": "4916:9:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2188, + "id": 2201, + "nodeType": "Return", + "src": "4909:16:13" + } + ] + }, + "documentation": null, + "id": 2203, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sliceSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2182, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4717:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2181, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4717:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2184, + "name": "_signatureLength", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4735:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2183, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4735:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4716:41:13" + }, + "payable": false, + "returnParameters": { + "id": 2188, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2187, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4805:5:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2186, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4805:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4804:7:13" + }, + "scope": 2330, + "src": "4693:239:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2240, + "nodeType": "Block", + "src": "5082:300:13", + "statements": [ + { + "assignments": [ + 2215 + ], + "declarations": [ + { + "constant": false, + "id": 2215, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5092:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2214, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5092:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2219, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2216, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2205, + "src": "5116:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "5116:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5116:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5092:51:13" + }, + { + "assignments": [ + 2221 + ], + "declarations": [ + { + "constant": false, + "id": 2221, + "name": "orderStartAddress", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5153:25:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2220, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5153:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2226, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2224, + "name": "_signatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2207, + "src": "5199:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2222, + "name": "orderDataAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2215, + "src": "5181:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "5181:17:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5181:35:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5153:63:13" + }, + { + "assignments": [ + 2228 + ], + "declarations": [ + { + "constant": false, + "id": 2228, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5226:18:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2227, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5226:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2237, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2231, + "name": "orderStartAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "5277:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2234, + "name": "_orderLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2209, + "src": "5330:12:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2232, + "name": "orderStartAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "5308:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "5308:21:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5308:35:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2229, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2205, + "src": "5247:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "5247:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5247:106:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5226:127:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2238, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2228, + "src": "5370:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2213, + "id": 2239, + "nodeType": "Return", + "src": "5363:12:13" + } + ] + }, + "documentation": null, + "id": 2241, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sliceZeroExOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2210, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2205, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "4964:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2204, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4964:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2207, + "name": "_signatureLength", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "4982:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2206, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4982:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2209, + "name": "_orderLength", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5005:17:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2208, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5005:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4963:60:13" + }, + "payable": false, + "returnParameters": { + "id": 2213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2212, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5071:5:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2211, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5071:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5070:7:13" + }, + "scope": 2330, + "src": "4938:444:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2296, + "nodeType": "Block", + "src": "5585:2197:13", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2253, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5595:18:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2252, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "5595:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2254, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "5595:18:13" + }, + { + "assignments": [ + 2256 + ], + "declarations": [ + { + "constant": false, + "id": 2256, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5623:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5623:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2260, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2257, + "name": "_zeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "5647:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "5647:27:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5647:29:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5623:53:13" + }, + { + "externalReferences": [ + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6666:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6689:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6738:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6761:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6815:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6838:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7161:5:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6899:5:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6984:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6922:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7073:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7096:13:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7008:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7419:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7442:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7241:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7184:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7321:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7264:13:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7344:13:13", + "valueSize": 1 + } + } + ], + "id": 2261, + "nodeType": "InlineAssembly", + "operations": "{\n mstore(order, mload(orderDataAddr))\n mstore(add(order, 32), mload(add(orderDataAddr, 32)))\n mstore(add(order, 64), mload(add(orderDataAddr, 64)))\n mstore(add(order, 96), mload(add(orderDataAddr, 96)))\n mstore(add(order, 128), mload(add(orderDataAddr, 128)))\n mstore(add(order, 160), mload(add(orderDataAddr, 160)))\n mstore(add(order, 192), mload(add(orderDataAddr, 192)))\n mstore(add(order, 224), mload(add(orderDataAddr, 224)))\n mstore(add(order, 256), mload(add(orderDataAddr, 256)))\n mstore(add(order, 288), mload(add(orderDataAddr, 288)))\n}", + "src": "6636:860:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2262, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2253, + "src": "7491:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 2264, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "makerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2128, + "src": "7491:20:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7533:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7564:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + } + ], + "expression": { + "argumentTypes": null, + "id": 2268, + "name": "_makerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "7538:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7538:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7538:30:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2265, + "name": "_zeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "7514:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "7514:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7514:55:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "7491:78:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "id": 2274, + "nodeType": "ExpressionStatement", + "src": "7491:78:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2275, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2253, + "src": "7579:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 2277, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "takerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2130, + "src": "7579:20:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7660:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + } + ], + "expression": { + "argumentTypes": null, + "id": 2280, + "name": "_makerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "7634:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7634:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:30:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2289, + "name": "_takerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2247, + "src": "7713:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7704:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + } + ], + "expression": { + "argumentTypes": null, + "id": 2284, + "name": "_makerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "7678:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7678:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7678:30:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7678:34:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7678:57:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2278, + "name": "_zeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "7602:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "7602:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7602:143:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "7579:166:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "id": 2293, + "nodeType": "ExpressionStatement", + "src": "7579:166:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2294, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2253, + "src": "7763:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "functionReturnParameters": 2251, + "id": 2295, + "nodeType": "Return", + "src": "7756:12:13" + } + ] + }, + "documentation": null, + "id": 2297, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseZeroExOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2243, + "name": "_zeroExOrder", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5423:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2242, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5423:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2245, + "name": "_makerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5451:26:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2244, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5451:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2247, + "name": "_takerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5487:26:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2246, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5487:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5413:106:13" + }, + "payable": false, + "returnParameters": { + "id": 2251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2250, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5567:5:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2249, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "5567:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5566:14:13" + }, + "scope": 2330, + "src": "5388:2394:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2328, + "nodeType": "Block", + "src": "7900:323:13", + "statements": [ + { + "assignments": [ + 2305 + ], + "declarations": [ + { + "constant": false, + "id": 2305, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7910:26:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 2304, + "name": "ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "7910:12:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2309, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2307, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2299, + "src": "7956:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2306, + "name": "parseOrderHeader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2160, + "src": "7939:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_ZeroExHeader_$2140_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.ZeroExHeader memory)" + } + }, + "id": 2308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7939:28:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7910:57:13" + }, + { + "assignments": [ + 2311 + ], + "declarations": [ + { + "constant": false, + "id": 2311, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7978:18:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2310, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "7978:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2325, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2314, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2299, + "src": "8046:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2315, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8058:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2316, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2133, + "src": "8058:22:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2317, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8082:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2135, + "src": "8082:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2313, + "name": "sliceZeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "8029:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8029:72:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2320, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8115:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2321, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2137, + "src": "8115:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2322, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8156:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2139, + "src": "8156:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2312, + "name": "parseZeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2297, + "src": "7999:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Order_$2131_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (struct ZeroExOrderDataHandler.Order memory)" + } + }, + "id": 2324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7999:194:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7978:215:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2326, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "8211:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "functionReturnParameters": 2303, + "id": 2327, + "nodeType": "Return", + "src": "8204:12:13" + } + ] + }, + "documentation": null, + "id": 2329, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseZeroExOrderData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2299, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7818:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2298, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7818:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7817:18:13" + }, + "payable": false, + "returnParameters": { + "id": 2303, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2302, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7882:5:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2301, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "7882:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7881:14:13" + }, + "scope": 2330, + "src": "7788:435:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2331, + "src": "952:7273:13" + } + ], + "src": "597:7629:13" + }, + "legacyAST": { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/core/external/lib/ZeroExOrderDataHandler.sol", + "exportedSymbols": { + "ZeroExOrderDataHandler": [ + 2330 + ] + }, + "id": 2331, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2095, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "597:23:13" + }, + { + "id": 2096, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "621:35:13" + }, + { + "absolutePath": "zeppelin-solidity/contracts/math/SafeMath.sol", + "file": "zeppelin-solidity/contracts/math/SafeMath.sol", + "id": 2098, + "nodeType": "ImportDirective", + "scope": 2331, + "sourceUnit": 4739, + "src": "658:73:13", + "symbolAliases": [ + { + "foreign": 2097, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/justinkchen/workspace/set-protocol-contracts/contracts/external/LibBytes.sol", + "file": "../../../external/LibBytes.sol", + "id": 2100, + "nodeType": "ImportDirective", + "scope": 2331, + "sourceUnit": 3108, + "src": "732:58:13", + "symbolAliases": [ + { + "foreign": 2099, + "local": null + } + ], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title ZeroExOrderDataHandler\n@author Set Protocol\n * This library contains functions and structs to assist with parsing exchange orders data", + "fullyImplemented": true, + "id": 2330, + "linearizedBaseContracts": [ + 2330 + ], + "name": "ZeroExOrderDataHandler", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2103, + "libraryName": { + "contractScope": null, + "id": 2101, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4738, + "src": "995:8:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4738", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "989:27:13", + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1008:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2106, + "libraryName": { + "contractScope": null, + "id": 2104, + "name": "LibBytes", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3107, + "src": "1027:8:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LibBytes_$3107", + "typeString": "library LibBytes" + } + }, + "nodeType": "UsingForDirective", + "src": "1021:25:13", + "typeName": { + "id": 2105, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1040:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + { + "canonicalName": "ZeroExOrderDataHandler.Order", + "id": 2131, + "members": [ + { + "constant": false, + "id": 2108, + "name": "makerAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1117:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1117:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2110, + "name": "takerAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1192:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1192:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2112, + "name": "feeRecipientAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1278:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1278:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2114, + "name": "senderAddress", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1374:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1374:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2116, + "name": "makerAssetAmount", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1468:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1468:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "name": "takerAssetAmount", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1556:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2117, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1556:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "name": "makerFee", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1643:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1643:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2122, + "name": "takerFee", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1730:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1730:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2124, + "name": "expirationTimeSeconds", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1817:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2123, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1817:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2126, + "name": "salt", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "1905:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2125, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1905:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2128, + "name": "makerAssetData", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "2001:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2127, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2001:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2130, + "name": "takerAssetData", + "nodeType": "VariableDeclaration", + "scope": 2131, + "src": "2087:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2129, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2087:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Order", + "nodeType": "StructDefinition", + "scope": 2330, + "src": "1094:1076:13", + "visibility": "public" + }, + { + "canonicalName": "ZeroExOrderDataHandler.ZeroExHeader", + "id": 2140, + "members": [ + { + "constant": false, + "id": 2133, + "name": "signatureLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2206:23:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2206:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2135, + "name": "orderLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2239:19:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2239:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2137, + "name": "makerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2268:28:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2136, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2268:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2139, + "name": "takerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2140, + "src": "2306:28:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2138, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2306:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "ZeroExHeader", + "nodeType": "StructDefinition", + "scope": 2330, + "src": "2176:165:13", + "visibility": "public" + }, + { + "body": { + "id": 2159, + "nodeType": "Block", + "src": "3867:500:13", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2148, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3877:26:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 2147, + "name": "ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "3877:12:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2149, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3877:26:13" + }, + { + "assignments": [ + 2151 + ], + "declarations": [ + { + "constant": false, + "id": 2151, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3914:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2150, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3914:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2155, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2152, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2142, + "src": "3938:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "3938:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3938:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3914:51:13" + }, + { + "externalReferences": [ + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4006:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4029:13:13", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4087:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4110:13:13", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4169:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4192:13:13", + "valueSize": 1 + } + }, + { + "header": { + "declaration": 2148, + "isOffset": false, + "isSlot": false, + "src": "4260:6:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2151, + "isOffset": false, + "isSlot": false, + "src": "4283:13:13", + "valueSize": 1 + } + } + ], + "id": 2156, + "nodeType": "InlineAssembly", + "operations": "{\n mstore(header, mload(orderDataAddr))\n mstore(add(header, 32), mload(add(orderDataAddr, 32)))\n mstore(add(header, 64), mload(add(orderDataAddr, 64)))\n mstore(add(header, 96), mload(add(orderDataAddr, 96)))\n}", + "src": "3976:377:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2157, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "4354:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "functionReturnParameters": 2146, + "id": 2158, + "nodeType": "Return", + "src": "4347:13:13" + } + ] + }, + "documentation": null, + "id": 2160, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseOrderHeader", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2142, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3784:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2141, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3784:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3783:18:13" + }, + "payable": false, + "returnParameters": { + "id": 2146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2145, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2160, + "src": "3849:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 2144, + "name": "ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "3849:12:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3848:14:13" + }, + "scope": 2330, + "src": "3758:609:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2179, + "nodeType": "Block", + "src": "4476:211:13", + "statements": [ + { + "assignments": [ + 2168 + ], + "declarations": [ + { + "constant": false, + "id": 2168, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4486:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4486:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2172, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2169, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2162, + "src": "4510:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "4510:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4510:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4486:51:13" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2174, + "name": "fillAmount", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4547:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4547:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2175, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "4547:18:13" + }, + { + "externalReferences": [ + { + "fillAmount": { + "declaration": 2174, + "isOffset": false, + "isSlot": false, + "src": "4599:10:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2168, + "isOffset": false, + "isSlot": false, + "src": "4623:13:13", + "valueSize": 1 + } + } + ], + "id": 2176, + "nodeType": "InlineAssembly", + "operations": "{\n fillAmount := mload(add(orderDataAddr, 128))\n}", + "src": "4576:93:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2177, + "name": "fillAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2174, + "src": "4670:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2166, + "id": 2178, + "nodeType": "Return", + "src": "4663:17:13" + } + ] + }, + "documentation": null, + "id": 2180, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseFillAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2162, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4398:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2161, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4398:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4397:18:13" + }, + "payable": false, + "returnParameters": { + "id": 2166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2165, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2180, + "src": "4463:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2164, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4463:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4462:9:13" + }, + "scope": 2330, + "src": "4373:314:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2202, + "nodeType": "Block", + "src": "4816:116:13", + "statements": [ + { + "assignments": [ + 2190 + ], + "declarations": [ + { + "constant": false, + "id": 2190, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4826:22:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2189, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4826:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "313630", + "id": 2193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4868:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "313630", + "id": 2196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4894:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + } + ], + "expression": { + "argumentTypes": null, + "id": 2194, + "name": "_signatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2184, + "src": "4873:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "4873:20:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4873:25:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2191, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2182, + "src": "4851:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "4851:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4851:48:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4826:73:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2200, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2190, + "src": "4916:9:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2188, + "id": 2201, + "nodeType": "Return", + "src": "4909:16:13" + } + ] + }, + "documentation": null, + "id": 2203, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sliceSignature", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2182, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4717:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2181, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4717:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2184, + "name": "_signatureLength", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4735:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2183, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4735:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4716:41:13" + }, + "payable": false, + "returnParameters": { + "id": 2188, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2187, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2203, + "src": "4805:5:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2186, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4805:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4804:7:13" + }, + "scope": 2330, + "src": "4693:239:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2240, + "nodeType": "Block", + "src": "5082:300:13", + "statements": [ + { + "assignments": [ + 2215 + ], + "declarations": [ + { + "constant": false, + "id": 2215, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5092:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2214, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5092:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2219, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2216, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2205, + "src": "5116:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "5116:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5116:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5092:51:13" + }, + { + "assignments": [ + 2221 + ], + "declarations": [ + { + "constant": false, + "id": 2221, + "name": "orderStartAddress", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5153:25:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2220, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5153:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2226, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2224, + "name": "_signatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2207, + "src": "5199:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2222, + "name": "orderDataAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2215, + "src": "5181:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "5181:17:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5181:35:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5153:63:13" + }, + { + "assignments": [ + 2228 + ], + "declarations": [ + { + "constant": false, + "id": 2228, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5226:18:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2227, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5226:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2237, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2231, + "name": "orderStartAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "5277:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2234, + "name": "_orderLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2209, + "src": "5330:12:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2232, + "name": "orderStartAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "5308:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "5308:21:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5308:35:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2229, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2205, + "src": "5247:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "5247:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5247:106:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5226:127:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2238, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2228, + "src": "5370:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2213, + "id": 2239, + "nodeType": "Return", + "src": "5363:12:13" + } + ] + }, + "documentation": null, + "id": 2241, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sliceZeroExOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2210, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2205, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "4964:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2204, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4964:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2207, + "name": "_signatureLength", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "4982:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2206, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4982:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2209, + "name": "_orderLength", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5005:17:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2208, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5005:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4963:60:13" + }, + "payable": false, + "returnParameters": { + "id": 2213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2212, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2241, + "src": "5071:5:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2211, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5071:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5070:7:13" + }, + "scope": 2330, + "src": "4938:444:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2296, + "nodeType": "Block", + "src": "5585:2197:13", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 2253, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5595:18:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2252, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "5595:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2254, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "5595:18:13" + }, + { + "assignments": [ + 2256 + ], + "declarations": [ + { + "constant": false, + "id": 2256, + "name": "orderDataAddr", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5623:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5623:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2260, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2257, + "name": "_zeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "5647:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contentAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2997, + "src": "5647:27:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5647:29:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5623:53:13" + }, + { + "externalReferences": [ + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6666:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6689:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6738:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6761:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6815:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6838:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7161:5:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6899:5:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "6984:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "6922:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7073:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7096:13:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7008:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7419:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7442:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7241:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7184:13:13", + "valueSize": 1 + } + }, + { + "order": { + "declaration": 2253, + "isOffset": false, + "isSlot": false, + "src": "7321:5:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7264:13:13", + "valueSize": 1 + } + }, + { + "orderDataAddr": { + "declaration": 2256, + "isOffset": false, + "isSlot": false, + "src": "7344:13:13", + "valueSize": 1 + } + } + ], + "id": 2261, + "nodeType": "InlineAssembly", + "operations": "{\n mstore(order, mload(orderDataAddr))\n mstore(add(order, 32), mload(add(orderDataAddr, 32)))\n mstore(add(order, 64), mload(add(orderDataAddr, 64)))\n mstore(add(order, 96), mload(add(orderDataAddr, 96)))\n mstore(add(order, 128), mload(add(orderDataAddr, 128)))\n mstore(add(order, 160), mload(add(orderDataAddr, 160)))\n mstore(add(order, 192), mload(add(orderDataAddr, 192)))\n mstore(add(order, 224), mload(add(orderDataAddr, 224)))\n mstore(add(order, 256), mload(add(orderDataAddr, 256)))\n mstore(add(order, 288), mload(add(orderDataAddr, 288)))\n}", + "src": "6636:860:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2262, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2253, + "src": "7491:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 2264, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "makerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2128, + "src": "7491:20:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7533:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7564:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + } + ], + "expression": { + "argumentTypes": null, + "id": 2268, + "name": "_makerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "7538:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7538:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7538:30:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2265, + "name": "_zeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "7514:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "7514:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7514:55:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "7491:78:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "id": 2274, + "nodeType": "ExpressionStatement", + "src": "7491:78:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2275, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2253, + "src": "7579:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "id": 2277, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "takerAssetData", + "nodeType": "MemberAccess", + "referencedDeclaration": 2130, + "src": "7579:20:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7660:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + } + ], + "expression": { + "argumentTypes": null, + "id": 2280, + "name": "_makerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "7634:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7634:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:30:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2289, + "name": "_takerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2247, + "src": "7713:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "333230", + "id": 2286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7704:3:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + }, + "value": "320" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_320_by_1", + "typeString": "int_const 320" + } + ], + "expression": { + "argumentTypes": null, + "id": 2284, + "name": "_makerAssetDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "7678:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7678:25:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7678:30:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4737, + "src": "7678:34:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7678:57:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2278, + "name": "_zeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "7602:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 3106, + "src": "7602:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7602:143:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "7579:166:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + }, + "id": 2293, + "nodeType": "ExpressionStatement", + "src": "7579:166:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2294, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2253, + "src": "7763:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "functionReturnParameters": 2251, + "id": 2295, + "nodeType": "Return", + "src": "7756:12:13" + } + ] + }, + "documentation": null, + "id": 2297, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseZeroExOrder", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2243, + "name": "_zeroExOrder", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5423:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2242, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5423:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2245, + "name": "_makerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5451:26:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2244, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5451:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2247, + "name": "_takerAssetDataLength", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5487:26:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2246, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5487:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5413:106:13" + }, + "payable": false, + "returnParameters": { + "id": 2251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2250, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2297, + "src": "5567:5:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2249, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "5567:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5566:14:13" + }, + "scope": 2330, + "src": "5388:2394:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2328, + "nodeType": "Block", + "src": "7900:323:13", + "statements": [ + { + "assignments": [ + 2305 + ], + "declarations": [ + { + "constant": false, + "id": 2305, + "name": "header", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7910:26:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + }, + "typeName": { + "contractScope": null, + "id": 2304, + "name": "ZeroExHeader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2140, + "src": "7910:12:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2309, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2307, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2299, + "src": "7956:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2306, + "name": "parseOrderHeader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2160, + "src": "7939:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_ZeroExHeader_$2140_memory_ptr_$", + "typeString": "function (bytes memory) pure returns (struct ZeroExOrderDataHandler.ZeroExHeader memory)" + } + }, + "id": 2308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7939:28:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7910:57:13" + }, + { + "assignments": [ + 2311 + ], + "declarations": [ + { + "constant": false, + "id": 2311, + "name": "order", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7978:18:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2310, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "7978:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2325, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2314, + "name": "_orderData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2299, + "src": "8046:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2315, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8058:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2316, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "signatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2133, + "src": "8058:22:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2317, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8082:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "orderLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2135, + "src": "8082:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2313, + "name": "sliceZeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "8029:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8029:72:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2320, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8115:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2321, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "makerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2137, + "src": "8115:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2322, + "name": "header", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2305, + "src": "8156:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZeroExHeader_$2140_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.ZeroExHeader memory" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "takerAssetDataLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 2139, + "src": "8156:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2312, + "name": "parseZeroExOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2297, + "src": "7999:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Order_$2131_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (struct ZeroExOrderDataHandler.Order memory)" + } + }, + "id": 2324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7999:194:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7978:215:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 2326, + "name": "order", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "8211:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order memory" + } + }, + "functionReturnParameters": 2303, + "id": 2327, + "nodeType": "Return", + "src": "8204:12:13" + } + ] + }, + "documentation": null, + "id": 2329, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "parseZeroExOrderData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2299, + "name": "_orderData", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7818:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2298, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7818:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7817:18:13" + }, + "payable": false, + "returnParameters": { + "id": 2303, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2302, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2329, + "src": "7882:5:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_memory_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + }, + "typeName": { + "contractScope": null, + "id": 2301, + "name": "Order", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2131, + "src": "7882:5:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Order_$2131_storage_ptr", + "typeString": "struct ZeroExOrderDataHandler.Order" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7881:14:13" + }, + "scope": 2330, + "src": "7788:435:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2331, + "src": "952:7273:13" + } + ], + "src": "597:7629:13" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-07-07T07:45:08.902Z" +} \ No newline at end of file diff --git a/contracts/core/SetTokenFactory.sol b/contracts/core/SetTokenFactory.sol index 362b41fc5..e4386f0a4 100644 --- a/contracts/core/SetTokenFactory.sol +++ b/contracts/core/SetTokenFactory.sol @@ -54,7 +54,7 @@ contract SetTokenFactory // Commit passed address to vaultAddress state variable core = _coreAddress; } - + /* ============ Public Functions ============ */ /** @@ -74,11 +74,11 @@ contract SetTokenFactory uint _naturalUnit, string _name, string _symbol - ) + ) external onlyAuthorized returns - (address) + (address) { return new SetToken(this, _components, _units, _naturalUnit, _name, _symbol); } diff --git a/types/contract_templates/contract.mustache b/types/contract_templates/contract.mustache index 3f49a0c04..9b9d6b672 100644 --- a/types/contract_templates/contract.mustache +++ b/types/contract_templates/contract.mustache @@ -3,14 +3,14 @@ * Templates can be found at https://github.com/0xProject/0x.js/tree/development/packages/abi-gen-templates. */ // tslint:disable-next-line:no-unused-variable -import {TxData, TxDataPayable} from "../common"; -import {promisify} from "@0xproject/utils"; -import {classUtils} from "../common"; -import {BigNumber} from "bignumber.js"; +import { TxData, TxDataPayable } from "../common"; +import { promisify } from "@0xproject/utils"; +import { classUtils } from "../common"; +import { BigNumber } from "bignumber.js"; import * as fs from "fs-extra"; import * as Web3 from "web3"; -import {BaseContract} from '../base_contract'; +import { BaseContract } from '../base_contract'; export class {{contractName}}Contract extends BaseContract { {{#each methods}}